Requirement:
x86 架構(gòu)的Ubuntu系統(tǒng)
本次安裝選用Debian ARM
需要的文件:
kernel
initrd
Debian-ARM iso
0x0000
安裝 QEMU 虛擬機(jī)
sudo apt-get install qemu-system-arm
1. 創(chuàng)建一個directory來存放相關(guān)文件
mkdir qemu_debian && cd qemu_debian
2. 獲取kernel 和 initrd (7.9 Wheezy 版本)
wget http://ftp.debian.org/debian/dists/Debian7.9/main/installer-armel/20130430/images/versatile/netboot/initrd.gz
wget http://ftp.debian.org/debian/dists/Debian7.9/main/installer-armel/20130430/images/versatile/netboot/vmlinuz-3.2.0-4-versatile
3. 獲取iso文件
wget http://get.debian.org/cdimage/archive/7.9.0/armel/iso-cd/debian-7.9.0-armel-netinst.iso
0x0001
1. 創(chuàng)建虛擬硬盤 (大小隨意)
qemu-img create debian.img 20G
2. 載入 ARM kernel, initrd 以及ISO
qemu-system-arm -M versatileab -kernel ./vmlinuz-3.2.0-4-versatile -initrd ./initrd.gz -cdrom ./debian-7.9.0-armel-netinst.iso -hda debian.img
這個時候, qemu已經(jīng)成功啟動, 可以按需安裝debian arm系統(tǒng)
0x0002
系統(tǒng)安裝完成后, 需要抽出kernel和initrd并復(fù)制到我們的虛擬硬盤里, 這個有一個地方要稍微注意一下. 因?yàn)?root 的分區(qū)有偏移量, 所以直接掛載是掛載不上的.
sudo fdisk -l -u debian.img
運(yùn)行上面的命令可以看到有2048個unit的偏移量, 一個unit是512個bytes
所以正確的掛載應(yīng)該加上這2048的偏移量.
sudo mount -o loop,offset=$((2048 * 512)) debian.img /mnt
抽出的步驟就簡單多了
mkdir boot
cp /mnt/boot/* boot/ -rv
至此, 基于QEMU搭建ARM架構(gòu)的虛擬機(jī)已經(jīng)完成
0x0003
啟動虛擬機(jī)并將端口轉(zhuǎn)發(fā)到2222以便ssh登陸
qemu-system-arm -M versatileab -kernel ./boot/vmlinuz-3.2.0-4-versatile -initrd ./boot/initrd.img-3.2.0-4-versatile -hda debian.img -m 1024 -append "root=/dev/sda1" -redir tcp:2222::22
這樣啟動虛擬機(jī)之后, 就可以ssh到localhost的2222端口登陸了.