내 안드로이드 장치에서 bochs로 창을 에뮬레이트하려고합니다. 저는 Windows를 설치할 빈 디스크 이미지, 설치 파일이 있는 가상 vvfat 드라이브, 최신 버전의 DOS가 설치된 CDROM 드라이브 등의 드라이브를 가지고 있습니다. 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 버전이 최대 4kB 블록 또는 클러스터 크기만 지원한다는 사실을 알고 새 버전을 만들었습니다.
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또는16ONLY.(32는 DOS와 호환되지 않습니다)
mkfs.vfat -F 16 -f 2
32비트 파일 시스템을 사용하면 모든 DOS 프로그램과 호환되지 않으므로 자동 방법을 피해야 합니다.
12비트 파일 시스템은 일반적으로 플로피 디스크용으로 예약되어 있습니다. 하지만 사용할 수 있는 최대 크기는 FAT16의 1/4 또는 512mb입니다.
DOS에서 하드 드라이브는 일반적으로 FAT16입니다. 이것이 제가 특히 16비트와 소문자를 사용하라고 말한 이유입니다.-f 2DOS가 작동하는 방식인 2개의 복사본을 나타냅니다.
답변2
mkdosfs
특히 DOS와의 엄격한 호환성이 필요한 경우 를 사용하여 전체 프로세스를 간소화할 수 있습니다 . 단계 를 건너뛸 수 있는 플래그가 mkdosfs
있습니다 . 라는 1.44MB 플로피 디스크 이미지를 만들려면 를 입력합니다 .-C
dd
Win.img
mkdosfs -C /sdcard/Win.img 1440
그러나 문제의 디스크 이미지가 플로피 디스크의 종류인지는 의심스럽습니다. Windows 3.0도 설치 시 6-8MB의 디스크 공간을 차지합니다.
답변3
빈 하드 드라이브를 포함하여 미리 만들어진 하드 드라이브를 인터넷에서 다운로드할 수 있습니다. 사람들은 이를 CDROM의 부팅 이미지로 사용합니다.
DOS의 섹터 크기는 512바이트이며, Windows 9x가 이전 DOS를 사용하여 이중 부팅하려는 경우 파티션을 126MB 미만으로 만드십시오. 이것은 win9x가 fat32로 변환하지 않는 fat16 파티션입니다.
파티션을 만들 때 DOS fdisk를 사용하여 파티션을 만들고 파티션을 포맷하려면 포맷해야 합니다. 플로피에서 이 작업을 수행할 수 있습니다. vol은 생성된 파티션만 볼 수 있습니다. 기본 파티션을 '활성'으로 설정해야 합니다. 그렇지 않으면 부팅되지 않습니다.
포맷이 완료되면 sys
드라이브를 설치하고 DOS, Windows를 설치할 수 있습니다.
답변4
기본적으로 fdisk는 "Linux" 유형의 파티션을 만듭니다. "Windows"로 변경해야 합니다. fdisk로 돌아가서 (이미 입력한 것 뒤에) "t", "1", "b"를 입력하십시오. 저장 및 종료.