Создание загрузочного ISO-файла

Создание загрузочного ISO-файла

Я нахожу разнообразие инструментов для «прожига» ISO-на-USB немного сбивающим с толку. Кажется, у каждого из них свой немного отличающийся подход к проблеме, который варьируется от более прямого копирования в стиле DD (которое стирает все существующее содержимое и приводит к USB-носителю, отформатированному только для чтения в формате iso9660) до монтирования ISO на обратной петле, копирования файлов и установки загрузчика в качестве шага после копирования.

До сих пор я играл с Etcher, UNetbootin, Rufus и Ubuntu's 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шага) можно смонтировать и загрузить как CD-ROM в Parallels.
  • Если я запишу его на физический USB-накопитель с помощью Etcher, результат можно будет смонтировать как iso9660, но, похоже, он не сможет загрузиться на моих целевых системах AMD64 (да, в «устаревшем» режиме).
  • Без этого isohybrid.plшага Etcher отказался бы записывать данные на физический USB-накопитель.
  • Если я запишу его на физический USB-накопитель с помощью UNetbootin под Mac OS, я получу загрузочный результат, но если я сделаю это с той же версией UNetbootin под Linux, результат будет не загрузочным.
  • Единственный инструмент, который работает стабильно — это Rufus, но он предназначен только для Windows и неудобен для многих моих пользователей.

Я надеюсь, что кто-то еще сталкивался с этими проблемами и имеет идеи о том, что идет не так, или о работоспособном методе — если в итоге придется использовать командную строку или решение только для Linux, это приемлемо для меня, хотя, очевидно, не идеально. Я также открыт для перехода с Syslinux на Grub или какое-то другое решение с поддержкой EFI, если это облегчит ситуацию.

При наличии таких инструментов, как Etcher, можно с уверенностью сказать, что существует способ создания загрузочного ISO-образа, который можно будет легко записать из любой поддерживаемой ОС.

решение1

Хм, ладно, похоже, что ISO-образ, на котором был запущен isohybrid, как описано выше, на самом деле может загружаться на нескольких физических машинах, поэтому на данный момент я предполагаю, что это проблема 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

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