Mám klasické nastavení – šifrované / a /home a uspávám do šifrovaného swapu. Experimentálně jsem si ve VirtualBoxu rozjel šifrované LVM nad RAIDem.
Instalace se skládá ze 6 kroků:
/dev/md0 md0 mkinitcpio.conf a menu.lst tak, abychom nabootovaliuswsusp Máme 2 stejné disky – sda a sdb. sda rozdělíme na 2 oddíly – 50MB typ Linux a zbytek Linux RAID autodetect (FD). 1. oddíl můžeme nastavit bootovací.
Stejnou partition tabulku přeneseme na 2. disk.
dd if=/dev/sda of=/dev/sdb bs=512 count=1
blockdev --rereadpt /dev/sdb
Nahrajeme moduly:
modprobe raid1 dm-crypt aes aes-i586 xts
a vyrobíme RAID.
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2
Zašifrujeme,
cryptsetup -c aes-xts-plain -s 512 -y luksFormat /dev/md0
odemkneme,
cryptsetup luksOpen /dev/md0 lvm
a nahodíme LVM.
lvm pvcreate /dev/mapper/lvm lvm pvscan lvm vgcreate grupa /dev/mapper/lvm lvm vgscan lvm lvcreate --size 2G --name root grupa lvm lvcreate --size 500M --name swap grupa lvm lvscan
Vyrobíme FS,
mkfs.ext2 /dev/sda1; mkfs.ext2 /dev/sdb1
mkfs.ext3 /dev/mapper/grupa-root mkswap /dev/mapper/grupa-swap
namountujeme,
swapon /dev/mapper/grupa-swap
mount /dev/mapper/grupa-root /mnt mkdir /mnt/boot mount /dev/sda1 /mnt/boot
a spustíme instalaci.
/arch/setup
Rovnou instalujeme – neřešíme disky. Musíme odpovědět kladně na otázky ohledně bootování z RAIDu, LVM a šifrovaných oddílů. Po instalaci musíme nastavit USELVM="yes" v /etc/rc.conf. Zkontrolujeme /etc/mkinitcpio.conf, musí obsahovat tento řádek:
HOOKS="base udev autodetect pata scsi sata raid-partitions keymap encrypt lvm2 filesystems"
A teď to nejdůležitější. Trvalo mi docela dlouho, než jsem to vygooglil: do /boot/grub/menu.lst musíme dát na příkazovou řádku jádra toto:
root=/dev/mapper/grupa-root ro md=0,/dev/sda2,/dev/sdb3 cryptdevice=/dev/md0:lvm
Co jsme tím vlastně řekli?
Když se podíváme na řádek HOOKS=, vidíme, že se nejdříve spustí hook raid-partitions. Ten si přečte md=0,/dev/sda2,/dev/sdb2 a sestaví pole /dev/md0 (to je ten první parametr) ze zařízení /dev/sda2 a /dev/sdb2. Jako další hook se spouští encrypt. Ten si přečte cryptdevice=/dev/md0:lvm a spustí příkaz cryptsetup luksOpen /dev/md0 lvm. Ten se zeptá na heslo a vyrobí blokové zařízení /dev/mapper/lvm, které je vlastně rozšifrované /dev/md0. Potom se spustí lvm2, proskenuje /dev, najde volume grupu a vyrobí v našem případě /dev/mapper/grupa-root a /dev/mapper/grupa-swap. Nakonec se spustí kinit, kterému se předá parametr root=/dev/mapper/grupa-root ro a ten jej připojí jako /. Hooks jsou pro další zkoumání dostupné v /lib/initcpio/hooks/.
Restartneme a modlíme se :-)
Pokud chceme hibernovat, z AURu (viz „Odkazy“) si stáhneme uswsusp a pomocí makepkg vyrobíme balíček. Ten nainstalujeme pomocí pacman -U. Ještě nainstalujeme hibernate-script V /etc/suspend.conf nastavíme resume device = /dev/mapper/grupa-swap. Do sekce HOOKS v /etc/mkinitcpio.conf přidáme ...lvm2 uresume filesystems.... Příkazem
mkinitcpio -k `uname -r` -g /boot/kernel26.img vygenerujeme nový ramdisk a pomocí s2disk se zkusíme zhibernovat.
Přeji hodně štěstí a veselou paranoiu :-)
Paranoidní? Ale ne – kde máte důkaz, že po mně nejdou?
Přečteno 27 346×
Přečteno 23 190×
Přečteno 16 774×
Přečteno 13 378×
Přečteno 12 392×