Я пытаюсь установить полный зашифрованный диск с отдельным /boot
раздел и я испытываем некоторые затруднения.
Я запишу процедуру, я следовал Ubuntu 15.04 Живая сессия DVD.
Заполните диск 'случайными данными'
sudo dd if=/dev/urandom of=/dev/sda1 bs=4096 #ok
Создайте разделы (использующий gparted)
Зашифруйте объемы
cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512
--hash sha512 --iter-time 3000 /dev/sda1
cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512
--hash sha512 --iter-time 3000 /dev/sda2
cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512
--hash sha512 --iter-time 3000 /dev/sda3
cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512
--hash sha512 --iter-time 5000 /dev/sda4
Открытый cryptovolume
cryptsetup luksOpen /dev/sda1 boot
cryptsetup luksOpen /dev/sda2 swap
cryptsetup luksOpen /dev/sda3 root
cryptsetup luksOpen /dev/sda4 home
Формат
mkfs.ext2 /dev/mapper/boot
mkswap /dev/mapper/swap
mkfs.ext4 /dev/mapper/root
mkfs.ext2 /dev/mapper/home
Установка (использующий повсеместность)
В конце установщик предупреждает, что установка личинки перестала работать (потому что загрузочный том шифруется), поэтому выберите 'continue without bootloader'.
Чистый загрузочный том
mkfs.ext2 /dev/mapper/boot
Смонтируйте объем
mkdir /mnt/root
mount /dev/mapper/root /mnt/root
mount /dev/mapper/boot /mnt/root/boot
Обновите fstab и crypttab
sudo blkid
[/dev/sr0: UUID="2015-10-21-16-17-40-00" LABEL="Ubuntu 15.10 amd64"
TYPE="iso9660" PTUUID="429817b4" PTTYPE="dos"
/dev/sda1: UUID="...#1" TYPE="crypto_LUKS" PARTUUID="..."
/dev/sda2: UUID="...#2" TYPE="crypto_LUKS" PARTUUID="..."
/dev/sda3: UUID="...#3" TYPE="crypto_LUKS" PARTUUID="..."
/dev/sda4: UUID="...#4" TYPE="crypto_LUKS" PARTUUID="..."
/dev/mapper/boot: UUID="..." TYPE="ext2"
/dev/mapper/swap: UUID="..." TYPE="swap"
/dev/mapper/root: UUID="..." TYPE="ext4"
/dev/mapper/home: UUID="..." TYPE="ext4"]
fstab
#<file system> <mount point> <type> <options> <dump> <pass>
UUID=#1 /boot ext2 defaults 0 2
UUID=#2 none swap sw 0 0
UUID=#3 / ext4 errors=remount-ro 0 1
UUID=#4 /home ext4 defaults 0 2
crypttab
boot UUID=#1 luks,cipher=twofish-xts-plain64,size=512,
hash=whirlpool, time=3000
swap UUID=#2 luks,swap,cipher=twofish-xts-plain64,size=512,
hash=whirlpool,time=3000
root UUID=#3 luks,cipher=twofish-xts-plain64,size=512,
hash=whirlpool,time=3000
home UUID=#4 luks,cipher=twofish-xts-plain64,size=512,
hash=whirlpool,time=5000
Обновите изображение initramfs
cd /mnt
sudo chroot root
mount -t proc proc /proc
mount -t sysfs sys /sys
mount -t devpts devpts /dev/pts
update-initramfs -u #ok
Настройте загрузчик (/etc/default/grub
)
GRUB_ENABLE_CRYPTODISK=y
GRUB_PRELOAD_MODULES="luks cryptodisk"
GRUB_CMDLINE_LINUX="cryptdevice=UUID#3:root root=/dev/mapper/root resume=/dev/mapper/swap
crypto=whirlpool:twofish-xts-plain64:512:0:"
создайте файл конфигурации
$ grub-mkconfig -o /boot/grub/grub.cfg
[/usr/sbin/grub-probe: error: failed to get canonical path of `/dev/mapper/root'.]
попробуйте снаружи
$ exit
$ grub-mkconfig -o /boot/grub/grub.cfg
[/usr/sbin/grub-probe: error: failed to get canonical path of `/cow'.]
Я делал ошибку перед этим? Как я могу продолжить настраивать и устанавливать личинку правильно?
Вы сделали некоторые ошибки, но основная проблема находится в повсеместности и личинке. В основном, когда Вы устанавливаете /
быть зашифрованным разделом и не создавать отдельный раздел для /boot
, личинка дает сообщение об ошибке как:
Я знаю
/boot
шифруется. Необходимо установитьGRUB_ENABLE_CRYPTODISK=y
в/etc/default/grub
. Я не сделаю этого для Вас, таким образом, я соберусь перестать работать, и Ваша установка остановится.
/boot
раздел и зашифрованный btrfs /
использование стандартного установщика.chroot
, сделайте некоторые важные изменения конфигурации, и переустановите личинку к Системному Разделу EFI и воссоздайте initrd.sudo apt update && sudo apt upgrade
обновить компоненты установщика/boot
Подготовьте зашифрованный раздел
sudo cryptsetup luksFormat /dev/sda3
sudo cryptsetup luksOpen --allow-discards /dev/sda3 sda3_crypt
sudo mkfs.btrfs /dev/mapper/sda3_crypt
Установка Ubuntu
/dev/sda1
как EFI System Partition
/dev/sda2
как ext2, отформатированный, с точкой монтирования /boot
/dev/mapper/sda3_crypt
как btrfs с точкой монтирования /
Скопируйте содержание /boot
и сделайте a chroot
sudo mount -o subvol=@ /dev/mapper/sda3_crypt /target
sudo mount /dev/sda2 /mnt
# (Watch those trailing slashes! rsync is very sensitive to them.)
sudo rsync -aXAH /mnt/ /target/boot/
sudo mount /dev/sda1 /target/boot/efi
sudo mount --bind /dev /target/dev
sudo mount --bind /proc /target/proc
sudo mount --bind /sys /target/sys
sudo chroot /target
(Все теперь происходит как chroot
в Вашей новой системе.)
Добавьте строку к /etc/default/grub
GRUB_ENABLE_CRYPTODISK=y
Добавьте строку к /etc/crypttab
. Вам будет нужно к первому показу sudo blkid
найти UUID /dev/sda3
(НЕТ /dev/mapper/sda3_crypt
).
sda3_crypt UUID=<UUID of /dev/sda3> none luks,discard
Править /etc/fstab
и удалите строку для /boot
. Другие записи корректны.
Личинка установки к Системному Разделу EFI, генерируйте новый grub.cfg и подготовьте initrd.
sudo grub-install --target=x86_64-efi --efi-directory /boot/efi --bootloader=ubuntu --boot-directory=/boot/efi/EFI/ubuntu --recheck
sudo grub-mkconfig -o /boot/efi/EFI/ubuntu/grub/grub.cfg
sudo update-initramfs -c -k all
(дополнительная перепроверка) Перепроверка, что/boot/efi/EFI/ubuntu/grub/grub.cfg содержит строки, которые включают insmod luks
, cryptomount -u <UUID>
, корректные записи загрузки, и т.д. И перепроверка, которую Ваш initrd содержит cryptsetup
двоичный файл. Если эти вещи отсутствуют, это - потому что личинка-mkconfig и/или обновление-initrd не могли выяснить, как объемы, которые Вы смонтировали или указали в fstab, касаются зашифрованного тома в crypttab. (Существует большая волшебная автоматическая конфигурация, которую они делают.) Это может произойти, если Вы отличаетесь от этого руководства, например, с помощью ZFS или путем попытки разделить sda3_crypt.
(При использовании ZFS вместо btrfs), личинка-mkconfig и обновление-initrd не распознают ZFS. Обходное решение включает (во время chroot до grub-mkconfig/update-initrd) редактирование /usr/sbin/grub-mkconfig
добавить || true
выровнять 139 (который запускается с GRUB_DEVICE=
), добавление GRUB_DEVICE="/dev/mapper/sda3_crypt"
кому: /etc/default/grub
, создание файла /usr/share/initramfs-tools/conf-hooks.d/forcecryptsetup
с содержанием export CRYPTSETUP=y
и файл /etc/initramfs-tools/conf.d/cryptroot
с содержанием target=sda3_crypt,source=UUID=<UUID of sda3>,key=none,discard
. Все это в дополнение к шагам, которые Вы сделали бы, если бы Вы не шифровали ZFS partiion (как установка zfs пространство пользователя utils и в живой системе и во время chroot и удаления строки, которая монтируется /
в fstab).
Выйдите из chroot и перезагрузки в Вашу новую систему
exit
sudo umount /target/boot/efi
sudo umount /target/dev
sudo umount /target/proc
sudo umount /target/sys
sudo umount /target
sudo reboot
Необходимо видеть, что личинка просит у Вашего пароль. Затем Вы получите меню начальной загрузки. Затем после выбора Ubuntu Вас попросят Вашего пароля снова. Затем Вы будете в своей системе. Читайте больше о том, как Ubuntu использует BTRFS.
TODO: Создайте зашифрованную подкачку (подсказка: это включает редактирование crypttab, fstab, и повторное выполнение обновления-initrd).
grub-mkconfig
команда.grub-install
команда.