Qemu 安装 LoongArch架构 Fedora Remix F42 Linux系统

文章目录

环境准备

  • Windows 系统
  • QEMU Binaries for Windows (64 bit)
  • Fedora Remix F42 LoongArch架构 MINI系统 (LiveCD for Minimal)

Fedora Remix F42 LoongArch架构下载地址

markdown 复制代码
* 这里使用的是 MINI系统 (LiveCD for Minimal)
* iso 下载地址:
 https://mirrors.wsyu.edu.cn/fedora/linux/F42/rawhide/Everything/loongarch64/iso/livecd-fedora-minimal-202512051945.iso

在 Windows 上运行 qemu 模拟器

qemu 安装后把安装目录加到 PATH 环境变量。这里的安装目录在 D:\Program Files\qemu

创建虚拟机

创建一个 60G 虚拟磁盘用于系统盘

bat 复制代码
qemu-img create -f qcow2 fedora-loongarch64_rootfs.qcow2 60G

编写一个 bat 批处理脚本,方便后续启动

start_qeum_fedora-loongarch64.bat:

bat 复制代码
@echo off
title=Fedora-loongarch64

:: chcp 65001

set QEMU_HOME=D:\Program Files\qemu

"%QEMU_HOME%\qemu-system-loongarch64.exe" ^
 -name guest=Fedora-loongarch64 ^
 -m 4G -smp 4 ^
 --cpu la464 --machine virt ^
 -bios "%QEMU_HOME%\share\edk2-loongarch64-code.fd" ^
 -serial stdio ^
 -device virtio-gpu-pci ^
 -device nec-usb-xhci,id=xhci,addr=0x1b ^
 -device usb-tablet,id=tablet,bus=xhci.0,port=1 ^
 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 ^
 -device virtio-blk-pci,drive=rootfs-storage ^
 -object rng-builtin,id=rng0 ^
 -device virtio-rng-pci,rng=rng0 ^
 -drive id=rootfs-storage,file=fedora-loongarch64_rootfs.qcow2,if=none ^
 -cdrom D:\Linux\loongarch64\livecd-fedora-minimal-202512051945.iso ^
 -device virtio-net-pci,netdev=unet ^
 -netdev user,id=unet,hostfwd=tcp::3022-:22 ^
 -accel tcg,thread=multi

pause

注意修改上面的位置 QEMU_HOME 是 qemu 的安装目录,cdrom 是下载的 iso 镜像,fedora-loongarch64_rootfs.qcow2 是刚才创建的虚拟磁盘。

bios 文件用的是 qemu 安装目录下自带的 share\edk2-loongarch64-code.fd

通过 hostfwd 将虚拟机的 22 端口转发到 3022,用于方便后续通过 ssh 远程连接。

启动虚拟器

双击上面编写 start_qeum_fedora-loongarch64.bat 脚本,启动虚拟机。

虚拟机里启动项选择 Start Livecd Fedora

登录系统

登录用户和密码都是 root

复制代码
root
root

修改ssh服务配置

登录后先将 ssh 服务配置为允许root用户密码登录,方便通过 ssh工具操作。

bash 复制代码
vi /etc/ssh/sshd_config

将下面的 PermitRootLogin 的值改为 yes

bash 复制代码
#LoginGraceTime 2m
#PermitRootLogin prohibit-password
PermitRootLogin yes

重启 ssh 服务

bash 复制代码
systemctl restart sshd

ssh远程连接

使用 Xshell 或者 Putty 等 ssh连接工具进行连接

bash 复制代码
ssh root@127.0.0.1:3022

磁盘分区

bash 复制代码
# lsblk -p
可以看到刚创建的 60G 磁盘在 /dev/vda

# 运行 cfdisk 进行分区
cfdisk /dev/vda
  • 使用方向键选择 New 创建分区
  • 分区方案(UEFI/GPT):
markdown 复制代码
1. /dev/vda1 EFI 分区: 512M,Type: EFI System
2. /dev/vda2  根分区:剩余空间,Type: Linux filesystem
  • 完成后选择 Write 写入分区表
bash 复制代码
# lsblk -p
查看磁盘分区情况

