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 24 403×
Přečteno 21 175×
Přečteno 14 331×
Přečteno 12 087×
Přečteno 11 573×