Я хочу установить Ubuntu с полным шифрованием диска с помощью LVM, но с разделением на несколько дисков.
Например, если бы я хотел, чтобы в /dev/sda было все, кроме /var, которое находилось в /dev/sdb? Я вижу, как это сделать без LVM, отредактировав разделы с помощью опции «что-то еще»
. Из установщика кажется, что я могу установить только на один диск при выборе LVM. Я что-то пропустил?
Установщик не поддерживает этот сценарий, поэтому вам придется сделать это вручную.
Есть много подходов, которые вы можете использовать, и поскольку вы хотите, чтобы /var
явно находился на отдельном физическом томе, вот что я бы сделал:
Прежде всего, установите Ubuntu, используя установщик на первый физический том (sda) с шифрованием LUKS и LVM, а позже добавьте второй том. Это установит /var
на ваш диск, чего вы не хотите, но это временно.
Затем настройте LUKS на втором физическом томе (sdb). Вы можете использовать кодовую фразу:
cryptsetup luksFormat /dev/sdb1 # Предполагая, что sdb1 — это раздел, в котором
# вы хотите создать контейнер LUKS.
# Вы также можете использовать весь диск (/dev/sdb)
# и не имеют таблицы разделов.
Откройте только что созданный контейнер LUKS:
cryptsetup luksOpen /dev/sdb1 lvm-var
Теперь, если вы отметите dmsetup
, вы должны увидеть два контейнера LUKS: один, который был создан во время установки Ubuntu (назовем его для простоты lvm-ubuntu
, хотя имя будет другой) и тот, который мы только что создали:
$ dmsetup ls --target=crypt
лвм-убунту...
lvm-вар ...
Инициализируйте контейнер LUKS для использования с LVM:
pvcreate /dev/mapper/lvm-var
Теперь, если вы наберете pvs
, вы должны увидеть два физических тома LVM: тот, на который вы установили Ubuntu, и новый физический том lvm-var
:
$ pvs
PV VG Fmt Attr PSize PFree
/dev/mapper/lvm-ubuntu ubuntu-vg lvm2 ... ... ...
/dev/mapper/lvm-var lvm2 ... ... ...
Создайте новую группу томов LVM внутри нашего нового физического тома LVM:
vgcreate var-vg /dev/mapper/lvm-var
Теперь vgs
должен указывать его вместе с группой томов, созданной во время установки:
$ vgs
VG #PV #LV #SN Attr VSize VFree
убунту-vg 1 1 ...
вар-вг 1 0 ...
Создайте новый логический том LVM внутри группы:
lvcreate -L<размер> -n var var-vg # Выберите размер для вашей группы томов. Ты сможешь
# указать 100%, но я всегда рекомендую использовать
# часть доступного пространства, потому что вы
# всегда можно увеличить логические тома и
# файловые системы в сети, но их сжатие
# боль.
И lvs
должны отражать наши изменения:
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root ubuntu-vg -wi-ao---- ...
вар вар-вг -ви-а----- ...
Инициализируйте файловую систему ext4 на этом логическом томе (или файловую систему любого другого типа):
mkfs.ext4 /dev/var-vg/var
Подтвердите, что файловая система была создана с помощью lsblk
.
Почти готово! Теперь нам нужно сказать Ubuntu, чтобы он автоматически открывал монтирование контейнера LUKS и файловой системы при загрузке. Для этого:
Добавьте эту строку в /etc/crypttab
:
var-vg UUID= none luks,discard,keyscript=decrypt_keyctl
Вы можете получить UUID командой lsblk -f
. keyscript=decrypt_keyctl
позволяет вам не вводить одну и ту же фразу-фразу дважды при загрузке (в случае, если ваши два контейнера LUKS используют одну и ту же фразу-фразу).
Добавьте эту строку в /etc/fstab
:
/dev/var-vg/var /var ext4 defaults 0 1
Готово! Теперь вы можете скопировать все файлы из /var
на первом диске в новый логический том на втором диске.