Aneb příběh o tom, jak jsem migroval systém na větší šifrovaný disk, zachoval všechna data, přepsal si pár názvů volume groupů a trochu se zapotil s GRUBem. Pokud vás podobné dobrodružství čeká, tenhle článek vás provede cestou krok za krokem.
1. Příprava bootovacího média
Nejdřív je potřeba vytvořit bootovací USB s live Linuxem (doporučuju třeba Kubuntu nebo Debian Live). Na to můžete použít třeba balenaEtcher
, Rufus
nebo dd
:
sudo dd if=kubuntu.iso of=/dev/sdX bs=4M status=progress oflag=sync
Po nabootování live systému nezapomeňte připojit Wi-Fi nebo síť a otevřít terminál.
2. Připojení disků a kontrola UUID
Doporučuju otevřít si dva terminály. V jednom budete zadávat příkazy, v druhém mít otevřený výpis disků a UUID:
sudo lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
sudo blkid
Pomocí těchto nástrojů snadno identifikujete nové i staré disky, oddíly a jejich UUID, což se později bude hodit.
3. Vytvoření nového šifrovaného disku
Pokud jste ještě nevytvořili nové oddíly, teď je ten čas. Doporučuju pomocí gparted
vytvořit:
- ESP oddíl (FAT32, 512 MB,
boot, esp
flags) - Oddíl pro LUKS (většina disku)
Pak přichází šifrování:
sudo cryptsetup luksFormat /dev/nvme0n1p3
sudo cryptsetup open /dev/nvme0n1p3 luksroot
Následuje vytvoření LVM struktury:
sudo pvcreate /dev/mapper/luksroot
sudo vgcreate vgnew /dev/mapper/luksroot
sudo lvcreate -L 64G -n swap vgnew
sudo lvcreate -l 100%FREE -n root vgnew
A nakonec vytvoření filesystémů:
sudo mkfs.ext4 /dev/vgnew/root
sudo mkswap /dev/vgnew/swap
4. Mountování nového systému
Připojíme nový root oddíl a připravíme chroot:
sudo mount /dev/vgnew/root /mnt
sudo mkdir /mnt/boot
sudo mkdir /mnt/boot/efi
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
Případně připojte i /dev
, /sys
, /proc
a další:
sudo mount --bind /dev /mnt/dev
sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc
5. Přenos systému
Pomocí rsync
přenesete starý systém na nový disk:
sudo rsync -aAXv / /mnt --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"}
6. Konfigurace: crypttab, fstab, initramfs
Zkontrolujte a upravte soubory:
/mnt/etc/crypttab
: název mapper zařízení, např.luksroot UUID=xxxx none luks
/mnt/etc/fstab
: opravte UUID a názvy volume group, např./dev/mapper/vgnew-root / ext4 errors=remount-ro 0 1 /dev/nvme0n1p1 /boot/efi vfat umask=0077 0 1
Pak chrootněte do nového systému:
sudo chroot /mnt
A aktualizujte initramfs:
sudo update-initramfs -u
7. Instalace GRUBu
Teď přichází ta zábava s EFI:
Nejdřív ověřte, že /boot/efi
je připojen správně. Pak:
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian
sudo update-grub
Pokud chcete ručně přidat boot položku přes EFI:
sudo efibootmgr --create --disk /dev/nvme0n1 --part 1 --label "debian" --loader "\\EFI\\debian\\grubx64.efi"
8. Restart a test
Odpojte instalační médium a zkuste nabootovat z nového disku. Pokud máte Secure Boot, možná bude potřeba ho vypnout v BIOSu.
Při prvním bootu se objeví výzva na zadání hesla k šifrování. Pokud vše proběhne dobře, nový systém nabootuje.
Závěrečné tipy
- Používejte
sudo
u všech příkazů – tohle není místo pro překlepy. - UUID je král – kontrolujte
lsblk
,blkid
a porovnávejte. - initramfs a GRUB jsou klíčové – po každé větší změně:
update-initramfs -u && update-grub
- Přejmenování volume group:
sudo vgrename staranazev novynazev
a poté aktualizace všech konfigurací.
Hotovo? Gratuluju. Máš větší šifrovaný disk, přenesený systém, a o pár znalostí víc v rukávu. ☕