grub2 - Поиск зашифрованного Debian
У меня есть система с тройной загрузкой, с Windows 7, Ubuntu 12.10 и Crunchbang (производная от Debian - нестабильная версия Debian).
Я пытаюсь получить все в зашифрованном виде: Windows с TrueCrypt FDE, цепочка grub на дополнительный загрузочный раздел с загрузчиком Windows на MBR. Так как Ubuntu отключил опцию шифрования (нет ни в повсеместной, ни в альтернативной установке), Ubuntu не шифруется. Crunchbang, хотя есть.
Моя карта разделов выглядит следующим образом:
sda1: Win7
sda2: win7-boot junk (installed it by default - what is that anyway?!)
sda3: /boot
sda4: ubuntu
sda5: encrypted -> sda8(?): crunchbang
sda6: encrypted -> sda9(?): swap
sda7: another ext4
Дело в том, что после установки я мог нормально загружать Windows и Crunchbang. update-grub однако распечатал, что он нашел Ubuntu, без Crunchbang, но после перезагрузки он просто дал мне Crunchbang.
Переустановил Ubuntu, включая grub на sda3. Теперь он находит только Ubuntu.
Последнее, я думаю, совершенно очевидно, как grub должен найти зашифрованный os? Но может ли кто-нибудь объяснить мне, как я могу использовать Dual-Boot двух (теоретически зашифрованных) Linux с grub2?
2 ответа
Когда вы выполняете update-grub, он сканирует все разделы, которые он видит для ОС, и знает, что делать. Если ваш зашифрованный раздел не смонтирован во время сканирования, он не найдет зашифрованные ОС.
Итак, ваш первый шаг - расшифровать зашифрованные разделы и подключить их к блочному устройству. Вы можете сделать это с cryptsetup:
cryptsetup luksOpen <device> <name>
Так что если ваше зашифрованное устройство - /dev/sda5 (структура вашего раздела не ясна), используйте что-то вроде
cryptsetup luksOpen /dev/sda5 crunch
расшифровать /dev/sda5 и смонтируйте расшифрованное блочное устройство (не файловую систему!) на /dev/mapper/crunch, Тогда вы можете пойти дальше и mount /dev/mapper/crunch <some mountpoint> как обычно.
У меня была та же проблема, когда в моем Debian-боксе с двойной загрузкой "незашифрованный инстанс Debian" обновлял grub и исключал "зашифрованный LVM".
Эта статья мне очень помогла, и я выполнил следующие шаги, чтобы активировать тома LVM, установленные на /dev/sdg перед звонком update-grub,
$ sudo apt-get install cryptsetup
$ sudo apt-get install lvm2
$ sudo lsblk -f /dev/sdg # Identify encrypted device
$ sudo file -s /dev/sdg5
$ sudo cryptsetup luksOpen /dev/sdg5 encrypted_device # Open the encrypted container
$ sudo vgdisplay --short # Identify volume group
$ sudo lvs -o lv_name,lv_size -S vg_name=enc-vg # List logical volumes
$ sudo lvchange -ay enc-vg # Activate every logical volume
$ sudo update-grub
$ sudo lvchange -an enc-vg # Deactivate active volumes
$ sudo cryptsetup luksClose encrypted_device # Close the opened container