Я установил Linux Mint 17.2, жесткий диск был разбит следующим образом:
sdc1 - 100MB ext2 for boot
sdc2 - rest of disk as LUKS -> Physical Volume -> LVM Volume
Логические тома:
/
/home
swap
Установщик, казалось, работал правильно, за исключением того, что он не смог установить загрузчик, и мне пришлось выбрать опцию «установить загрузчик вручную позже».
У меня запущен LiveCD, открыт том LUKS и смонтирован корневой логический том в /mnt.
Вопрос: Как установить загрузчик?
Большинство инструкций говорят что-то вроде:
# grub-install --root-directory=/mnt/ /dev/sdc
Но это производит:
grub-probe: error: failed to get canonical path of `/cow'.
Installing for i386-pc platform.
grub-install.real: error: attempt to install to encrypted disk without cryptodisk enabled. Set `GRUB_ENABLE_CRYPTODISK=1' in file `/etc/default/grub'..
Я отредактировал оба /etc/default/grub
и /mnt/etc/default/grub
добавил GRUB_ENABLE_CRYPTODISK=1
в оба, но ошибка все еще возникает.
Как правильно настроить это так, чтобы grub был установлен на незашифрованный sdc1, запросил пароль, а затем загрузил систему после разблокировки?
ОБНОВЛЯТЬ
Grub теперь загружается при загрузке, но не запрашивает пароль и не расшифровывает должным образом. Добавив следующие параметры, /etc/default/grub
я могу сделать так, чтобы он запрашивал пароль, но не расшифровывался при вводе правильного пароля:
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="cryptopts=target=lvmbase,source=/dev/disk/by-uuid/f7ddbdb6-51c3-4c59-9d1e-7751b0438431,lvm=vg0_root"
GRUB_CMDLINE_LINUX=""
решение1
Я обычно восстанавливаюсь grub
изнутри chroot
. Итак, загружаюсь с живого дистрибутива и...
Откройте том LUKS:
# cryprsetup open /dev/sdc2 luks-mint
Активируйте тома LVM:
# vgscan
# vgchange -a y vg_mint
# lvscan
Забирайтесь на гору Минт и приготовьтесь к chroot
:
# mount /dev/mapper/vg_mint-root /mnt
# mount /dev/sdc1 /mnt/boot
# mount --rbind /dev /mnt/dev
# mount --rbind /sys /mnt/sys
# mount -t proc none /mnt/proc
chroot
в Монетный двор:
# env -i HOME=/root TERM=$TERM chroot /mnt bash -l
Настройте и установите grub
, выход chroot
:
(chroot)# grub2-mkconfig > /boot/grub2/grub.cfg
(chroot)# grub2-install /dev/sdc
(chroot)# exit
Перезагрузить.
PS: замените названия VG и LV соответственно.
PPS: я предполагал, что Linux Minut использует grub2
, если нет, удалите «2» из обеих grub
команд.