Як це досягти за допомогою LVM та одного зашифрованого розділу
Увага
Перш за все, 128M занадто мало для завантаження! Я використовую 1G. В іншому випадку, що може статися, це те, що ви можете забути видалити старі ядра, і / завантаження заповниться, і вам доведеться боротися з болем, намагаючись видалити старі ядра з системи, щоб ви могли отримати 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 (решта диска)
- Налаштування ЛУКСів
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 on / 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