Изучение загрузки ОС под (BIOS и) UEFI
Конечная цель - научиться размещать систему (и в идеале загрузчик) на зеркале, mdraid или zfs mirror на выбор.
Инструкций в интернете полно, поэтому здесь рассматривается процесс исключительно ручной работы, дабы поглубже погрузиться в ...
А началось все с того, что мне не удалось перенести живую систему на mdraid под uefi, а имеющихся знаний и даже немалого гугления оказалось недостаточно для решения задачи. Стало ясно, что надо изучить вопрос поосновательней, несмотря на малую востребованность.
Итак, предположим, есть чистый диск /dev/sdb, на которую нужно склонировать текущую ОС.
Для начала необходимо сделать диск загрузочным.
В случае с uefi нужно разметить диск под gpt, создать раздел с fat (или fat32), на него положить загрузчик и его конфиг.
Чтобы не писать в nvram, можно положить загрузчик в /efi/boot/ и переименовать его в bootx64.efi.
Но если очень хочется в uefi создать пункт загрузки, то можно воспользоваться efibootdump и efibootmgr.
В первом случае выбираем загрузку с диска, во втором - созданный нами пункт меню загрузки.
Рядом нужно положить конфиги и что там требуется еще выбранному загрузчику для нормальной работы.
Загрузчики существуют разные, самые известные - grub и виндовый загрузчик. Но есть загрузчики помоложе и поудобней, например refind.
Следующая команда разметит /dev/sdb нужным образом и положит туда загрузчик refind, то есть сделает диск загрузочным:
./uefi/init.disk /dev/sdb refind
С этого момента с нашего диска можно грузиться - refind найдет все загрузчики установленных ОС и сгенерирует меню загрузки.
Соотвественно команда
./uefi/init.disk /dev/sdb grub
сделает загрузочный диск с grub-ом