格式化分区

bash 复制代码
# 假设分区如下:
# /dev/vda1 = EFI
# /dev/vda2 = 根分区

# 格式化 EFI 分区
mkfs.fat -F16 /dev/vda1

# 格式化根分区
mkfs.ext4 /dev/vda2

# 查看分区情况
lsblk -f -p

安装系统

挂载分区

bash 复制代码
# 1. 挂载根分区
mount /dev/vda2 /mnt

# 2. 创建必要的挂载点
mkdir -p /mnt/boot/efi
mkdir -p /mnt/home

# 3. 挂载其他分区
mount /dev/vda1 /mnt/boot/efi

安装系统和基础软件

bash 复制代码
dnf --installroot=/mnt --use-host-config install fedora-release kernel dnf systemd NetworkManager bash sudo passwd iproute iputils bash-completion glibc-langpack-zh glibc-langpack-en

生成 fstab

bash 复制代码
dnf install genfstab

genfstab -U /mnt >> /mnt/etc/fstab

# 检查生成的 fstab
cat /mnt/etc/fstab
bash 复制代码
# 挂载必要的系统目录
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
mount --bind /run /mnt/run
mount -t tmpfs tmpfs /mnt/tmp
mount -t efivarfs efivarfs /mnt/sys/firmware/efi/efivars 2>/dev/null || true

下面的命令都在 chroot 环境下执行

bash 复制代码
# 进入 chroot 环境
chroot /mnt /bin/bash

# 安装 efi引导程序
dnf install efibootmgr grub2-efi grub2-efi-loongarch64 grub2-efi-loongarch64-modules

# 重新生成启动内核文件
dnf reinstall kernel-core

# 复制启动项到 /EFI/BOOT/ 避免 UEFI 不能自动识别
cp /boot/efi/EFI/fedora/grub.cfg /boot/efi/EFI/BOOT/grub.cfg
cp /boot/efi/EFI/fedora/grubloongarch64.efi /boot/efi/EFI/BOOT/BOOTLOONGARCH64.EFI

其他必要步骤

bash 复制代码
# 设置用户密码,我这里将密码设置成 root 要输入两次密码
passwd

# 安装必要服务和程序
dnf install chronyd openssh-server vim

# 系统服务设置成开机自启
systemctl enable NetworkManager
systemctl enable systemd-networkd
systemctl enable systemd-resolved
systemctl enable chronyd
systemctl enable sshd

# 设置默认目标(运行级别)
systemctl set-default multi-user.target

# ssh 服务配置为允许root用户密码登录
# 将 PermitRootLogin 的值改为 yes
vim /etc/ssh/sshd_config

以上所有步骤完成后,关闭Qemu虚拟机电源,再次重新双击上面的bat脚本即可启动安装好的系统。

其他设置

bash 复制代码
# 设置本地化
localectl set-locale LANG=zh_CN.UTF-8

# 设置时区
timedatectl set-timezone Asia/Shanghai

# 设置主机名
hostnamectl set-hostname fedora42
相关推荐
莫白媛2 小时前
Linux创作笔记综合汇总篇
linux·运维·笔记
studytosky2 小时前
Linux系统编程:深度解析 Linux 进程,从底层架构到内存模型
linux·运维·服务器·开发语言·架构·vim
wdfk_prog3 小时前
[Linux]学习笔记系列 -- [fs]buffer
linux·笔记·学习
Stella25213 小时前
实习日志|知识总结
linux·服务器·软件测试·数据库
weixin_462446233 小时前
【原创实践】使用 shell 脚本批量创建 Linux 用户并生成随机密码
linux·服务器·前端
可爱又迷人的反派角色“yang”3 小时前
redis知识点总集
linux·运维·数据库·redis·缓存
海奥华23 小时前
进程调度算法 笔记总结
linux·运维·服务器·笔记·学习
梦幻精灵_cq3 小时前
Linux.date格式化标识“制作”极简台历 vs Python.datetime.strftime格式化“精美”日历牌(时间工具依情境选择也是一种“智慧)
linux·python
864记忆3 小时前
Linux操作系统自带的测试内存泄漏的命令
java·linux·运维