Я пытаюсь эмулировать windows с помощью bochs на моем устройстве android. У меня есть следующие диски: пустой образ диска для установки windows, виртуальный диск vvfat с установочными файлами и дисковод cdrom с последней версией DOS. Bochs правильно распознает все диски.
Проблема в том, что при загрузке в DOS образ диска не распознается. Я использовал команду vol для идентификации дисков. A был назначен cdrom, B выдал ошибку чтения, C был назначен виртуальному диску vvfat, а остальные были не назначены. Однако ошибка чтения, которую выдал B, не имеет ничего общего с файлом образа. Если бы я отключил все диски, кроме cdrom, ошибка все равно была бы там. Вероятно, это эмулированная дискета.
Я думаю, что проблема в файле образа. Я сделал его с помощью dd в терминале. Я использовал следующую конфигурацию:
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?
решение1
mkfs.vfat -F вы можете использовать12или16ТОЛЬКО.(32 несовместимо с DOS)
mkfs.vfat -F 16 -f 2
Вам следует избегать автоматического метода, так как он потребует использования 32-битной файловой системы и будет несовместим с любой программой DOS.
12-битная файловая система традиционно зарезервирована для дискет. Хотя ее можно использовать, ее максимальный размер составляет 1/4 или 512 МБ FAT16.
В DOS жесткие диски обычно FAT16. Вот почему я сказал использовать 16 бит и нижний регистр-ф 2указывает на 2 копии, что соответствует принципу работы DOS.
решение2
Вы можете оптимизировать весь процесс mkdosfs
, используя , особенно если вам нужна строгая совместимость с DOS. mkdosfs
имеет -C
флаг, позволяющий пропустить этот dd
шаг. Чтобы создать образ дискеты размером 1,44 МБ с именем Win.img
, введите mkdosfs -C /sdcard/Win.img 1440
.
Однако я сомневаюсь, что проблемный образ диска относится к типу дискет. Даже Windows 3.0 занимает от 6 до 8 МБ места на диске при установке.
решение3
Вы можете скачать готовые жесткие диски из интернета, в том числе и пустые. Люди используют их как загрузочные образы для cdrom.
DOS имеет размер сектора 512 байт, и если windows 9x будет загружаться с более ранней версией DOS, сделайте разделы менее 126 МБ. Это раздел fat16, который win9x не преобразует в fat32.
Когда вы создаете раздел, вам нужно использовать DOS fdisk для создания разделов и format для форматирования разделов. Вы можете сделать это с дискеты. vol видит только созданные разделы. Вам нужно сделать основной раздел «активным», иначе он не загрузится.
После форматирования вы можете sys
установить на диск DOS, Windows...
решение4
По умолчанию fdisk создает разделы типа "Linux". Вам нужно изменить его на "Windows". Вернитесь в fdisk и введите (после того, что вы уже ввели) "t", "1", "b". Сохраните и выйдите.