MAJOR MILESTONE: Transform backup system into comprehensive LVM migration solution 🎯 LVM Migration & Boot System Complete: - Complete external M.2 LVM migration capability - One-button migration from non-LVM to LVM system - Automatic GRUB repair and boot configuration - External boot validation and recovery tools 🔧 New Migration Tools Added: - fix_grub_lvm_boot.sh: Complete GRUB repair for external LVM boot - automated_clonezilla_backup.sh: Automated backup with Clonezilla integration - validate_lvm_migration.sh: Comprehensive migration validation - troubleshoot_migration.sh: Advanced diagnostic and repair tools - emergency_install.sh: Package installation for live systems - bootstrap_usb_tools.sh: USB preparation with all dependencies 💾 Backup System Enhancements: - create_alpine_backup_usb.sh: Alpine Linux live system preparation - create_clonezilla_backup.sh: Professional backup solution integration - plug_and_play_backup.sh: Simple automated backup workflow - lvm_snapshot_backup.sh: LVM snapshot-based incremental backups - simple_auto_backup.sh: Streamlined backup automation 📋 Documentation & Guides: - LIVE_USB_MIGRATION_GUIDE.md: Complete migration walkthrough - DRIVE_SELECTION_REFERENCE.md: Safe drive selection procedures - Comprehensive troubleshooting and validation procedures - Step-by-step migration instructions with safety checks 🛡️ Safety & Validation Features: - Interactive drive selection with confirmation - Comprehensive pre-migration checks - Automatic backup validation - GRUB boot repair with fallback options - Hardware compatibility verification 🧪 Testing & Debugging: - Complete GRUB configuration analysis - LVM volume validation and repair - Boot sequence troubleshooting - Hardware connection diagnostics ✅ Production Ready Status: - All migration tools tested and validated - External M.2 boot functionality confirmed - GRUB configuration properly generates LVM entries - Kernel files correctly deployed to external boot partition - EFI bootloader properly configured as 'ubuntu-external' This completes the transformation from simple backup scripts to a comprehensive LVM migration and backup system capable of full system migration to external M.2 with proper boot configuration and recovery capabilities.
92 lines
2.5 KiB
Bash
Executable File
92 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Package Availability Checker for Live Systems
|
|
# Checks what packages are available before attempting installation
|
|
|
|
set -e
|
|
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m'
|
|
|
|
log() { echo -e "${BLUE}[INFO]${NC} $1"; }
|
|
success() { echo -e "${GREEN}[FOUND]${NC} $1"; }
|
|
warning() { echo -e "${YELLOW}[MISSING]${NC} $1"; }
|
|
|
|
echo -e "${GREEN}=== Package Availability Checker ===${NC}"
|
|
echo "Checking package availability for LVM migration..."
|
|
echo
|
|
|
|
# Detect distribution
|
|
if [ -f /etc/os-release ]; then
|
|
. /etc/os-release
|
|
echo "Distribution: $PRETTY_NAME"
|
|
echo "ID: $ID"
|
|
echo "Version: $VERSION_ID"
|
|
echo
|
|
fi
|
|
|
|
# Function to check if a package exists in repositories
|
|
check_package() {
|
|
local pkg="$1"
|
|
if apt-cache show "$pkg" >/dev/null 2>&1; then
|
|
success "$pkg"
|
|
return 0
|
|
else
|
|
warning "$pkg"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# Function to check multiple package alternatives
|
|
check_alternatives() {
|
|
local desc="$1"
|
|
shift
|
|
local packages=("$@")
|
|
|
|
echo -e "${BLUE}$desc:${NC}"
|
|
local found=0
|
|
for pkg in "${packages[@]}"; do
|
|
if check_package "$pkg"; then
|
|
((found++))
|
|
fi
|
|
done
|
|
|
|
if [ $found -eq 0 ]; then
|
|
echo -e " ${RED}⚠ No packages found for $desc${NC}"
|
|
fi
|
|
echo
|
|
}
|
|
|
|
echo "Updating package cache..."
|
|
apt update >/dev/null 2>&1 || warning "Could not update package cache"
|
|
echo
|
|
|
|
# Check critical packages
|
|
total_missing=0
|
|
|
|
check_alternatives "LVM Tools" "lvm2" "lvm"
|
|
check_alternatives "Device Mapper" "dmsetup" "device-mapper"
|
|
check_alternatives "Cryptsetup" "cryptsetup" "cryptsetup-bin"
|
|
check_alternatives "Filesystem Tools" "e2fsprogs" "dosfstools" "parted"
|
|
check_alternatives "Backup Tools" "rsync" "pv"
|
|
check_alternatives "GRUB EFI" "grub-efi-amd64" "grub-efi" "grub-efi-amd64-bin"
|
|
check_alternatives "GRUB PC" "grub-pc-bin" "grub-pc"
|
|
check_alternatives "GRUB Common" "grub-common" "grub2-common"
|
|
check_alternatives "Initramfs" "initramfs-tools" "dracut"
|
|
check_alternatives "System Tools" "util-linux" "coreutils" "bc"
|
|
|
|
echo -e "${BLUE}=== Summary ===${NC}"
|
|
echo -e "${GREEN}✓ Package availability checked${NC}"
|
|
echo "Most packages should be available for installation."
|
|
|
|
echo
|
|
echo "To install packages, run:"
|
|
echo " sudo ./emergency_install.sh"
|
|
echo
|
|
echo "To check individual commands after installation:"
|
|
echo " command -v lvm && echo 'LVM available'"
|
|
echo " command -v cryptsetup && echo 'Cryptsetup available'"
|
|
echo " command -v grub-install && echo 'GRUB available'" |