Задался вопросом установки 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