LINUX.ORG.RU

Создание загрузочной флоппи дискеты с DOS под Linux

 , , , ,


3

1

Я начел исследовать загрузочные сектора. Короче, я выяснил что в MBR храниться не только загрузчик, но и таблица разделов жёсткого диска или флешки а также несколько служебных байт. По этому игры с MBR не безопасны! Перед играми с MBR рекомендуется делать backup самой MBR, а не то придётся запускать testdisk и ждать около 1-2 месяцев, пока testdisk восстановит область MBR которая отвечает за таблицу разделов. Если на жёстком диске не было разделов, то в начале ещё может быть инфа о файловой системе, которую в случае потере восстановить довольно сложно. На флоппи-дискетах MBR немного отличается: там есть область, где храниться информация о файловой системе дискеты, а также о самой дискете. Но, вот возникла задача создать загрузочный диск с DOS из под линукс. Копирую mbr с заранее скаченной загрузочной дискеты, записываю, копирую туда файлы io.sys, msdos.sys, command.com. Запускаю, но система почему-то пишет Non system disk. Что я делаю не так? Небольшая паметка для себя:

dd if=/dev/sda of=./mbr_full.bin bs=1 count=512 # создать образ mbr
dd if=/dev/sda of=./mbr_loader.bin bs=1 count=446 # создать образ загрузчика mbr
dd if=/dev/sda of=./mbr_partition.bin bs=1 count=64 skip=446 #создать образ таблицы разделов
dd if=/dev/sda of=./mbr_sign.bin bs=1 count=2 skip=510 # создать образ сигнатуры
dd if=./mbr_full.bin of=/dev/sda bs=1 count=512 # восстановить образ mbr 
dd if=./mbr_loader.bin of=/dev/sda bs=1 count=446 # восстановить загрузчик mbr
dd if=./mbr_partition.bin of= bs=1 count=64 seek=446 # восстановить таблицу разделов
dd if=./mbr_sign.bin of=/dev/sda bs=1 count=2 seek=510 # восстановить сигнатуру

Все команды Вы выполняете на свой страх и риск!!!!

ВНИМАНИЕ!!! Если перепутать seek и skip местами - можно ПОТЕРЯТЬ ДАННЫЕ!!!

Ошибки исправлены

★★★★★

Если задача просто сделать DOS-«дискету» из флешки, то могут быть нюансы из-за размера флешки, который значительно больше винтов тех времён. Я когда-то брал образы отсюда, для флешек размером более 2G, работало. Можешь заодно среверсинженирить их.

Nirvandil ()

Куда копирую? С дискеты на дискету? Дык, io.sys и msdos.sys должны располагаться строго по тем же секторам, что и в исходной дискете. Насчёт command.com, кажется, такого требования нет.

tiinn ★★★★ ()
Ответ на: комментарий от tiinn

а как их расположить строго по секторам? Я делал через dd - не получается

ne-vlezay ★★★★★ ()

Перед играми с MBR рекомендуется делать backup самой MBR, а не то придётся запускать testdisk и ждать около 1-2 месяцев

што

iz_tabakerki ()

Я не понял, вы тут пытаетесь объяснить другим что нужно делать, или спрашиваете?

На дискете нет MBR, там просто BR (boot record), потому что по классике, загрузчик в MBR ищет какой раздел активный и читает и запускает первый сектор этого раздела — BR.

Загрузчик MS-DOS'а проверяет, что первый файл в FAT'е это IO.SYS, а второй это MSDOS.SYS. Поэтому смотрите куда вы копируете файлы, у FAT'а простая структура. И дискету вы в fat12 форматируете?

mky ★★★★★ ()

а не то придётся запускать testdisk и ждать около 1-2 месяцев, пока testdisk восстановит область MBR которая отвечает за таблицу разделов. Если на жёстком диске не было разделов, то в начале ещё может быть инфа о файловой системе, которую в случае потере восстановить довольно сложно

Как-то раз не туда сделал dd, глубокий анализ занял часа два. Всё восстановилось без проблем.

Valkeru ★★★★ ()

Для того, чтоб создать загрузочную флоппи дискету с DOS под Linux в первую очередь потребуется привод для флоппи дискет.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.