Задался вопросом установки FreeDOS на флешку.
Изучил некоторые материалы в интернетах. Вопрос вполне решаем,
но несколько утомляют пляски с бубном вокруг Syslinux,
makebootfat, компиляции и установки ПО, которое нам никогда не
понадобится и др., и пр. Чтобы минимизировать телодвижения,
попробуем понять, что нам необходимо для загрузки и что нам не
даёт грузиться.
Дальнейшие несколько десятков строк написаны для людей, знакомых
с линуксом и командной строкой. Любители "дружественной
операционной системы" и "мощных и полезных утилиток" с
"интуитивно понятными графическими интерфейсами" проходят
дальше.
В чем заключается проблема?
Проблема в том, что на новой флешке изначально в MBS (главном
загрузочном секторе, нулевом секторе) отсутствует MBR (главная
загрузочная запись), есть только PT (таблица разделов). Невелика
проблема установить на флешку ворованый MS DOS из 98-й винды и
всё решится само собой. Но мы хотим по-честному.
Если до этого на флешке MS DOS уже стоял, то простое копирование
системных файлов FreeDOS ни к чему не приведет, т. к. ссылки в
бутсекторе четко требуют майкрософтовских io.sys и msdos.sys.
Если воспользоваться фридосовой sys.com, то тоже ничего не
получится. Бутсектор перепишется со ссылкой на kernel.sys, но
MBR останется от MS DOS, несовместимый с фридосовым бутсектором.
Опять же, загрузка будет невозможна.
Итак, главная проблема в отсутствии MBR, никак не связанного с
Майкрософт. Отсюда и пляшем.
Что потребуется? Mbrfat.bin - образ загрузчика. Он расположен в
архиве с исходниками makebootfat.
Просто выколупаем его оттуда. Понадобится образ загрузочной
дискеты FreeDOS. Скажем, Balder
подойдет. Ну и, разумеется, понадобится флешка.
Для начала очищаем её от всего ненужного :) .
dd if=/dev/zero of=/dev/sda
bs=8K
После этого создаем cfdisk'ом раздел FAT.
cfdisk /dev/sda
Вылезет дружественное интерактивное меню :) .
Для флешек объемом до 2 ГБ тип раздела устанавливаем 06 (FAT16).
Для флешек больше 2 ГБ тип будет 0B или 0C (FAT32). Впрочем и
маленькие флешки можно готовить
под FAT32 тоже. Не забываем, про то, что раздел должен
быть Bootable, иначе флешка не загрузится.
Потом вписываем в нулевой сектор загрузчик, выковырянный из
исходников makebootfat.
dd
if=mbrfat.bin of=/dev/sda
Затем с помощью mkdosfs форматируем раздел на флешке.
mkdosfs
/dev/sda1 # в случае FAT16
mkdosfs
-F 32 /dev/sda1
# в случае FAT32
Изготавливаем
загрузочную фридос-дискету:
dd
if=balder10.img of=/dev/fd0
Перезагружаемся и грузим FreeDOS с дискеты. Флешка должна быть
воткнута, в биосе материнки должна быть включена поддержка
legacy usb.
На всякий случай можно еще раз форматнуть раздел уже из под DOS:
format С:
Потом записываем
фридосовый бутсектор и минимальный набор системных файлов:
sys С:
Собственно, всё - базовая система установлена :) . После
установки FreeDOS можно дополнительно установить необходимое ПО
для диагностики HDD, файловый менеджер, старые игры, повозиться
с драйверами верхней памяти и сиди-рома, поколдовать с
autoexec.bat и config.sys. Всё как в старые добрые времена :) .
Необходимое послесловие.
Хочу предупредить новоиспеченных "линуксоидов", во множестве
появившихся благодаря стараниям африканского космонавта
Шаттлворта и его Недобубунтам. Не следует буквально понимать
написанное и очертя голову копипастить приведенные команды. В
каждом конкретном случае, в зависимости от установленных жестких
дисков SATA, флешка может оказаться и sdb, и sdc, и sdd, "и так
далее..." Если на жестком есть разделы FAT, то и "диск C" может
иметь другую букву. Со всеми вытекающими деструктивными
последствиями для ваших данных :) . Поэтому сначала включаем
мозг и подходим к написанному творчески :) .
Виталий Розизнаный AKA Rozik
28.11.2008