eweOS在QEMU中的安装

发布日期:2026-01-24

介绍

这是我在QEMU中安装eweOS的过程。

安装教程

创建一个 20GB 的虚拟磁盘(QEMU Copy-On-Write version 2,qcow2格式,支持快照和压缩):

qemu-img create -f qcow2 eweos-disk.qcow2 20G

按照eweOS官网命令运行eweOS的live iso:

VCPU=4
VRAM=8G
DISK=eweos-disk.qcow2
ISO=eweos-x86_64-liveimage-desktop-xfce.iso

sudo qemu-system-x86_64 \
    -smp $VCPU -m $VRAM -cpu host \
    -machine type=q35,accel=kvm \
    -drive file=$DISK,format=qcow2,if=virtio,id=disk0 \
    -cdrom $ISO \
    -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE.fd \
    -vga virtio -display gtk \
    -device virtio-net,netdev=ewe -netdev user,id=ewe,hostfwd=tcp:127.0.0.1:10022-:22 \
    -device ac97 \
    -device qemu-xhci,id=xhci \
    -device usb-tablet,bus=xhci.0 \
    -device usb-kbd,bus=xhci.0

启动后,打开终端,修改/etc/pacman.d/mirrorlist,修改镜像,我这里改成了nju的镜像,根据情况自己选择:

Server = https://mirrors.nju.edu.cn/eweos/$repo/os/$arch

更新pacman数据库:

sudo pacman -Syu

安装必要的软件包:

sudo pacman -S dosfstools e2fsprogs

使用 lsblk 查看磁盘分区情况,会看到/dev/vda即为虚拟磁盘:

/dev/vda 20G

然后运行sudo cfdisk /dev/vda来对虚拟磁盘进行分区,我这里分了两个分区:

格式化分区:

sudo mkfs.fat -F32 /dev/vda1
sudo mkfs.ext4 /dev/vda2

挂载分区:

sudo mount /dev/vda2 /mnt
sudo mkdir -p /mnt/boot
sudo mount /dev/vda1 /mnt/boot

使用 pacstrap 安装基本系统,Pacstrap 是用于在 Arch Linux 安装过程中引导系统安装的工具。它用于将基础系统软件包安装到指定的目录(通常是挂载的目标分区):

sudo pacstrap /mnt base-baremetal linux efibootmgr e2fsprogs

进入 chroot 环境配置系统

sudo arch-chroot /mnt

修复 tinyramfs 配置

/etc/tinyramfs/config
hooks="mdev"
rootfs_type="ext4"
root="UUID=根文件分区的UUID(blkid /dev/vda2)"
compress="zstd"

安装 limine 引导程序

limine-install /boot --removable
limine-mkconfig -o /boot/limine.conf

创建用户 ewe

adduser -D ewe
adduser ewe wheel
passwd ewe
passwd root

退出 chroot 环境

exit
sudo umount --recursive /mnt

启动eweOS

VCPU=4
VRAM=8G
DISK=eweos-disk.qcow2
sudo qemu-system-x86_64 \
    -smp $VCPU -m $VRAM -cpu host \
    -machine type=q35,accel=kvm \
    -drive file=$DISK,format=qcow2,if=virtio,id=disk0 \
    -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE.fd \
    -vga virtio -display gtk \
    -device virtio-net,netdev=ewe -netdev user,id=ewe,hostfwd=tcp:127.0.0.1:10022-:22 \
    -device ac97 \
    -device qemu-xhci,id=xhci \
    -device usb-tablet,bus=xhci.0 \
    -device usb-kbd,bus=xhci.0

使用scp将文件传到qemu中

scp -P 10022 /home/duge/eweOS/*.zip ewe@127.0.0.1:/home/ewe/