Установка другого Linux в зашифрованном диске

Нет. Но можно создать RAID 0 массивов, содержащих только/dev/sdb, скопировать данные от/dev/sda до/dev/md0, затем добавить/dev/sda к массиву. Вуаля, данные сохраняются!

7
12.02.2015, 11:15
2 ответа

Из всего, что я прочитал, все сводится к тому, что initramfs "встроены в ядро и загружаются на ранней стадии процесса загрузки"1

Для Mint вам нужно будет настроить /etc/crypttab, а затем воспользоваться update-initramfs. 2

Насколько я понимаю, это должно послужить руководством по созданию образа initramfs после установки Mint, который Вы, кажется, уже установили. Надеюсь, что в этом разделе будет рассказано обо всём, но обязательно изучите каждую часть самостоятельно.

Live boot Mint, mount и chroot на раздел, на который вы установили Mint. 3

Создайте и настройте /etc/crypttab для разблокировки при загрузке. 4 Здесь вы добавляете путь к lvm, на котором установлена Mint, который, основываясь на вашем вопросе, должен быть расположен в /dev/mapper/lv_os2 или /dev//lv_os25

Большинство примеров, которые я видел в /etc/crypttab, выглядят следующим образом:
root /dev/mapper/lv_os2 none luks. Четырьмя полями, соответственно: по вашему выбору, путь к lvm, где вы установили Mint, none установка пароля для ручного ввода при загрузке системы, и luks заставляет работать в режиме LUKS, но это не кажется необходимым.

Если в поле опций и в блочном устройстве не указан режим содержит подпись LUKS, открывается как устройство LUKS; в противном случае, предполагается, что он будет в формате raw dm-crypt (обычный режим).

Настройте /etc/fstab для монтирования /dev/mapper/, который вы только что создали в /etc/crypttab в качестве корневого каталога /. Что-то вроде:
/dev/mapper/ /
Смотрите man fstab.

После настройки /etc/crypttab и /etc/fstab по вашему усмотрению, вы можете использовать update-initramfs для сборки/обновления загрузочного образа.

Смотрите man update-initramfs. Лучше всего использовать конкретную версию ядра, отображаемую в uname -r в Mint. Команда должна выглядеть как update-initramfs -u -k 3.11.0-26-generic за исключением замены версии ядра на свою собственную.

На данный момент, возможно, вы сможете загрузиться на Fedora еще раз и попробовать опцию grub2-mkconfig -o /boot/grub/grub.cfg, которая обнаруживала Mint ранее. Если это не сработает, следуйте настройкам руководства по мультизагрузке в руководстве GRUB. 6

В частности, эта часть:

Во всех операционных системах установите инструменты GRUB, но запретите установку GRUB в boottsector, так что у вас будет доступно menu.lst и grub.cfg. Также отключите использование os-prober, установив:

GRUB_DISABLE_OS_PROBER=true

в /etc/default/grub

Надеюсь, это покрывает большую часть того, что нужно для загрузки Mint.

1
27.01.2020, 20:19

Это не совсем ответ на ваш вопрос "как", но должно дать вам немного понимания - и это слишком долго для комментария.

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

  1. аппаратное обеспечение загружает прошивку - обычно BIOS UEFI (на платформе x86). Аппаратное обеспечение как таковое полностью агностично по отношению к данным - оно просто загружает всё, что находит в каком-нибудь постоянном хранилище (по заранее определённому адресу).

  2. Микропрограмма загружает системный загрузчик или непосредственно ядро. Как и в случае с процессором, он не имеет представления о возможных режимах шифрования (не то чтобы не мог, но обычно просто не имеет).

  3. Если вовлечён системный загрузчик, то он загружает ядро (или связанный системный загрузчик, как, например, при загрузке Windows), а чаще всего и начальный ramdisk (который может быть либо в отдельном файле, либо встроен в образ ядра). Здесь становится интереснее, так как, например, GRUB2 должен иметь возможность загружаться с устройства LUKS, но документация кажется довольно скудной .

  4. Ядро монтирует корневую файловую систему и запускает init (System V init, systemd, OpenRC, upstart... вариантов достаточно много).

  5. Если загрузка с начального ramdisk, то он сначала расширяется в память, затем монтируется и оттуда запускается init-система. Шульда initramfs содержит всё необходимое для монтирования нужной корневой файловой системы - обычно она содержит все доступные драйверы (например, драйверы RAID, которые необходимы, когда конечный rootfs находится на устройстве RAID), графическую загрузочную инфраструктуру - что часто означает минимальный (или не очень маленький) стек X11 - а также часто инструменты для монтирования зашифрованных разделов. После того, как всё настроено, и окончательные rootfs монтируют систему init, запущенную из initramfs делает pivot_root() (подробнее см. страницы pivot_root(8) и pivot_root(2) man pages), таким образом, переключая / на нужную файловую систему.

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

Таким образом, вы, вероятно, захотите узнать, как именно Fedora и Mint загружаются с зашифрованного тома. Решением Вашей проблемы может быть, например, создание соответствующего образа initramfs для ядра Mint. Возможно, Вы даже сможете использовать один initramfs для обоих ядер, при условии, что Вы убедитесь, что существует условный монтаж нужных rootfs в зависимости от загруженного ядра, хотя я бы не рекомендовал это делать, особенно если Вы решили использовать разное (например, стоковое) ядро для каждого дистрибутива.

Это говорит о том, что вы можете также подумать о том, действительно ли вы хотите иметь две установки бок о бок - возможно, было бы удобнее запустить одну виртуализированную.

1
27.01.2020, 20:19

Теги

Похожие вопросы