Один зашифрованный системный раздел без загрузочного раздела — как это возможно?

Один зашифрованный системный раздел без загрузочного раздела — как это возможно?

Разбиение образа виртуального диска гостевой ОС Lubuntu KVM, которую я недавно установил, выглядит следующим образом:

# lsblk -f
NAME   FSTYPE      LABEL              UUID                                 FSAVAIL FSUSE% MOUNTPOINT
loop0  squashfs 
                                                                 0   100% /rofs
... SNIP ...

sr0    iso9660     Ubuntu 19.10 amd64 2019-10-17-12-53-34-00                     0   100% /cdrom
vda                                                                                       
└─vda1 crypto_LUKS                    xxxx-yyyy-zzzz    

Другими словами, у него есть один зашифрованный системный раздел ( vda1) и нет загрузочного раздела. (Примечание. Я загрузился в живой образ, чтобы проверить/изменить размер зашифрованного раздела, и был удивлен отсутствием загрузочного раздела.)

Вопрос:как система может загрузиться (ведь она загружается!), несмотря на отсутствие загрузочного раздела?

Уточняющие вопросы для лучшего понимания:

  • Работает ли загрузка, поскольку KVM сам управляет расшифровкой?
  • Или это будет работать и на хост-системе?
  • Если бы это работало и в автономной установке, зачем мы вообще создаем (незашифрованный) загрузочный раздел, а не просто отдельный зашифрованный раздел, как здесь?
  • Если KVM управляет расшифровкой, то что гарантирует, что KVM имеет правильную/совместимую версию cryptsetup, установленную, которая использовалась для создания зашифрованного устройства? Что делать, если версия не совпадает?
  • Если KVM управляет расшифровкой, то я предполагаю, что во время установки Lubuntu с полным шифрованием диска, install заметил, что он запущен в виртуальной машине, и решил, что создания одного зашифрованного раздела будет достаточно. Так ли это? И если так, почему он не спросил, хочу ли я "нормальную" установку с загрузочным разделом?

Замечание: действительно, gui для открытия зашифрованного диска при загрузке довольно спартанский. Это текстовый gui, где у меня естьодин единственныйпопытка ввести парольную фразу для открытия зашифрованного раздела без какой-либо обратной связи (звездочки, похоже, не показывают, по крайней мере, сколько символов я ввел). Раньше я предполагал, что причина в том, что Lubuntu проще Ubuntu, но теперь я подозреваю (как написано выше), что KVM сам управляет расшифровкой.

решение1

Есть несколько возможностей:

  • Загрузочный раздел не требуется при использовании разбиения на разделы MBR/DOS, GRUB с поддержкой криптодиска и LUKS 1 (или LUKS 2 с парольной фразой PBKDF2). Будущие версии GRUB могут полностью поддерживать LUKS 2, но, насколько мне известно, пока это не совсем так (поддержка argon2i пока отсутствует).

  • kernel/initramfs может храниться снаружи и загружаться напрямую qemu/KVM, передавая соответствующие -kernel -initrdпараметры qemu. В этом случае сам qemu выступает в качестве загрузчика, поэтому нет необходимости в загрузочном разделе внутри виртуальной машины.

  • Образ ядра может существовать по определенному смещению устройства перед первым разделом - не разделом / файловой системой / файлом, а напрямую записанным как необработанные данные на устройство, и загрузчик знает, где его искать. Такой подход обычно наблюдается только на встроенных устройствах.


почему мы вообще создаем (незашифрованный) загрузочный раздел, а не просто отдельный зашифрованный раздел, как здесь?

Проблема в том, что загрузчик должен куда-то идти, в конце концов, и поэтому с разделением MBR/DOS большая часть этого ушла в неразмеченное пространство. Конечно, это может работать ... пока две разные вещи не попытаются разместить свои данные по одному и тому же смещению и не перезапишут друг друга, в любом случае.

Было решено, что лучше иметь для них правильные разделы. Так что с GPT вы получаете раздел EFI, и/или GRUB получает раздел bios_grub для своего образа ядра и так далее.

В идеале вы можете посмотреть на таблицу разделов и понять, как она устроена, а не чесать голову и спрашивать, как все вообще работает, потому что все это спрятано и зарыто где-то за пределами разбиения на разделы.

Связанный контент