Qemu仿真----(10)运行ArchLinux Rootfs
平台: ubuntu-22.04-desktop-amd64.
对象: archlinux rootfs、qemu.
文件: linux-6.1.26.tar.xz、ArchLinuxARM-2023.03-aarch64-rootfs.tar.gz.
本例通过qemu运行archlinux rootfs for arm64。
1.安装依赖
$ sudo apt install qemu-system-aarch64 gcc-aarch64-linux-gnu
2.下载文件
linux-6.1.26.tar.xz
[https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/linux-6.1.26.tar.xz]
ArchLinuxARM-2023.03-aarch64-rootfs.tar.gz
[http://mirrors.ustc.edu.cn/archlinuxarm/os/multi/ArchLinuxARM-2023.03-aarch64-rootfs.tar.gz]
或者从官方下载rootfs:
[http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-aarch64-latest.tar.gz]
Note: 如果下载rpi的版本,请去除其中的/etc/fstab里的默认内容。
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=archlinux-base.ext4 bs=4096 count=512K $ mkfs.ext4 archlinux-base.ext4 $ sudo mount -t ext4 archlinux-base.ext4 /mnt $ sudo tar -xf ArchLinuxARM-2023.03-aarch64-rootfs.tar.gz -C /mnt $ sync $ sudo rm -rf /mnt/boot/ $ sudo rm -rf /mnt/lib/modules/6.2.1-1-aarch64-ARCH/
安装内核模块:
$ cd linux-6.1.26/ $ sudo make modules_install INSTALL_MOD_PATH=/mnt ARCH=arm64 $ cd ..
使用默认的rootfs即可,不需要chroot修改和配置。
5.运行
$ touch start-qemu.sh $ chmod +x start-qemu.sh $ vim start-qemu.sh
填入如下内容:
#!/bin/sh qemu-system-aarch64 \ -M virt \ -cpu cortex-a53 \ -nographic \ -smp 1 \ -m 512M \ -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=archlinux-base.ext4,if=none,format=raw,id=hd0 \ -device virtio-blk-device,drive=hd0
运行start-qemu.sh,正常启动,登录界面默认有两个账号:
1).用户名:root,密码:root;
2).用户名:alarm,密码:alarm;
登录进入后,进行pacman-key的初始化:
$ pacman-key --init
$ pacman-key --populate archlinuxarm
之后,就可以使用了。