본문 바로가기

Programming

Alpine Linux on QEMU

참고 : 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