У меня есть компакт-диск, созданный из файла ISO, который я использую для установки пользовательской версии Ubuntu через plop linux.
Компакт-диск работает нормально, но я бы хотел вместо этого использовать загрузочный USB-накопитель. Я использовал команду dd, чтобы попытаться создать загрузочный USB:
dd if=filename.iso of=/dev/sdb1 bs=4k
Теперь это копирует файлы и делает загрузочный USB, но я получаю сообщение об ошибке «Отсутствует операционная система»
Есть идеи?
Ответы:
Хорошо, после некоторого исследования я нашел решение, и я пройдусь по нему шаг за шагом. Проблема была двоякая.
Подключите USB-накопитель и определите устройство, на котором он установлен, с помощью команды:
На этот раз это был / dev / sdc1 для меня, поэтому я буду использовать это в качестве примера.
Размонтировать устройство
Не уверен, если нужно, но я отформатировал диск в FAT32, на всякий случай
Теперь мой ISO использовал isolinux, а не syslinux. Я знал, что это работает с компакт-дисками, поэтому я понял, что мне нужно вызвать изогибридную команду, которая позволяет ISO распознавать BIOS с жесткого диска.
Вы можете узнать больше об этой команде здесь , но это было причиной сообщения «Отсутствует операционная система». Первая проблема была исправлена, но теперь она сказала, что «isolinux.bin отсутствует или поврежден»
Следующим шагом является копирование ISO. Моя вторая проблема лежала здесь, где я копировал в раздел, sdc1, а не устройство, sdc.
Кажется, это работает нормально, но на форуме, где я получил последнее исправление, было рекомендовано сделать следующее, прежде чем отключать устройство:
источник
mkdosfs
команда может быть необязательной, поскольку в iso уже есть файловая система (вероятно, включая MBR, не уверенная), которая копируется в начало блочного устройства. Мужик,isohybrid
классная команда, не знал об этом!dd
команда в шаге 5 будет уничтожить вновь созданную файловую систему с содержимым ISO.pro
в Linux, так что спасибо)Это распространенная проблема с USB-накопителями SanDisk или накопителями, не отформатированными в FAT32.
Если нет ни одного из них, то это, безусловно, проблема с порядком разделов флешки или файлом syslinux.cfg.
источник
isohybrid
может не всегда работать. Например, у меня был .iso с FreeDOS, и isohybrid не смог там найти некоторые важные файлы (я не знаю, должны ли они были туда помещены syslinux, который я тоже использовал, или что-то еще). Я предлагаю несколько альтернатив здесь.1) Установите другой загрузчик, такой как GRUB. Это объясняется здесь :
«Предположим, что первый раздел вашего USB-накопителя - FAT32, а его раздел - / dev / sdy1» (у меня был
grub2
на Fedora Core, поэтому я немного изменил команды):2) FreeDOS вики предлагает метод соединения с резьбовыми и SysLinux здесь (хотя я не понимаю , как они начали
grub>
- я не мог загрузиться с USB до этой стадии).3) Вот пост, который может быть полезен - он говорит: «Пока файлы command.com, kernel.sys, syslinux.cfg, ldlinux.sys и fat32lba.bss находятся в корне диска, а MBR и загрузочный сектор не перезаписан, диск должен оставаться загрузочным. '
4) Здесь объясняется, как создать загрузочный файл .iso с загрузчиком syslinux. Они даже не используют изогибрид. К сожалению, это не помогло мне (возможно, из-за syslinux).
5 *) Используйте программу Windows через
wine
. Я попробовал rufus, однако это не сработало, оно не смогло найти устройство.Я предупреждаю вас, что, к сожалению, я не смог решить эту проблему, мое устройство не загружалось, но я надеюсь, что это может быть полезно для других людей (также тех, кто хочет установить не Linux на USB). Изображение usb, сгенерированное chtaube, хотя и сработало для меня, поэтому я думаю, что эти методы верны.
UPD: 3-й способ действительно работает (с исправлением для пользовательского установочного файла).
UPD2: (фиксированные ссылки). Возможно, проблема
isohybrid
была в том, что версии isolinux.bin на iso и моей системе были разными. Перекомпилировал iso, используяgenisoimage
предложенное здесь :Были также некоторые проблемы, они были решены с помощью метода, который был здесь до genisoimage:
== конец UPD2 ==
источник
Вы можете использовать
bootiso
утилиту , которая делает именно это, безопасно:bootiso проверит, что выбранное устройство
/dev/sdb
подключено через USB и, если оно этого не сделает, произойдет сбой, что является большим плюсом безопасности Он также автоматически обнаружит USB-устройство, если к вашей системе подключен только один USB-накопитель, посмотрите его в действии:Если вы хотите установить загрузчик syslinux, чтобы обойти проблемы, упомянутые в @xsdf, используйте
-b
параметр:Чтобы установить его:
источник