Как отформатировать образ диска для распознавания в MS-DOS?

1372
Jaïr Paalman

Я пытаюсь эмулировать окна с bochs на моем устройстве Android. У меня есть следующие диски: пустой образ диска для установки Windows, виртуальный диск vvfat с установочными файлами и диск cdrom с последней версией DOS. Bochs распознает все диски правильно.

Проблема в том, что при загрузке в DOS образ диска не распознается. Я использовал команду vol для идентификации дисков. A был назначен на cdrom, B выдал ошибку чтения, C был назначен на виртуальный диск vvfat, а остальные не были назначены. Однако ошибка чтения B не имеет ничего общего с файлом изображения. Если бы я отключил все диски, кроме компакт-диска, ошибка все равно будет. Вероятно, это эмулируемая дискета.

Я думаю, что проблема в файле изображения. Я сделал это с помощью дд в терминале. Я использовал следующую конфигурацию:

dd if=/dev/zero of=/sdcard/Win.img bs=64k count=8192 

И отформатировал это с:

mkfs.vfat /sdcard/Win.img 

Это не сработало. Затем я обнаружил, что старые версии Windows поддерживают блок размером до 4 КБ или размер кластера, поэтому я сделал новую:

dd if=/dev/zero of=/sdcard/Win.img bs=4k count=131072 

И снова отформатировал его с помощью mkfs.vfat.

Так как это все еще не работало, я начал экспериментировать с файловыми системами и разделами. Я использовал fdisk для разделения изображения:

fdisk /sdcard/Win.img, n, p, 1, 1, 65 

Но до сих пор нет результата. Может быть, я сделал что-то не так, потому что, когда я печатал таблицу разделов, в конце было написано linux.

Мой вопрос: кто-нибудь знает, как отформатировать образ диска с терминалом, чтобы он был распознан DOS?

2
DOS распознает только FAT16. и нет разделов> 2gb когда-либо. cybernard 9 лет назад 0
Я пытался заставить DOS распознать диск, потому что я думал, что установка Windows нуждалась в этом, чтобы распознать это также. Кажется, что это не так, но после разбиения его с помощью fdisk в dos я должен был отформатировать его с помощью команды format. В любом случае, большое спасибо всем, потому что вы решили вопрос. Jaïr Paalman 9 лет назад 0
«Размер блока», который вы указали в команде dd, не имеет никакого отношения к фактическому размеру блока, созданному mkfs. Обе команды dd эквивалентны. ilkhd 9 лет назад 1

4 ответа на вопрос

1
cybernard

mkfs.vfat -F вы можете использовать ТОЛЬКО 12 или 16. (32 несовместимо с DOS)

mkfs.vfat -F 16 -f 2

Вам нужно избегать автоматического метода, так как он захочет использовать 32-битную файловую систему, будет несовместим с любой программой DOS.

12-битная файловая система традиционно зарезервирована для дискет. Хотя, его можно использовать, его максимальный размер составляет 1/4 или 512 МБ FAT16.

В DOS жесткие диски обычно FAT16. Именно поэтому я сказал использовать 16 бит, а нижний регистр -f 2 указывает на 2 копии, как работает DOS.

Это неверно "-F FAT-size - указывает тип используемых таблиц размещения файлов (12, 16 или 32-битных). Если ничего не указано, mkdosfs автоматически выберет между 12, 16 и 32-битными, что лучше подходит для размер файловой системы. " [mkfs.vfat (8) - справочная страница по Linux] (http://linux.die.net/man/8/mkfs.vfat) DavidPostill 9 лет назад 0
@DavidPostill Да, в документах говорится, что он будет автоматически выбираться, но если он будет автоматически выбран, 32-битная DOS не сможет распознать файловую систему. Пользователь может предположить, что нормально иметь файловую систему 10 ГБ, но при указании 16-битного он потерпит неудачу и сообщит им об их ошибке. cybernard 9 лет назад 0
Затем вы должны добавить это к своему ответу, чтобы объяснить, почему не следует использовать 32. Ваш текущий ответ не ясен, он выглядит так, как будто 32 не является допустимым значением, когда оно есть. А также объясните, почему используйте 16, а не 12. DavidPostill 9 лет назад 2
1
wendy.krieger

Вы можете скачать готовые жесткие диски из Интернета, в том числе пустые. Люди используют их в качестве загрузочных образов для компакт-дисков.

Размер сектора DOS составляет 512 байт, и если Windows 9x собирается выполнить двойную загрузку с более ранней версией DOS, создайте разделы менее 126 МБ. Это раздел fat16, который win9x не будет преобразовывать в fat32.

Когда вы создаете раздел, вы должны использовать DOS fdisk для создания разделов и форматировать для форматирования разделов. Вы можете сделать это с дискеты. vol видит только созданные разделы. Вы должны установить основной раздел «активный», иначе он не загрузится.

После форматирования вы можете sysдиск и установить DOS, Windows ..

0
Larssend

Вы можете оптимизировать весь процесс mkdosfs, особенно если вам нужна строгая совместимость с DOS. mkdosfsимеет -Cфлаг, который позволяет пропустить ddшаг. Чтобы создать образ дискеты размером 1,44 МБ Win.img, введите mkdosfs -C /sdcard/Win.img 1440.

Тем не менее, я сомневаюсь, что проблемный образ диска имеет разновидность дискеты. Даже Windows 3.0 занимает 6-8 МБ дискового пространства при установке.

Я пробовал mkdosfs, и это не сработало. Однако я использую образ диска 512 МБ, а не образ дискеты 1,44 МБ. Jaïr Paalman 9 лет назад 0
0
ilkhd

By default fdisk creates partitions of type "Linux". You need to change it to "Windows". Go back to fdisk and type (after what you've already typed) "t", "1", "b". Save and exit.