Ubuntu 14.04 下搭建ARM架构的QEMU虚拟机

Ubuntu 14.04 下搭建ARM架构的QEMU虚拟机,第1张

x86 架构的Ubuntu系统

本次安装选用Debian ARM

kernel

initrd

Debian-ARM iso

安装 QEMU 虚拟机

sudo apt-get install qemu-system-arm

1. 创建一个directory来存放相关文件

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

1. 创建虚拟硬盘 (大小随意)

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已经成功启动, 可以按需安装debian arm系统

系统安装完成后, 需要抽出kernel和initrd并复制到我们的虚拟硬盘里, 这个有一个地方要稍微注意一下. 因为/root 的分区有偏移量, 所以直接挂载是挂载不上的.

sudo fdisk -l -u debian.img

运行上面的命令可以看到有2048个unit的偏移量, 一个unit是512个bytes

所以正确的挂载应该加上这2048的偏移量.

sudo mount -o loop,offset=$((2048 * 512)) debian.img /mnt

抽出的步骤就简单多了

mkdir boot

cp /mnt/boot/* boot/ -rv

至此, 基于QEMU搭建ARM架构的虚拟机已经完成

启动虚拟机并将端口转发到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

这样启动虚拟机之后, 就可以ssh到localhost的2222端口登陆了.

1. 首先 kali 下安装qemu

    直接 apt install qemu

2. 安装完之后,终端输入qemu- 两下Tab键 可以看到你要模拟的cpu架构

在我电脑上的输出如下:

qemu-aarch64           qemu-mips                   qemu-s390x              qemu-system-microblazeqemu-system-sh4

qemu-alpha                qemu-mips64              qemu-sh4                  qemu-system-microblazeel  qemu-system-sh4eb

qemu-arm                  qemu-mips64el            qemu-sh4eb                qemu-system-mips          qemu-system-sparc

qemu-armeb                qemu-mipsel              qemu-sparc                qemu-system-mips64        qemu-system-sparc64

qemu-cris                qemu-mipsn32              qemu-sparc32plus          qemu-system-mips64el      qemu-system-tricore

qemu-hppa                qemu-mipsn32el            qemu-sparc64              qemu-system-mipsel        qemu-system-unicore32

qemu-i386                qemu-nbd                  qemu-system-aarch64      qemu-system-moxie        qemu-system-x86_64

qemu-img                  qemu-nios2                qemu-system-alpha        qemu-system-nios2        qemu-system-xtensa

qemu-io                  qemu-or1k                qemu-system-arm          qemu-system-or1k          qemu-system-xtensaeb

qemu-m68k                qemu-ppc                  qemu-system-cris          qemu-system-ppc          qemu-tilegx

qemu-make-debian-root    qemu-ppc64                qemu-system-i386          qemu-system-ppc64        qemu-x86_64

qemu-microblaze          qemu-ppc64abi32          qemu-system-lm32          qemu-system-ppcemb       

qemu-microblazeel        qemu-ppc64le              qemu-system-m68k          qemu-system-s390x 

/*由于我要创建一个虚拟x86的cpu 所以等下我要在终端输入的是qemu-x86_64*/

2.  然后准备一个iso(我用的是 )

3.  创建Windows虚拟硬盘

qemu-img create -f qcow2 guest.qcow2 2G

/**qcow2 镜像格式是 QEMU 模拟器支持的一种磁盘镜像。它也是可以用一个文件的形式来表示一块固定大小的块设备磁盘。与普通的 raw 格式的镜像相比,有以下特性:

更小的空间占用,即使文件系统不支持空洞(holes);

支持写时拷贝(COW, copy-on-write),镜像文件只反映底层磁盘的变化;

支持快照(snapshot),镜像文件能够包含多个快照的历史;

可选择基于 zlib 的压缩方式

可以选择 AES 加密  **/

2G: 这个参数可以任意选,就跟virtualbox下的虚拟硬盘大小是差不多的意思

4.   安装系统

1)  从光驱安装Windows:

qemu-system-x86_64 -localtime -cdrom /dev/cdrom -m 384 -boot d guest.qcow2

**.iso: 你所使用的iso文件

-m :memory 大小

-hda:

-d item1,...enable logging of specified items (use '-d help' for a list of log items)

2)  从硬盘镜像安装:

qemu-system-x86_64  -localtime -cdrom cdimagefile.iso -m 384 -boot d guest.qcow2


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11425867.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存