Как сделать это с помощью LVM и одного зашифрованного раздела
Предупреждение
Прежде всего, 128M слишком мал для загрузки! Я использую 1G. В противном случае обязательно произойдет то, что вы можете забыть удалить старые ядра, и / boot заполнится, и вам придется столкнуться с болью при попытке удалить старые ядра из системы, чтобы вы могли получить apt
или apt-get
работать опять таки. Даже с 1G, время от времени убирайте старые ядра.
Следующие шаги не предназначены для начинающих пользователей.
ОБНОВЛЕНИЕ: Я создал скрипт, который будет выполнять следующие операции для вас и многое другое! Все, что вам нужно сделать, это запустить его из Live OS перед установкой. Вы можете найти описание в моем блоге .
Предварительная установка из живой ОС
Вы хотите настроить LUKS и LVM при разделении вручную! Я проверял это на Ubuntu 16.04.2
Загрузите Ubuntu из Live OS и выберите опцию, чтобы попробовать Ubuntu без установки. Следуйте инструкциям, которые я изложил ниже. Давайте предположим, что вы устанавливаете в / dev / sdb.
- Разбейте диск на ваш любимый инструмент: я использовал fdisk для установки моей таблицы разделов msdos следующим образом:
- другие разделы: существующие ОС - нас это не волнует
- sdb1: / boot (1G)
- sdb2: раздел LUKS (остальная часть диска)
- Настройка LUKS
sudo cryptsetup luksFormat --hash=sha512 --key-size=512 --cipher=aes-xts-plain64 --verify-passphrase /dev/sdb2
sudo cryptsetup luksOpen /dev/sdb2 CryptDisk
- Хотя в этом нет необходимости, рекомендуется заполнить раздел LUKS нулями, чтобы раздел в зашифрованном состоянии был заполнен случайными данными.
sudo dd if=/dev/zero of=/dev/mapper/CryptDisk bs=4M
ВНИМАНИЕ, это может занять очень много времени!
- Настройте LVM на / dev / mapper / CryptDisk
sudo pvcreate /dev/mapper/CryptDisk
sudo vgcreate vg0 /dev/mapper/CryptDisk
sudo lvcreate -n swap -L 2G vg0
sudo lvcreate -n root -L 10G vg0
sudo lvcreate -n home -l +100%FREE vg0
Установка из живой ОС
- Теперь вы готовы к установке. Когда вы перейдете к части «Тип установки» установки, выберите опцию «Что-то еще». Затем вручную назначьте разделы / dev / mapper / vg0- * так, как вы хотите настроить. Не забудьте установить / dev / sdb1 как / boot. раздел / boot не должен быть зашифрован. Если это так, мы не сможем загрузиться. Измените «Устройство для установки загрузчика» на / dev / sdb и продолжите установку.
- После завершения установки не перезагружайтесь ! Выберите опцию «Продолжить тестирование».
Конфигурация после установки из действующей ОС
Этот бит очень важен, если вы хотите, чтобы ваша система загружалась! Я потратил довольно много времени на изучение этого, чтобы выяснить эти шаги после установки. В моем случае я действительно делал это, потому что хотел настроить размер / boot для / dev / sda, но вся эта работа должна перенести и на вашу ситуацию.
- В терминале введите следующее и найдите UUID / dev / sdb2. Запишите этот UUID на потом.
sudo blkid | grep LUKS
- Важная строка на моей машине гласит
/dev/sdb2: UUID="bd3b598d-88fc-476e-92bb-e4363c98f81d" TYPE="crypto_LUKS" PARTUUID="50d86889-02"
Затем давайте снова подключим только что установленную систему, чтобы мы могли внести еще некоторые изменения.
sudo mount /dev/vg0/root /mnt
sudo mount /dev/vg0/home /mnt/home
# это, вероятно, не нужно
sudo mount /dev/sdb1 /mnt/boot
sudo mount --bind /dev /mnt/dev
# Я не совсем уверен, что это необходимо
sudo mount --bind /run/lvm /mnt/run/lvm
- (Только если вы используете EFI):
sudo mount /dev/sd*/your/efi/partition /mnt/boot/efi
Теперь запустите, sudo chroot /mnt
чтобы получить доступ к установленной системе
- Из chroot смонтировать еще пару вещей
mount -t proc proc /proc
mount -t sysfs sys /sys
mount -t devpts devpts /dev/pts
- Настройка crypttab. Используя ваш любимый текстовый редактор, создайте файл / etc / crypttab и добавьте следующую строку, заменяя UUID UUID вашего диска.
CryptDisk UUID=bd3b598d-88fc-476e-92bb-e4363c98f81d none luks,discard
- Наконец, перестройте некоторые загрузочные файлы.
update-initramfs -k all -c
update-grub
- Перезагрузитесь, и система должна запросить пароль для расшифровки при загрузке!
Особая благодарность Мартину Еве , EGIDIO DOCILE , и ребятам из blog.botux.fr за опубликованные учебники. Вытащив кусочки из их постов и выполнив несколько дополнительных проблем, я наконец-то смог понять это.
Я пробовал это несколько раз и терпел неудачу снова и снова. Бит, который я должен был решить для себя на основе сообщений об ошибках, былsudo mount --bind /run/lvm /mnt/run/lvm