在qemu中,安装bios模式arch linux

发布时间:2026/7/27 8:39:43
在qemu中,安装bios模式arch linux 第一阶段宿主机准备在 QEMU 所在的系统执行1. 创建虚拟硬盘首先我们需要为虚拟机创建一个虚拟磁盘文件这里以 20G 为例格式为 qcow2qemu-img create-fqcow2 archlinux.img 20G# ~/code/os/os1/archlinux.qcow22. 启动 QEMU 虚拟机关键使用传统 BIOS下载 Arch Linux 官方 ISO 镜像后使用以下命令启动虚拟机。注意千万不要加-bios OVMF.fd这种参数不加就会默认使用 SeaBIOS传统 BIOS 模式qemu-system-x86_64\-m2G\-smp2\-cdromarchlinux-x86_64.iso\-drivefilearchlinux.qcow2,formatqcow2,ifvirtio\-netdevuser,idnet0,hostfwdtcp::10022-:22\-devicevirtio-net-pci,netdevnet0\-bootd\-enable-kvm# 如果你的宿主机是 Linux 且支持 KVM强烈建议加上这一行速度会快几十倍(注如果是 Windows 宿主机去掉-enable-kvm可以加上-accel whpx或-accel tcg)第二阶段虚拟机内系统安装在 Arch ISO 环境中执行启动后你会进入 Arch Linux Live ISO 环境提示符为rootarchiso ~ #。1. 彻底清空磁盘并创建 MBR 分区 避坑核心运行分区工具cfdisk/dev/vda# 注意QEMU 默认硬盘通常是 /dev/vda请根据实际 lsblk 确认如果弹出提示让你选择分区表类型务必选择dos这就是 MBR 模式。如果里面有残留分区全部选中并Delete直到只剩Free space。选中Free space选择New大小直接回车默认使用全部空间。最关键的一步选中底部的Write按回车必须输入yes确认写入。选择Quit退出。2. 验证分区表防呆检查fdisk-l/dev/vda仔细查看输出必须看到这一行Disklabel type: dos。如果是gpt请返回第一步重来。3. 格式化并挂载# 格式化为 ext4 文件系统mkfs.ext4 /dev/vda1# 挂载到安装目录mount/dev/vda1 /mnt4. 初始化密钥环并安装基础系统(pgp-key报错需要用pacman-key导入 Arch Linux 官方的默认签名密钥)timedatectl set-ntptrue# 编辑镜像列表把清华源放到最前面vim/etc/pacman.d/mirrorlist Serverhttps://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$archpacman-key--initpacman-key--populatearchlinux pacstrap-K/mnt base linux linux-firmwarevimnetworkmanagersudo5. 生成 fstab 文件genfstab-U/mnt/mnt/etc/fstab# 建议看一眼有没有正确生成cat/mnt/etc/fstab6. 进入新系统环境 (chroot)arch-chroot /mnt7. 基础系统配置# 1. 设置时区ln-sf/usr/share/zoneinfo/Asia/Shanghai /etc/localtime hwclock--systohc# 2. 设置语言sed-is/#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8//etc/locale.gen locale-genechoLANGen_US.UTF-8/etc/locale.conf# 3. 设置主机名echoarchvm/etc/hostname# 4. 设置 Root 密码passwd# 5. 创建普通用户并赋予 sudo 权限useradd-m-Gwheel-s/bin/bash myuserpasswdmyuserEDITORvim visudo# 找到 %wheel ALL(ALL:ALL) ALL去掉前面的 # 号并保存8. 安装 GRUB 引导程序 避坑核心# 1. 安装 GRUB 和 os-proberpacman-Sgrub os-prober# 2. 将 GRUB 安装到整个磁盘注意是 /dev/sda不是 /dev/sda1grub-install--targeti386-pc--recheck/dev/vda# 3. 生成 GRUB 配置文件grub-mkconfig-o/boot/grub/grub.cfg(如果这一步提示Installation finished. No error reported.恭喜你最难的引导部分已经完美解决)9. 启用网络并重启# 设置开机自启网络否则重启后没网systemctlenableNetworkManager# 退出 chroot 环境exit# 卸载所有挂载点umount-R/mnt# 重启虚拟机reboot重启后关掉虚拟机用以下命令不带 ISO 启动qemu-system-x86_64\-enable-kvm\-m2G\-smp2\-drivefilearchlinux.qcow2,formatqcow2,ifvirtio\-netdevuser,idnet0,hostfwdtcp::10022-:22\-devicevirtio-net-pci,netdevnet0使用你刚才创建的普通用户myuser登录然后配置一下网络sudonmcli device wifi connect你的WiFi名称password你的WiFi密码如果想 SSH 进去利用之前的端口转发# 在宿主机上执行ssh-p10022myuserlocalhost#在archlinux中执行curlhttp://10.0.2.2:5000curl-k--proxyhttps://it.zzz.com.cn/its/login/ssoLogin.action?rand1785044527675soc_localezh_CNcurl-k--proxyhttp://user:passwdproxy.zzz.com.cn:80https://www.baidu.com