Как создать загрузочный ISO-образ UEFI с помощью grub-mkrescue?

Я бы выбрал awk , который обеспечивает больший контроль и обобщает проблему:

awk 'BEGIN{FS="\t"; OFS=","}
      /^[^A-Z]/ {for (i=1; i<=NF; i++) {if (!a) a=$i; else a=a OFS $i} next}
      {if (a) print a; a=""; print}
     END{print a}'

Объяснение

  • BEGIN {FS = "\ t"; OFS = ","} установить разделитель полей ввода как табуляцию и разделитель полей вывода как запятую.
  • / ^ [^ A-Z] / {for (i = 1; i <= NF; i ++) {if (! A) a = $ i; else a = a OFS $ i} next} в строках, не начинающихся с заглавной буквы, сохраните значения в переменной a .
  • {если (а) вывести a; а = ""; print} в остальных случаях (то есть строки, начинающиеся с заглавной буквы), вывести сохраненное значение вместе с текущей строкой.
  • END {print a} после обработки всего файла распечатать последнюю сохраненную переменную со значениями из последнего блока.

См. Вывод:

$ awk 'BEGIN{FS="\t"; OFS=","}/^[^A-Z]/ {for (i=1; i<=NF; i++) {if (!a) a=$i; else a=a OFS $i} next} {if (a) print a; a=""; print} END{print a}' file
ID1
1,5,6,8
ID2
1,4,5,7

Помните, что в sed вы всегда можете использовать параметр -e для объединения команд.

1
16.08.2015, 05:04
1 ответ

Для загрузки EFI вам необходимо сформировать определенную структуру файловой системы образа, а не только загрузочный сектор (поскольку он не используется), поэтому взгляните на живую версию Ubuntu. вспомогательные сценарии (я предполагаю) или исследуйте сценарий mki-copy-efiboot (часть mkimage , которую я написал и использую).

Если вам просто нужен пользовательский образ для восстановления, а не обязательно на основе Ubuntu, вам может понравиться мой ALT Linux Rescue , поскольку технология, лежащая в его основе, открыта и явно создана для простых производных (но в основном документировано на русском языке , что не остановило некоторых) - в основном речь идет о захвате live-builder.iso , загрузке его на запасной ВМ / хосте и:

git clone git://git.altlinux.org/people/mike/packages/mkimage-profiles.git
cd mkimage-profiles
make regular-rescue.iso
grep -B6 RESCUE_PACKAGES conf.d/regular.mk

Также было бы полезно прочитать превосходную книгу Рода о загрузчиках EFI , а также отчет Мэтью Гаррета о поиске ISO9660 / EFI .

Удачи на любом пути!

PS: grub-mkrescue, по-видимому, не поддерживает EFI с версии 2.00.

1
27.01.2020, 23:50

Теги

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