- Removed 40+ broken/messy scripts, moved to old_scripts/ - Created lvm_block_backup.sh - proper block-level LVM snapshot backup - Uses dd for block-level cloning instead of file-level rsync - Successfully tested: 462GB backup in 33 minutes - Creates exact, bootable clone of internal drive to external drive - Proper LVM snapshot management with cleanup - Clear documentation in README_BACKUP.md - Clean, minimal solution that actually works
85 lines
2.3 KiB
Bash
Executable File
85 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Simple GRUB Boot Repair Script
|
|
# Direct GRUB repair without chroot complications
|
|
|
|
set -e
|
|
|
|
# Colors for output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
VG_NAME="system-vg"
|
|
EXTERNAL_DRIVE="/dev/sda"
|
|
|
|
log() { echo -e "${BLUE}[$(date '+%H:%M:%S')]${NC} $1"; }
|
|
error() { echo -e "${RED}[ERROR]${NC} $1" >&2; exit 1; }
|
|
success() { echo -e "${GREEN}[SUCCESS]${NC} $1"; }
|
|
warning() { echo -e "${YELLOW}[WARNING]${NC} $1"; }
|
|
|
|
echo -e "${GREEN}=== Simple GRUB Boot Repair ===${NC}"
|
|
echo
|
|
|
|
# Check if running as root
|
|
if [ "$EUID" -ne 0 ]; then
|
|
error "This script must be run as root. Use: sudo $0"
|
|
fi
|
|
|
|
log "Mounting external system..."
|
|
mkdir -p /tmp/ext-boot /tmp/ext-efi
|
|
|
|
# Mount the boot and EFI partitions
|
|
mount "/dev/$VG_NAME/boot" /tmp/ext-boot || error "Failed to mount boot"
|
|
mount "${EXTERNAL_DRIVE}1" /tmp/ext-efi || error "Failed to mount EFI"
|
|
|
|
success "Mounted external boot partitions"
|
|
|
|
log "Installing GRUB to external drive..."
|
|
|
|
# Install GRUB directly to the external drive
|
|
grub-install --target=x86_64-efi \
|
|
--efi-directory=/tmp/ext-efi \
|
|
--bootloader-id=debian \
|
|
--boot-directory=/tmp/ext-boot \
|
|
--recheck \
|
|
"$EXTERNAL_DRIVE" || error "GRUB installation failed"
|
|
|
|
success "GRUB installed successfully"
|
|
|
|
log "Checking installation..."
|
|
|
|
# Check if GRUB EFI file was created
|
|
if [ -f "/tmp/ext-efi/EFI/debian/grubx64.efi" ]; then
|
|
success "GRUB EFI bootloader created successfully"
|
|
else
|
|
error "GRUB EFI bootloader not found after installation"
|
|
fi
|
|
|
|
# List EFI directory contents
|
|
log "EFI boot entries after repair:"
|
|
ls -la /tmp/ext-efi/EFI/ || warning "Could not list EFI entries"
|
|
|
|
log "Cleaning up..."
|
|
umount /tmp/ext-boot
|
|
umount /tmp/ext-efi
|
|
rmdir /tmp/ext-boot /tmp/ext-efi
|
|
|
|
success "GRUB repair completed!"
|
|
|
|
echo
|
|
echo -e "${GREEN}=== Next Steps ===${NC}"
|
|
echo "1. Reboot your system"
|
|
echo "2. Enter BIOS/UEFI settings"
|
|
echo "3. Set boot order to prioritize external M.2 SSD"
|
|
echo "4. Look for 'debian' entry in boot menu"
|
|
echo "5. Boot from external drive"
|
|
echo
|
|
echo -e "${YELLOW}BIOS Settings:${NC}"
|
|
echo "• Disable Secure Boot (if enabled)"
|
|
echo "• Enable UEFI mode (disable Legacy/CSM)"
|
|
echo "• Set external M.2 as first boot device"
|
|
echo
|
|
success "External M.2 should now boot properly!" |