2015-01-05 1 views
-1

C로 간단한 커널을 작성하려고 시도했습니다.이 튜토리얼은 Bare Bones입니다. 나는 계단을 따라 갔다. "o"파일을 하나의 "bin"파일로 컴파일하면 VirtualBox에서 실행하려고했습니다. "bin"을 "img"으로 변경했습니다. 누군가가 무엇인지 말해 줄 수 있다면VirtualBox가 .img 또는 .flp 파일을로드 할 수 없습니다.

A floppy fájl megnyitása sikertelen: path_of_file. (Eng.: failed to load floppy image.)

Could not get the storage format of the medium 'path_of_file' (VERR_NOT_SUPPORTED).

Eredmény kód: VBOX_E_IPRT_ERROR (0x80BB0005) (Eng.: Result code.)

Komponens: Medium (Eng.: Component.)

Interfész: IMedium {05f2bbb6-a3a6-4fb9-9b49-6d0dda7142ac} (Eng.: Interface.)

Callee: IVirtualBox {fafa4e17-1ee2-4905-a10e-fe7c18bf5554}

Callee RC: VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)

나는 매우 행복 할 것이다 : 나는 새로운 가상 머신을 만든 내가 시도 할 때 플로피 이미지로 "IMG"파일을 설정하는 오류가 발생합니다 문제 및 어떻게 해결할 수 있습니다. 나는 인터넷을 통해 해결책을 찾았지만 아직 찾지 못했습니다. 내가 무엇을 사용 소프트웨어 :

  • NASM 2.11.06
  • 는 i686-ELF-GCC 4.8.2
  • 버추얼 4.3.20

내 OS는 전문 윈도우 7 (OSDev forum에서) 64 비트.

(내 영어 죄송합니다,하지만 난 아직이 언어를 배우고했습니다.)

감사합니다.

답변

0

하나의 옵션은 http://qemu.weilnetz.de/의 QEMU를 사용하는 것입니다. PATH 변수를 QEMU 설치 디렉토리의 QEMU 2 진 디렉토리에 설정하십시오. kernel.bin이 저장된 곳으로 명령 프롬프트를 열고 입력 :

qemu-system-i386 -kernel kernel.bin 

그렇지 않으면, 부팅 가능한 ISO 디스크를 생성하는 기존의 부트 로더 (양호하게는 GRUB2)를 사용합니다. 현재, 커널 코드가있는 바이너리 파일 만 있으면됩니다.

1) 다음과 같은 내용으로 grub.cfg라는 파일 확인 : 터미널에서 다음 명령을 실행)

menuentry "my os" { 
    multiboot /boot/kernel.bin 
    boot 
} 

2 :

mkdir isodir 
mkdir isodir/boot 
mkdir isodir/boot/grub 

3) grub.cfg 파일을 저장 isodir/boot/grub 디렉토리에 있습니다. 이 설치 실행 당신이 이미 가지고있는 경우 ( https://cygwin.com/install.html :

4) 여기에서 설정 - X86.EXE를 다운로드하여 32 비트에 대한 Cygwin에서 가져 오기) 부팅에게/

5 isodir하기 위해 kernel.bin 파일을 복사 설치 파일을 열고 단계 7로 건너 뛰십시오.) 012) 파일을 실행하고 설치 디렉토리, 패키지 디렉토리 및 GNU 미러를 선택하십시오.

7) 패키지 목록이 나타나면 '사용되지 않는 패키지 숨기기'확인란의 선택을 취소하십시오.

8) 검색 창에서 grub를 검색하면 더 이상 사용되지 않는 카테고리에 "grub2"로 표시되어야합니다. 설치를 위해 선택하고 계속하십시오.

9) 설치 후 (간단히 실행) 경로에 Cygwin에서 바이너리 디렉토리를 추가해야합니다 :

sh grub-mkrescue --output=myos.iso isodir 

그런 다음 버추얼 박스에서 "myos.iso"파일을 실행할 수 있습니다.

질문이 있으시면 의견을 남겨주세요. 희망이 도움이!

관련 문제