Та … аз отново се върнах на Linux като daily driver за мобилната машина.
Счупих се да търся нещо, което хем да им правилното количество RAM, хем да има свестен процесор, хем да има батерия … и най-вече да няма всички онези NVidia Optimus кретении, които слагат в последни години. Разбира се, защото в повечето случай използвам мобилната машина за Web Dev, а Linux-a си е Linux (пробвали ли сте се да пускате PHPUnit под Windows?). И защото мобилната машина винаги е в движение, разбира се трябва да е криптирана. Като гаден Slacker, съм свикнал с неговия инсталатор и с цялостната ръчна конфигурация.
В новите версии на Slackware (с ядро след 4.14.16), Patrick е сменил LILO-то с ELILO – boot loader, който работи с GPT и EFI/UEFI. Няма да влизам в спора за boot loader-и и войната на GRUB срещу LILO … безсмислено е. ELILO ми върши работа, за това го използвам.
Та … как да инсталираме Slackware с LUKS и LVM.
Преди да започнем инсталацията, ще се наложи да си нацепим подобаващо диска. Лично аз използвам gdisk. Диска трябва да има следните дялове:
cryptsetup luksFormat -c aes-xts-plain64:sha512 -h sha512 -s 256 /dev/sdx4
или крйптирай дял 4 със шифър sha512 и hash sha512, с block size 256. След тази команда ще в поиска парола. Това ще е основната парола с която ще влизате в системата, така че се погрижете да е сериозна.
cryptsetup luksOpen /dev/sdx4 vault
или отвори дял 4 и го мапни към /dev/mapper/vault . Тук ще ви поиска паролата за да отключите дяла, който криптирахме преди малко. И сме готови за …
Идеята е да създадем виртуален контейнер, който да покрива целия „физически дял“, който да разделим на частите нужни от операционната система. Това е много опростено обяснение разбира се, но за по сериозно занимаване с LVM трябва да четете на друго място. Аз лично знам как да го ползвам и до там. Първо създаваме „физическа група“, върху която създаваме виртуална група, която аз ще кръстя slack. В тази виртуална група създаваме логическите дяловете. При мен са разделени на root, swap и home.
pvcreate /dev/mapper/vault vgcreate slack /dev/mapper/vault lvcreate -C y -L 4G -n swap slack lvcreate -C n -L 20G -n root slack lvcreate -C n -l 100%FREE -n home slack
Инсталацията на Slack е малко дървена, но като цяло е елементарна. Важното тук е да закачите правилния дял в към правилния път – root към /, /dev/sdx3 -> /boot, home към /home. По време на иснталацията, инсталатора ще ви каже че е засякъл EFI партитион, дали искате да я закачите на правилното място – искате. Повярвайте – искате.
Тъй като файловата система се намира на логически дял и ядрото няма как да я зареди, трябва да му добавим малко модули (отново опростявам причините, не ме яжте за това). Това което трябва да направим е да създадем INITRD с необходимите модули. В случая – при мен е използването на ext4 файлова система за четене на криптирания виртуален роот. За тази цел след края на иснталацията не рестартирайте машината. Ако го направите или ако нещо друго се обърка – има добре описана поредица от действия в документацията на Slackware.
В командния промпт влезте в директория /mnt и направете chroot
cd /mnt chroot
Вижте кой ви е кернела (в моя случай 4.14.16) и създайте initrd-то със следната команда:
mkinitrd -c -k 4.14.16 -m ext4 -f ext4 -r /dev/slack/root -C /dev/sdx4
et voila. Имаме създаден initrd … който в момента не ни помага с нищо. За това трябва да копираме initrd.gz в EFI Boot директорията:
cp /boot/initrd.gz /boot/efi/EFI/Slackware/
После трябва да добавим initrd към конфигурацията, за да може boot loader-а да зареди през тях.
nano /boot/efi/EFI/Slackware/elilo.conf
Вътре ще намерите дефиниция на image-а, който ще се използва. При мен тази дефиниция изглежда така:
chooser=simple delay=1 timeout=1 # image=vmlinuz label=vmlinuz read-only append="root=/dev/slack/root vga=normal ro"
Преди label добавете нов ред на който слагате:
initrd=initrd.gz
Нещо много важно трябва да се обърне внимание на така направената нова версия на Slackware – след всеки upgrade на kernel пакета не трябва да забравяме да си копираме новия /boot/vmlinuz то /boot/initrd.gz /boot/efi/EFI/Slackware/ защото ELILO чете от там, за да зарежда системата.
Надявам се това, да ви спести време и нерви. Като човек, който не може може да се разбере с Ubuntu тъпотийте, това е идеалния начин да имам пълна сигурност в системата си.
Ваш,
Lucifer
Вашият коментар