- Fixed integer expression errors in size calculations - Improved partition detection to avoid 'not a block device' errors - Added proper device cleanup before wiping to fix 'device busy' issues - Implemented smart space allocation for same-size drives - Added robust partition table handling with retry logic - Changed VG name to 'migration-vg' to avoid conflicts - Script now properly calculates sizes: 56GB root + 404GB home + 8GB swap + 2GB boot = 470GB total - Tested with 476GB drives - fits perfectly with optimal space utilization
111 lines
3.4 KiB
Markdown
111 lines
3.4 KiB
Markdown
# Simple and Reliable 1-to-1 Clone Solution
|
|
|
|
## Problem Analysis
|
|
|
|
The LVM migration failed because it introduced too much complexity:
|
|
- Complex LVM setup with volume groups and logical volumes
|
|
- Initramfs configuration issues with LVM modules
|
|
- Boot loader configuration changes
|
|
- Multiple mount points and potential failure scenarios
|
|
|
|
The screenshot shows a boot failure where the system can't properly initialize, likely because the initramfs doesn't have the right LVM configuration.
|
|
|
|
## Solution: Direct 1-to-1 Clone
|
|
|
|
Instead of converting to LVM, create an exact bit-perfect copy that preserves your original structure:
|
|
|
|
### Key Advantages:
|
|
✅ **Preserves original encryption** - LUKS works exactly as before
|
|
✅ **No LVM complexity** - Simple partition structure
|
|
✅ **Minimal boot changes** - Only UUID updates needed
|
|
✅ **Reliable boot process** - Same as your working internal drive
|
|
✅ **Emergency fallback** - Original internal drive unchanged
|
|
|
|
## Usage Instructions
|
|
|
|
### Step 1: Create the Clone
|
|
```bash
|
|
# Run from live USB system
|
|
sudo ./direct_clone_backup.sh
|
|
```
|
|
|
|
This script will:
|
|
- Detect your internal and external drives
|
|
- Create a bit-perfect clone (using dd)
|
|
- Update UUIDs to prevent conflicts
|
|
- Fix /etc/fstab with new UUIDs
|
|
- Install/repair GRUB bootloader
|
|
- Verify the clone integrity
|
|
|
|
### Step 2: Verify Boot Readiness
|
|
```bash
|
|
# Verify the cloned drive will boot properly
|
|
sudo ./verify_boot_readiness.sh
|
|
```
|
|
|
|
This script checks:
|
|
- Partition structure integrity
|
|
- Filesystem health
|
|
- Essential boot files presence
|
|
- GRUB configuration
|
|
- Boot readiness tests
|
|
|
|
### Step 3: Fix Issues (if needed)
|
|
```bash
|
|
# If verification fails, repair the clone
|
|
sudo ./boot_repair_tools.sh
|
|
```
|
|
|
|
Available repair options:
|
|
- Full repair (recommended)
|
|
- GRUB repair only
|
|
- /etc/fstab fix only
|
|
- Initramfs regeneration
|
|
- Boot configuration check
|
|
|
|
## What This Solution Does Differently
|
|
|
|
### ❌ LVM Migration (Complex, Failed)
|
|
- Converts partition structure to LVM
|
|
- Requires initramfs LVM module configuration
|
|
- Changes boot process significantly
|
|
- Multiple potential failure points
|
|
- Complex recovery if something goes wrong
|
|
|
|
### ✅ Direct Clone (Simple, Reliable)
|
|
- Preserves exact original structure
|
|
- No initramfs changes needed
|
|
- Minimal boot process changes
|
|
- Only UUID conflicts to resolve
|
|
- Easy recovery with original drive
|
|
|
|
## Boot Process Comparison
|
|
|
|
### Original Failed LVM Boot:
|
|
1. GRUB loads → 2. Initramfs loads → 3. **FAILS** (LVM modules/config issue) → Boot failure
|
|
|
|
### New Direct Clone Boot:
|
|
1. GRUB loads → 2. Initramfs loads → 3. **WORKS** (identical to original) → LUKS password → System boots
|
|
|
|
## Expected Results
|
|
|
|
After running the direct clone:
|
|
1. **Boots like original** - Same encryption, same password prompt
|
|
2. **No reset loops** - Stable boot process
|
|
3. **Identical experience** - Everything works as before
|
|
4. **Safe fallback** - Original internal drive unchanged
|
|
|
|
## Emergency Recovery
|
|
|
|
If something goes wrong:
|
|
1. Boot from original internal drive (unchanged)
|
|
2. Run `boot_repair_tools.sh` on external drive
|
|
3. Or re-run `direct_clone_backup.sh` to start over
|
|
|
|
## Key Files Created
|
|
|
|
1. **`direct_clone_backup.sh`** - Main cloning script
|
|
2. **`verify_boot_readiness.sh`** - Boot verification tool
|
|
3. **`boot_repair_tools.sh`** - Emergency repair toolkit
|
|
|
|
This solution avoids all the complexity that caused the LVM migration to fail while giving you a working 1-to-1 copy that boots reliably. |