Een versleutelde laptopschijf herindelen zonder herinstallatie
Mijn laptop had destijds twee besturingssystemen naast elkaar, een EFI-partitie midden op de schijf en een rootpartitie die te klein werd. Het doel: één versleutelde pool over de hele schijf, LUKS-wachtwoord bij het opstarten en daarna gewoon inloggen. Zonder herinstallatie, met behoud van VPN-configuratie, SSH-sleutels, tmux-instellingen en kube-contexten.
Later ben ik voor werk volledig overgestapt naar Ubuntu. De technieken uit dit artikel (groeien met een gemount root, LUKS en btrfs vergroten, en een bootloader verplaatsen) zijn onafhankelijk van de distributie.
Het plan in stappen
- Inventariseren en backuppen: LUKS-header, alle partitietabellen, fstab, crypttab, bootloaderconfig en een tarball van de EFI-partitie.
- Root verhuizen naar de partitie die moest blijven.
- Een nieuwe EFI-partitie aan het eind van de schijf,
/bootdaarheen, bootloader opnieuw installeren. - De oude EFI-partitie weghalen, die tussen root en de vrije ruimte in zat.
- Groeien met
/gemount: partitie vergroten metsfdisk --no-reread, de kernel informeren metpartx, dancryptsetup resizeenbtrfs filesystem resize max.
Elk script draaide eerst als proef en voerde pas met --execute iets uit. Een Ventoy-stick met een live-image lag klaar als vangnet.
Hibernation die bleef werken
Een swapfile op btrfs voor hibernation werkt met een vaste resume_offset. Groeien met btrfs resize max verplaatst geen bestaande extents, dus de offset bleef geldig. Een multi-device btrfs had dat wel gebroken; daarom viel die optie af.
Valkuilen
btrfs filesystem showals gewone gebruiker meldtsize 0 ... MISSING. Dat is een rechtenkwestie, geen kapot bestandssysteem. Controleer als root.- Na een verhuizing van de thuismap was de verkeerde
kubelogingeïnstalleerd: een tool met bijna dezelfde naam, voor een ander platform. De foutmeldingunknown command "oidc-login"leek een loginprobleem, maar het was een ontbrekend binary.
Labels op de inlogschermen
Het LUKS-scherm en het inlogscherm zagen er identiek uit, waardoor het onduidelijk was welk wachtwoord je moest typen. Ik maakte kopieën van beide thema's met een duidelijk onderschrift. Kopieën, omdat updates de originele thema's overschrijven.