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
相关推荐
wdfk_prog9 分钟前
[Linux]学习笔记系列 -- [drivers][input]input
linux·笔记·学习
盟接之桥38 分钟前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
忆~遂愿1 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
湘-枫叶情缘1 小时前
1990:种下那棵不落叶的树-第6集 圆明园的对话
linux·系统架构
Fcy6482 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满2 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠2 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Gary Studio2 小时前
rk芯片驱动编写
linux·学习
mango_mangojuice2 小时前
Linux学习笔记(make/Makefile)1.23
java·linux·前端·笔记·学习
Harvey9033 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s