Use this guide from a Linux live USB with the computer powered off. This clones the entire disk byte-for-byte, keeping LUKS encryption intact.
- Power off the computer.
- Insert the live USB.
- Power on and open the boot menu (
F2,F10,F12, orEsc). - Select the USB device and choose Try without installing.
Do not mount the internal disk or the destination SSD.
Open a terminal and run:
lsblk -d -o NAME,SIZE,MODEL,TRAN,SERIALExpected source: /dev/nvme0n1 (NX-1TB 2280).
Destination will usually appear as /dev/sda, /dev/sdb, /dev/sdc, etc.
Warning: verify the destination by size and model. Writing to the wrong disk destroys data.
lsblk -d -o NAME,SIZE,PHY-SEC,LOG-SEC /dev/nvme0n1 /dev/sdXReplace /dev/sdX with the real destination path.
The destination must be at least as large as the source.
sudo wipefs -af /dev/sdXsudo ddrescue -f -n /dev/nvme0n1 /dev/sdX clone.log
sudo ddrescue -d -f -r3 /dev/nvme0n1 /dev/sdX clone.logWhat this does:
/dev/nvme0n1— source disk./dev/sdX— destination disk.clone.log— progress/resume log written to the current directory.-f— force overwrite of destination.-n— first fast pass, skipping bad sectors.-d -r3— direct I/O and retry bad sectors up to 3 times.
This copies the partition table, EFI partition, LUKS header, encrypted data, and trailing space.
If ddrescue is not available, use dd:
sudo dd if=/dev/nvme0n1 of=/dev/sdX bs=1M status=progress conv=sync,noerrorsyncCompare partition tables:
sudo sfdisk -d /dev/nvme0n1
sudo sfdisk -d /dev/sdXCompare LUKS headers:
sudo cryptsetup luksDump /dev/nvme0n1p2
sudo cryptsetup luksDump /dev/sdX2sudo cmp -n 1G /dev/nvme0n1 /dev/sdXA full-disk comparison takes as long as the clone, so it is usually skipped if ddrescue finished without errors.
sudo udisksctl power-off -b /dev/sdXThen shut down the live environment.
- Power off.
- Remove the live USB.
- Keep the USB-C copy SSD connected.
- Power on and open the boot menu.
- Select the USB-C SSD as the boot device.
- At the LUKS prompt, enter the same passphrase used for the original.
- UUID collision: the copy has the same partition UUIDs and LUKS UUID as the original. Do not boot with both disks connected at the same time, or the system may mount the wrong one.
- UEFI boot entry: some firmware may not auto-detect the USB-C SSD. Manually select it in the boot menu, or add a UEFI entry with
efibootmgr. - Disk size differences: if the destination is larger than 1 TB, the extra space remains unallocated. Expanding the LUKS container and Btrfs requires decrypting, which you want to avoid.
- Bad sectors: if the source disk has hardware errors,
ddrescuewill report them. The clone may be incomplete.