Установка загрузчика grub4dos на флешку из linux-консоли

в 6:58, , рубрики: grub4dos, linux, usb, Настройка Linux

Описанное мной ениже крайне просто и очевидно, но, я надеюсь, это хоть кому-то поможет сэкономить пару часов времени.

На просторах интернета можно найти много статей по созданию мультизагрузочных флешек. Все они сводятся, в основном, к использованию grub4dos и syslinux. Что может быть проще: скачать, например, grub4dos, распаковать, запустить и нажать пару кнопок? Это работает, только работает под Windows.

А что если у меня linux? Здесь возникает ситуация, когда вопросов на форумах о том, как из linux установить загрузчик в MBR чуть больше, чем ответов. Я, признаюсь, и сам мучился до сегодняшней ночи.

Всё оказалось просто

Нужно всего-то лишь:

  • Скачать и распаковать архив grub4dos;
  • На флешке создать первичный раздел и пометить его, как «загрузочный»;
  • «Залить» загрузчик при помощи утилиты dd в загрузочную запись;
  • Скопировать файл grldr из архива на раздел флешки.

Теория

В двух словах про главную загрузочную запись (MBR). Согласно Википедии, труктура у неё следующая:

  • Код загрузчика — 446 байт;
  • Таблица разделов;
  • Сигнатура

Наша задача: скопировать первые 446 байт из файла grldr.mbr в начало флешки.

Практика

Но не всё так просто. Именно в этом была вся проблема. Недостаточно просто скопировать 446 байт. После этого мы просто видим ошибку:

Missing MBR-helper

В чём же дело?
На ответ натолкнуло то, что файл grldr.mbr имеет размер 9 килобайт. Всё решилось копированием его остальной части туда же — в начало диска (флешки). Только таблицу разделов и сигнатуру нужно оставить; просто пропускаем 512 байт:

dd if=grldr.mbr of=/dev/sdb bs=446 count=1
dd if=grldr.mbr of=/dev/sdb seek=512 skip=512 bs=1

Вот и всё. Теперь копируем на флешку нужные файлы, ISO-образы, правим menu.lst. Благо, по этой части в интернете есть громаднейшее количество информации.

Заключение

Эту статью меня побудило написать то, что на каком-то сайте я видел способ с использованием dd, но он не работал по причине совершенно непонятного использования параметров этой утилиты.

Надеюсь, кому-то будет полезно.

Автор: tetramin

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js