Qemu仿真----(13)运行Alpine Linux Rootfs
平台: ubuntu-22.04-desktop-amd64.
对象: alpine linux rootfs、qemu.
文件: linux-6.1.26.tar.xz、alpine-minirootfs-3.18.0-aarch64.tar.gz.
本例通过qemu运行alpine rootfs for arm64。
1.安装依赖
$ sudo apt install qemu-user-static qemu-system-aarch64 gcc-aarch64-linux-gnu systemd-container
2.下载文件
linux-6.1.26.tar.xz
[https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/linux-6.1.26.tar.xz]
alpine-minirootfs-3.18.0-aarch64.tar.gz
[https://dl-cdn.alpinelinux.org/alpine/v3.18/releases/aarch64/alpine-minirootfs-3.18.0-aarch64.tar.gz]
3.编译内核
$ make defconfig ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- $ make -j8 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
4.创建文件系统
$ dd if=/dev/zero of=alpine-base.ext4 bs=4096 count=128K $ mkfs.ext4 alpine-base.ext4 $ sudo mount -t ext4 alpine-base.ext4 /mnt $ sudo tar -xf alpine-minirootfs-3.18.0-aarch64.tar.gz -C /mnt $ sudo cp /usr/bin/qemu-aarch64-static /mnt/usr/bin/ $ sudo cp /etc/resolv.conf /mnt/etc/ $ sudo systemd-nspawn -D /mnt
进入chroot环境,执行:
>$ passwd >$ apk add alpine-base >$ exit
做如下修改:
$ sudo vim /mnt/etc/inittab
在其中添加如下内容:
ttyAMA0::respawn:/sbin/getty -L ttyAMA0 115200 vt100
安装内核模块:
$ cd linux-6.1.26/ $ sudo make modules_install INSTALL_MOD_PATH=/mnt ARCH=arm64 $ cd ..
卸载文件系统:
$ sudo umount /mnt
5.运行
$ touch start-qemu.sh $ chmod +x start-qemu.sh $ vim start-qemu.sh
填入以下内容:
#!/bin/sh qemu-system-aarch64 \ -M virt \ -cpu cortex-a53 \ -smp 1 \ -m 512M \ -nographic \ -kernel linux-6.1.26/arch/arm64/boot/Image \ -append "rootwait root=/dev/vda rw console=ttyAMA0" \ -netdev user,id=eth0 \ -device virtio-net-device,netdev=eth0 \ -drive file=alpine-base.ext4,if=none,format=raw,id=hd0 \ -device virtio-blk-device,drive=hd0
账号:root,密码:执行passwd时自己设置的。顺利的话,通过账密登录就可以使用了。