Установка загрузчика grub4dos на флешку из 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, но он не работал по причине совершенно непонятного использования параметров этой утилиты.

Надеюсь, кому-то будет полезно.
  • +3
  • 32.6k
  • 4
Share post

Similar posts

Comments 4

    +1
    Берем файл bootlace.com из grub4dos и делаем:
    bootlace.com /dev/sdb
    

    Все.
      0
      Ну, да. Согласен! Так тоже можно. И это быстрее гораздо.
        0
        если бы это работало, вообще б было замечательно
          0
          Качаем grub4dos.zip, разархивируем, заходим в каталог и:
          $ sudo ./bootlace.com /dev/sdb
          
          Disk geometry calculated according to the partition table:
          
                  Sectors per track = 63, Number of heads = 255
          
          Success.
          
          $ sudo mount /dev/sdb1 /mnt/flash/
          $ sudo cp grldr menu.lst /mnt/flash/
          $ sudo qemu-system-x86_64 -hda /dev/sdb

          image

      Only users with full accounts can post comments. Log in, please.