참고 : http://wiki.alpinelinux.org/wiki/Qemu
1. HDD 생성
qemu-img create alpine.qcow 8G
2. iso 이미지 다운로드
http://alpinelinux.org/downloads
3. CDROM 부팅
qemu-system-i386 -cdrom [iso파일] -hda alpine.qcow -boot d -net nic -net user -m 256 -localtime
4. VNC 뷰어 설치(QEMU 는 SDL 또는 Cocoa 라이브러리의 VNC 를 통해 화면을 지원한다고함)
apt-get install libsdl-dev
apt-get install vncviewer
5. QEMU 화면에 VNC 로 접속
vncviewer 127.0.0.1:5900
6. root 로그인(비번없음)
7. setup-alpine 명령으로 HDD 에 리눅스 설치
(Disk 고르는 단계에서 sda 로 해주면됨)
8. 이제부터 HDD 로 부팅.(-boot c)
qemu-system-i386 alpine.qcow -boot c -net nic -net user -m 256 -localtime
VNC 뷰어가 좀 이상해서 화면이 짤리고 스크롤 잘 안되고 함 -_-;; VNC 를 껏다키면됨.
이제 네트워크 세팅을 해야하는데, 기본적으로 NAT 가 안됨...
아래 글을 참고해서 따라하니 성공.
As root in the host, create and setup your tap0 device (192.168.100.0 will be our NAT network, and felipec our user):
tunctl -u felipec -t tap0
ifconfig tap0 192.168.100.1 up
Update: You need to run your guest like this:
qemu-kvm -hda winxp.cow -m 512 -net nic -net tap,ifname=tap0,script=no
In your guest:
ip addr: 192.168.100.2
gateway: 192.168.100.1
dns: 8.8.8.8
note: I found some problems on my Windows XP guest; I had to disable the firewall
note: I’m using Google’s DNS, if you want to use the one in your host check /etc/resolv.conf
NAT
As root in the host:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -I FORWARD 1 -i tap0 -j ACCEPT
iptables -I FORWARD 1 -o tap0 -m state --state RELATED,ESTABLISHED -j ACCEPT
That’s it. Now you should be able to use ping back-and-forth between the guest and the host, and both should be able to access the Internet
내가 한것은
1. tunctl 설치
apt-get install uml-utilities
2. tap0 인터페이스 생성(tap 은 시뮬레이션된 네트워크 인터페이스를 의미)
tunctl -u root -t tap0
3. 서브넷, IP 지정
ifconfig tap0 10.0.2.1 up
4. QEMU 파라미터 전달
qemu-system-i386 alpine.qcow -boot c -m 256 -net nic -net tap,ifname=tap0,script=no
5. FORWARD 설정
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -I FORWARD 1 -i tap0 -j ACCEPT
iptables -I FORWARD 1 -o tap0 -m state --state RELATED,ESTABLISHED -j ACCEPT
6. guest 네트워크 설정
ifconfig eth0 10.0.2.5 netmask 255.255.255.0
route add default gw 10.0.2.1
echo "nameserver 8.8.8.8" > /etc/resolv.conf
이제 인터넷은 됨.
이제 호스트에서 컴파일하고 wget 으로 다운받아 실행해보면됨...
참고로 alpine 은 uClibc 를 쓰기때문에 호스트에서 static 컴파일 해야함.
'Programming' 카테고리의 다른 글
FreeBSD pkg_add package install (0) | 2013.07.01 |
---|---|
python malware scanner (0) | 2013.06.29 |
QEMU compile on Ubuntu12.04 (0) | 2013.06.27 |
IDA remote debugging (0) | 2013.06.24 |
x64 parameter passing (0) | 2013.06.24 |