system setup:
LUKS + LVM + (ext4) + archlinux. This is for experienced arch user. For
detailed guide on arch installation please use archwiki
and
https://shrik3.com/post/archlinux/arch_setup_new/
partition overview overview
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS lsblk
nvme0n1 259:0 0 953.9G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 900G 0 part
└─cryptlvm 253:0 0 900G 0 crypt
├─lvmroot-root 253:1 0 250G 0 lvm /
├─lvmroot-home 253:2 0 600G 0 lvm /home
└─lvmroot-swap 253:3 0 48G 0 lvm [SWAP]
FS dev mappers mappers
/dev/mapper/lvmroot-root -> /
/dev/mapper/lvmroot-home -> /home
/dev/mapper/lvmroot-swap -> swapon
luks PART I - init luks init
create the luks partition create
$ cryptsetup -v -y \ # verbose, ask password
-c aes-xts-plain64 \ # cypher, default for LUKS2
-s 512 -h sha512 \ # key size, hash algo
-i 2000 \ # 2 seconds to process pw
–use-random \ # RNG
–label=SOME_LABEL \ # ..
luksFormat –type luks2 \ # format w/ luks2
/dev/nvme0n1p2 # the device
dump information of the luks partition luks info
$ cryptsetup luksDump /dev/nvme0n1p2
backup the luks headers (and save it to safe place) luks backup
$ cryptsetup luksHeaderBackup –header-backup-file
/a/path/header.img /dev/nvme0n1p2
manually open the luks device: luks open dev
$ cryptsetup open [–type luks2] /dev/nvme0n1p2 cryptlvm
lvm setup lvm setup
(first open the luks partition via cryptsetup open!)
create lvm physical volume and volume group open crypt dev
vgcreate lvmroot /dev/mapper/cryptlvm
create virtual partitions lvm partations
lvcreate -L650G lvmroot home
$ lvcreate -L48G lvmroot swap
file system fs
mkfs.vfat -F32 /dev/nvme0n1p1 # the unencrypted part!
mkfs.ext4 /dev/mapper/lvmroot-root # root
mkfs.ext4 /dev/mapper/lvmroot-home # home
mkswap /dev/mapper/lvmroot-swap # swap
mount the disks (see the overview above)
mkdir /mnt/boot /mnt/home
mount /dev/nvme0n1p1 /mnt/boot
system setup (as always) sys setup
-
install the base system $ pacstrap -K /mnt base linux ….
-
generate $ genfstab -U /mnt » /nnt/etc/fstab
-
chroot into /mnt $ arch-chroot /mnt
-
set timezone, locale etc. $ skip
-
config hostname, users etc.
bootloader bootloader
mkinitcpio config mkinitcpio
/etc/mkinitcpio.conf
HOOKS = … add [encrypt, lvm2] before [filesystems]
regenerate init image
$ mkinitcpio -P
grub config (install grub and efibootmgr first) grub
install grub
$ grub-install –target=x86_64-efi
–efi-directory=/boot
–bootloader-id=meow
–recheck
edit config: /etc/default/grub
§
add to GRUB_CMDLINE_LINUX:
cryptdevice=UUID=:cryptlvm root=/dev/lvmroot/root
generate grub config
$ grub-mkconfig -o /boot/grub/grub.cfg
references
https://jadarma.github.io/blog/posts/2024/08/installing-nixos-with-flakes-and-lvm-on-luks/
https://gist.github.com/mjnaderi/28264ce68f87f52f2cabb823a503e673
vi: ts=2
vi: tw=72
vi: ft=text