Bootflash/FreeDOS

Материал из ALT Linux Wiki

Загрузка образа FreeDOS с флешки

Для всяких манипуляций, вроде прошивки БИОСа, очень бывает нужна возможность загрузки чистой DOS. Однако, дискеты нынче не в моде, и всё такое...

Краткое howto:

  1. Скачиваем дискетный образ FreeDOS: (fdboot.img)
  2. Берём готовую загрузочную флешку
    • или качаем образ и заливаем его на флешку
    • или делаем флешку из имеющегося компакт-диска АльтЛинукс (см. InstallFlash)
    • или делаем что-то своё (см. Mkimage, mkimage-profiles-desktop)
  3. Устанавливаем пакет syslinux, если еще не установлен.
  4. Читаем /usr/share/doc/syslinux-*/memdisk.doc
  5. Копируем в каталог /syslinux примонтированной флешки файл /usr/lib/syslinux/memdisk
  6. Копируем в каталог /syslinux примонтированной флешки скаченный ранее дискетный образ FreeDOS.
  7. Добавляем в /syslinux/syslinux.cfg нашей флешки пункт :
label FreeDOS
    kernel memdisk
    append initrd=fdboot.img

Всё, загружаемся с флешки, и выбираем пункт FreeDOS. Если поддержка USB-дисковых устройств настроена в БИОСе, то мы получаем файловую систему нашей флешки в виде буквы диска (например, C:, если в системе нет ни одного винчестера), в том числе, и на запись.

На флешку можно класть утилиты биосопрошивания, образы БИОС, и т.д., и т.п. Из утилит на флешку при этом замечательно сохраняются резервные копии прошивок.

С компакт-дисками тоже должно получиться, единственное, что - не будет r/w, и для доступа к самому компакту нужно будет загрузить ДОСовские драйвера.

При желании можно подредактировать образ дискеты, смонтировав его с -o loop.

Если БИОС не даёт доступа к флешке, можно попробовать USB-DOS-драйвера (http://www.tmk.ru/articles/view.php?art=131)

Комментарии от vsu@

К сожалению, такой вариант не всегда работает (в частности, возникают проблемы как раз с утилитами для прошивки BIOS). Хотя, если класть прошивку не в образ дискеты, а в файловую систему на флешке, возможно, проблем будет меньше. Кроме того, можно попробовать разные режимы работы memdisk (int, safeint, raw, bigraw); впрочем, на ASUS P5SD2-VM при загрузке через memdisk с CD-ROM ни в одном из этих режимов прошивальщик так и не заработал (и вариант с fdimage в isolinux тоже не прошёл - функция INT 13h AX=4C00h, похоже, существует только на бумаге).

Можно запускать FreeDOS непосредственно с флешки (без использования memdisk); есть как минимум два способа:

  • Взять syslinux >= 3.70 (в пакете лежит слишком древняя версия) и модуль chain.c32 оттуда (положить рядом с syslinux.cfg). Скопировать файлы kernel.sys и command.com из образа FreeDOS на флешку в корневой каталог. Добавить в syslinux.cfg пункт:
label FreeDOS
      kernel chain.c32
      append boot,1 freedos=/kernel.sys

(здесь 1 - это номер раздела на флешке; при использовании Zip-совместимой разбивки нужно указать 4).

  • При использовании устаревшей версии syslinux можно воспользоваться имеющейся там возможностью запуска загрузочного сектора из файла; чтобы получить этот файл, можно сначала загрузить FreeDOS через memdisk, выполнить SYS C: для установки загрузочного сектора на флешку, после чего сохранить первый сектор раздела в файл freedos.bss и переустановить загрузчик syslinux (или перед выполнением всех этих действий сохранить ещё одну копию загрузочного сектора раздела, а затем записать назад). В этом случае пункт меню в syslinux.cfg будет выглядеть так:
label FreeDOS
      kernel freedos.bss