Создание загрузочного ISO-файла
Я считаю, что разнообразие инструментов для записи файлов с ISO на USB немного сбивает с толку. Кажется, что каждый из них имеет свой немного отличающийся подход к проблеме, который варьируется от большей части прямого копирования в стиле DD (которое стирает любое существующее содержимое и приводит к тому, что USB-носитель в формате iso9660 только для чтения) до монтирования ISO по шлейфу, копирования файлы и выполнение установки загрузчика в качестве шага после копирования.
До сих пор я играл с Etcher, UNetbootin, Rufus и Ubuntu Startup Disk Creator. Я действительно ищу решение, которое было бы последовательным и кроссплатформенным, и меня особенно огорчило то, что Etcher и UNetbootin, похоже, способны создавать загрузочные носители в своих версиях Mac, но не из Linux (ни на виртуальной машине, ни на нативной). машина) - вроде бы они будут успешными, но конечный результат просто не загрузится.
В любом случае, чтобы поддержать обсуждение, это мой текущий метод создания предположительно загружаемого ISO-файла:
- Загрузите и распакуйте последнюю версию syslinux из
https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.tar.xz
- Скачать netboot
linux
а такжеinitrd.gz
отhttp://archive.ubuntu.com/ubuntu/dists/xenial-updates/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/
- Бежать
mkisofs -D -V "My App" -r -quiet -o path/to/result.iso -J -l -b syslinux/isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table file1.txt file2.txt file3.txt ...
- Бежать
syslinux/bios/utils/isohybrid.pl path/to/result.iso
Некоторые заметки:
- Полученный файл ISO (в том числе и без окончательного
isohybrid.pl
step) может быть смонтирован и загружен как CD-ROM под Parallels. - Если я записываю его на физический USB-порт с помощью Etcher, результат монтируется как iso9660, но, похоже, не загружается на моих целевых системах AMD64 (да, в "устаревшем" режиме).
- Без
isohybrid.pl
шаг, Этчер отказался от записи на физический USB. - Если я записываю его на физический USB с помощью UNetbootin под Mac OS, я получаю загрузочный результат, но если я делаю это с той же версией UNetbootin под Linux, результат не загружается.
- Единственный инструмент, который постоянно работает, - это Rufus, но он работает только на Windows и поэтому неудобен для многих моих пользователей.
Я надеюсь, что некоторые другие столкнулись с этими проблемами и у них есть идеи о том, что идет не так, или работающий метод - если в конечном итоге это будет решение для командной строки или только для Linux, это приемлемо для меня, хотя явно не идеальный. Я также готов перейти от Syslinux к Grub или к другому решению с поддержкой EFI, если это облегчит задачу.
Имея такие инструменты, как Etcher, кажется, что есть способ создать загрузочный ISO-образ, который можно удобно записать из любой поддерживаемой ОС.
1 ответ
Хм, ладно, похоже, что ISO, на котором был запущен изогибрид, как описано выше, на самом деле загружается на нескольких физических машинах - поэтому я считаю, что это проблема с Parallels и несколькими причудливыми настройками BIOS.
Еще немного информации из документации Etcher и списка рассылки Ubuntu:
https://github.com/resin-io/etcher/blob/master/docs/USER-DOCUMENTATION.md#flashing-ubuntu-isos
https://lists.ubuntu.com/archives/ubuntu-devel/2011-June/033495.html