Как отформатировать образ диска для распознавания в MS-DOS?
Я пытаюсь эмулировать окна с 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?
4 ответа
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.
Вы можете оптимизировать весь процесс, используя mkdosfs
особенно если вам нужна строгая совместимость с DOS. mkdosfs
имеет -C
флаг, который позволяет пропустить dd
шаг. Чтобы создать образ дискеты 1.44MB под названием Win.img
, войти mkdosfs -C /sdcard/Win.img 1440
,
Тем не менее, я сомневаюсь, что проблемный образ диска имеет разновидность дискеты. Даже Windows 3.0 занимает 6-8 МБ дискового пространства при установке.
Вы можете скачать готовые жесткие диски из Интернета, в том числе пустые. Люди используют их в качестве загрузочных образов для компакт-дисков.
DOS имеет размер сектора 512 байт, и если Windows 9x собирается выполнить двойную загрузку с более ранней DOS, создайте разделы менее 126 МБ. Это раздел fat16, который win9x не будет преобразовывать в fat32.
Когда вы создаете раздел, вы должны использовать DOS fdisk для создания разделов и форматировать для форматирования разделов. Вы можете сделать это с дискеты. vol видит только созданные разделы. Вы должны установить основной раздел "активный", иначе он не загрузится.
После форматирования вы можете sys
диск, и установите DOS, Windows..
По умолчанию fdisk создает разделы типа "Linux". Вам нужно изменить его на "Windows". Вернитесь к fdisk и наберите (после того, что вы уже набрали) "t", "1", "b". Сохранить и выйти.