文章目录
环境准备
- Windows 系统
- QEMU Binaries for Windows (64 bit)
- Fedora Remix F42 LoongArch架构 MINI系统 (LiveCD for Minimal)
Fedora Remix F42 LoongArch架构下载地址
-
页面发布地址:https://github.com/fedora-remix-loongarch/releases-info
-
https://mirrors.wsyu.edu.cn/fedora/linux/F42/rawhide/Everything/loongarch64/iso/
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