x86 에뮬레이터 Bochs 사용 HOWTO

이재홍 http://www.pyrasis.com 2004.10.16

오픈소스 x86 에뮬레이터 프로그램인 Bochs의 사용법을 설명하도록 하겠습니다.

공식 홈페이지: http://bochs.sourceforge.net

Bochs는 VMware, VirtualPC와 똑 같은 동작을 하며 x86에뮬레이터 이고 이것을 실행할 수 있는 플랫폼은 IBM PC Windows, Linux 와 Apple Macintosh MacOS에서 실행 가능하며 IBM PC와 Mac에서도 똑 같은 x86 IBM PC를 에뮬레이트 해서 가상의 PC를 만들어 냅니다.

실행 파일 다운로드

위의 공식 홈페이지에 가면 Windows용 실행파일을 받을 수 있습니다.
bochs-2.0.2.win32-bin.zip(버전은 최신 버전을 받습니다.)
압축을 풀면 다음과 같이 됩니다.

환경 설정

위에서 보면 bochs.exe 실행 파일과 bochsrc-sample.txt 설정파일 그리고 각종 BIOS파일들이 있습니다.
bochsrc-sample.txt 파일을 bochsrc.txt로 복사 합니다. 그리고 파일을 열어 수정을 합니다.

바이오스를 설정합니다. file=bios/BIOS-bochs-latest 부분을 아래와 같이 file=BIOS-bochs-latest로 고칩니다.

#romimage: bios/BIOS-bochs-970717a
romimage: file=BIOS-bochs-latest, address=0xf0000
#romimage: file=bios/BIOS-bochs-2-processors, address=0xf0000
#romimage: file=bios/BIOS-bochs-4-processors, address=0xf0000
#romimage: file=bios/rombios.bin, address=0xf0000

VGA 바이오스 설정 bios/VGABIOS-elpin-2.40를 아래와 같이 VGABIOS-elpin-2.40로 고칩니다.

#vgaromimage: bios/VGABIOS-lgpl-latest
vgaromimage: VGABIOS-elpin-2.40

가상 컴퓨터의 메모리를 설정합니다. #은 주석이므로 주석을 제거하면 됩니다.

#megs: 256
#megs: 128
#megs: 64
megs: 32
#megs: 16
#megs: 8

플로피 디스크 설정, 실제 플로피 디스크 드라이브 (A:)와 디스켓 이미지 파일을 동시에 사용 할 수 있습니다. 아래에는 실제 플로피 디스크 사용 설정 입니다. 실제 컴퓨터에 디스켓을 넣으면 가상 컴퓨터에서도 디스켓이 넣어진 것으로 인식 됩니다.

#floppya: 1_44=/dev/fd0, status=inserted
#floppya: file=../1.44, status=inserted
#floppya: 1_44=/dev/fd0H1440, status=inserted
#floppya: 1_2=../1_2, status=inserted
floppya: 1_44=a:, status=inserted
#floppya: 1_44=a.img, status=inserted

하드디스크 설정. 컴퓨터에는 하드디스크가 꼭 필요합니다. 하드디스크와, CDROM드라이브 설정입니다. 하드 디스크 이미지 파일을 만들어야 되는데 bochs를 압축 푼 곳에 보면 bximage.exe 라는 파일을 실행합니다. 이 파일은 하드 디스크 이미지와 디스켓 이미지를 만들 수 있습니다

위의 화면에서 엔터를 칩니다.

하드디스크의 용량 설정입니다. 메가 바이트 단위 이며 600을 입력했습니다. 하고자 하는 용량대로 만듭니다.

하드디스크 이미지 파일의 이름을 입력합니다. hdd0.img로 입력하였습니다.

실린더, 헤드, 섹터/트랙 등의 정보가 나옵니다 위의 정보는 꼭 필요 한 정보입니다. 설정 내용이 바로 출력됩니다.

아래는 bochsrc.txt 파일의 하드디스크 설정 내용입니다. 위에서 출력된 설정 내용을 복사해서 붙여 넣으면 됩니다. 이것이 틀리게 되면 하드디스크 파일을 인식하지 못합니다.

ata0-master: type=disk, path="hdd0.img", cylinders=1219, heads=16, spt=63
ata0-slave: type=cdrom, path=D:, status=inserted
#ata0-slave: type=cdrom, path=/dev/cdrom, status=inserted
#ata0-slave: type=cdrom, path="drive", status=inserted

CDROM드라이브도 실제 컴퓨터의 D:로 설정 했습니다. 실제 컴퓨터에 씨디를 넣으면 가상 컴퓨터에서도 넣은 씨디를 인식하게 됩니다.

cdromd: dev=D:, status=inserted
#cdromd: dev=/dev/cdrom, status=inserted
#cdromd: dev="drive", status=inserted

부팅하는 장치 설정입니다. 일반 PC에서는 BIOS에서 설정을 하지만 여기에서는 지정을 해주어야 합니다. 아래는 디스크로 부팅한다는 설정입니다.

#boot: floppy
boot: disk

리얼 타임 설정입니다. 이것이 주석 처리가 되어 있으면 실제 시간처럼 동작되지 않고 느리거나 빠르게 동작됩니다.

pit: realtime=1

NE2000 compatible ethernet adapter 네트워크 설정
Bochs에는 Novel NE2000 이더넷 카드가 에뮬레이트 되어 있습니다. 이것을 사용하려면 Winpcap 라이브러리가 필요합니다.

http://winpcap.polito.it에서 Windows 설치 파일을 다운로드 받아 설치 합니다. 설치하지 않으면 네트워크 기능을 사용할 수 없습니다.

Bochs의 폴더에서 niclist.exe 파일을 실행 합니다.

위에서 보이는 Example config for bochsrc: 부분을 복사하여 아래 부분에 붙입니다.
이것은 컴퓨터 마다 값이 다르므로 꼭 이 파일을 실행해서 확인 하여야 합니다.
한 줄로 붙여 넣어 줍니다.

# ne2k: ioaddr=0x280, irq=9, mac=b0:c4:20:00:00:00, ethmod=fbsd, ethdev=xl0
# ne2k: ioaddr=0x280, irq=9, mac=b0:c4:20:00:00:00, ethmod=linux, ethdev=eth0
# ne2k: ioaddr=0x280, irq=9, mac=b0:c4:20:00:00:01, ethmod=win32, ethdev=MYCARD
# ne2k: ioaddr=0x280, irq=9, mac=fe:fd:00:00:00:01, ethmod=tap, ethdev=tap0
ne2k: ioaddr=0x300, irq=3, mac=b0:c4:20:00:00:00, ethmod=win32,
ethdev=\Device\NPF_{71ADE251-81B6-47ED-8587-C454B6A414EE}

시작 파일 만들기
Bochs 폴더에서 bochs_start.bat 라는 파일을 만들어주고 아래와 같은 내용을 입력 후 저장 합니다.

bochs -qf bochsrc.txt

시작하기
bochs_start.bat를 실행하면 아래와 같이 나옵니다. 하드디스크는 인식이 되었지만 운영체제가 없어서 부팅이 되지 않은 화면입니다.

여기에 앞의 설정을 통하여 윈도우나 리눅스 등의 x86에서 동작되는 운영체제를 설치하여 사용할 수 있습니다.

Bochs에 Windows NT 4.0 Server를 설치한 화면 입니다.


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.

Published

16 October 2004