0


나는사용자 정의 부트 섹터 가상 CD

#include <sys/types.h> /* unistd.h needs this */ 
#include <unistd.h> /* contains read/write */ 
#include <fcntl.h> 

int main() 
{ 
    char boot_buf[512]; 
    int floppy_desc, file_desc; 

    file_desc = open("./boot", O_RDONLY); 
    read(file_desc, boot_buf, 510); 
    close(file_desc); 

    boot_buf[510] = 0x55; 
    boot_buf[511] = 0xaa; 

    floppy_desc = open("/dev/fd0", O_RDWR); 
    lseek(floppy_desc, 0, SEEK_CUR); 
    write(floppy_desc, boot_buf, 512); 
    close(floppy_desc); 
} 

내가하지 않았다 통해 플로피 디스크의 부트 섹터에 사용자 정의 로더를 쓰기로되어있어 플로피 드라이브가있는 PC와 VirtualBox를 통해 가상 머신에서 전체 프로젝트를 시도하는 것을 선호합니다.

그래서 내 가상 컴퓨터에서 호출 할 가상 CD 이미지에 사용자 지정 부트 섹터를 작성하는 방법은 무엇입니까? 당신이 어떤 다른 방법이있는 경우 :
그것을 제안하십시오 :

답변

0

(참고 :이 가정 당신이 리눅스에있는)

대신의 실제 플로피 드라이브가 필요 /dev/fd0, 쓰기, 당신이 쓸 수를 VirtualBox를 부팅하는 데 사용할 수있는 디스크 이미지. 그러나 파일을 1.44MiB로 채우려면 일반 플로피가 필요합니다.

더 좋은 방법은 먼저 bootsector 바이너리 (0xAA55 'magic code'포함)를 만든 다음 dd if=MyBootsectorBin of=Floppy.flp bs=512 count=2880과 같은 방법으로 출력 파일 Floppy.flp를 만드는 것입니다. 그러면 VirtualBox (또는 내 기본 설정, QEMU, qemu -fda Floppy.flp을 통해)를 통해 부팅 할 수 있습니다.

가상 CD에 대해서는 잘 모르겠지만 디스크에 쓸 ISO를 쉽게 만들 수 있습니다. 이것에 필요한 프로그램은 mkisofs이며, 자세한 내용은 here에서 읽을 수 있습니다.

관련 문제