Я пытаюсь настроить полностью зашифрованный диск с отдельным /boot
разделом, и у меня возникли некоторые проблемы.
Я напишу процедуру, которой я следовал в сеансе Ubuntu 15.04 Live DVD.
Заполните диск «случайными данными»
sudo dd if=/dev/urandom of=/dev/sda1 bs=4096 #ok
Создать разделы (используя gparted)
- Создать таблицу разделов - gpt 2.
- / dev / sda1 ext2 1.5GB #boot
- / dev / sda2 linux-swap 4GB #swap
- / dev / sda3 ext4 15 ГБ # root
- / dev / sda4 ext4 FREESPACE #home
- Создать таблицу разделов - gpt 2.
Шифровать тома
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
Открыть криптовалюту
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
Установить (используя Ubiquity)
- загрузчик на / dev / sda
- / dev / sda1 - использовать как ext2 - точка монтирования / boot
- / dev / sda2 - использовать как ext2 - точка монтирования / boot
- / dev / sda3 - использовать как ext2 - точка монтирования / boot
- / dev / sda4 - использовать как ext2 - точка монтирования / boot
В конце установщик предупреждает, что установка grub не удалась (поскольку загрузочный том зашифрован), поэтому выберите «продолжить без загрузчика».
Чистый загрузочный том
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'.]
Я сделал какую-либо ошибку до этого? Как я могу продолжать правильно настраивать и устанавливать grub?
источник
grub
+ ваш заголовок. Я полагаю, вы нашли свою процедуру шифрования на pavelkogan.com/2014/05/23/luks-full-disk-encryption (это первый поиск в Google по этой теме). если нет, может быть, это поможет. Хороший вопрос! и удачи!/boot
как точку монтирования для всего. Я надеюсь, что это опечатка. 2. Вы не монтировали/dev
во время chroot, но вы монтировали devpts. ОоОтветы:
Вы допустили некоторые ошибки, но главная проблема в повсеместности и жадности. По сути, когда вы устанавливаете
/
зашифрованный раздел и не создаете отдельный раздел/boot
, grub выдает сообщение об ошибке, подобное:Обзор процесса
/boot
раздел и зашифрованные btrfs,/
используя стандартный установщик.chroot
некоторые важные изменения в конфигурацию, переустанавливаем grub в системный раздел EFI и заново создаем initrd.Подробные шаги
sudo apt update && sudo apt upgrade
для обновления компонентов установщикаfdisk
,gparted
или другой инструмент для создания 3 разделов:/boot
Подготовить зашифрованный раздел
Установить Ubuntu
/dev/sda1
какEFI System Partition
/dev/sda2
как ext2, отформатированный, с точкой монтирования/boot
/dev/mapper/sda3_crypt
как btrfs с точкой монтирования/
Скопируйте содержимое
/boot
и сделайтеchroot
(Теперь все происходит как
chroot
внутри вашей новой системы.)Добавить строку в
/etc/default/grub
Добавить строку в
/etc/crypttab
. Вам нужно будет сначала запуститьsudo blkid
UUID/dev/sda3
(НЕ/dev/mapper/sda3_crypt
).Отредактируйте
/etc/fstab
и удалите строку для/boot
. Другие записи верны.Установите grub в системный раздел EFI, сгенерируйте новый grub.cfg и подготовьте initrd.
Дополнительный двойной контроль: Дважды проверьте,
/boot/efi/EFI/ubuntu/grub/grub.cfg
содержит строки , которые включают в себяinsmod luks
,cryptomount -u <UUID>
, правильные записи загрузки и т.д. И дважды проверьте , что ваш Initrd содержитcryptsetup
двоичный. Если эти вещи отсутствуют, то это потому, что grub-mkconfig и / или update-initrd не могут выяснить, как тома, которые вы подключили или указали в fstab, относятся к зашифрованному тому в crypttab. (Существует много волшебных автоконфигураций, которые они делают.) Это может произойти, если вы отклонитесь от этого руководства, например, используя ZFS или пытаясь разделить sda3_crypt.(При использовании ZFS вместо btrfs) grub-mkconfig и update-initrd не распознают ZFS. Обходной путь включает (в Chroot, до личинка-mkconfig / обновление-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 (например, устанавливали утилиты zfs userspace как в действующей системе, так и во время chroot и удаляли строку, монтируемую/
в fstab).Выйдите из chroot и перезагрузитесь в новую систему
Вы должны увидеть grub, запрашивающий ваш пароль. Тогда вы получите меню загрузки. После выбора Ubuntu вам снова будет предложен пароль. Тогда вы будете в вашей системе. Узнайте больше о том, как Ubuntu использует BTRFS .
TODO : создание зашифрованного свопа (подсказка: включает редактирование crypttab, fstab и повторный запуск
update-initrd
).Обновления
grub-mkconfig
команду.grub-install
команду.Другие заметки
источник
fstab
иcrypttab
на самом деле не правы в этом вопросе.crypttab
должен указывать наuuid
необработанные/dev/sdxY
устройства;fstab
должен указывать на открытые устройства шифрования в/dev/mapper/label
.grub-install
инструкции у вас есть--bootloader=ubuntu
параметр. Кажется, я не могу найти этот аргумент в руководствах Ubuntu или GNU . Не могли бы вы уточнить, что он делает или где это задокументировано?