Bootflash/FreeDOS
Загрузка образа FreeDOS с флешки
Для всяких манипуляций, вроде прошивки БИОСа, очень бывает нужна возможность загрузки чистой DOS. Однако, дискеты нынче не в моде, и всё такое...
Краткое howto:
- Скачиваем дискетный образ FreeDOS: (fdboot.img)
- Берём готовую загрузочную флешку
- или качаем образ и заливаем его на флешку
- или делаем флешку из имеющегося компакт-диска АльтЛинукс (см. InstallFlash)
- или делаем что-то своё (см. Mkimage, mkimage-profiles-desktop)
- Устанавливаем пакет syslinux, если еще не установлен.
- Читаем /usr/share/doc/syslinux-*/memdisk.doc
- Копируем в каталог /syslinux примонтированной флешки файл /usr/lib/syslinux/memdisk
- Копируем в каталог /syslinux примонтированной флешки скаченный ранее дискетный образ FreeDOS.
- Добавляем в /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