斐讯 N1 运行 ArchLinuxARM
前言🔗
网上有很多使用 N1 运行 Armbian 的教程,这是一个专门为 ARM 设备适配的 Debian 发行版,并且一般提供现成的镜像,刷起来很方便。
虽然 Debian 是一个很棒的 Linux 发行版,但如果你想真正的掌握系统,那还是得用 ArchLinux。
众所周知,小山是一个 ArchLinux 死忠党,之前就已经给自己的电脑装上了 ArchLinux,即使是 N1,我也肯定不会放过让它运行 ArchLinux 的机会,由于 ArchLinux 本身只支持 x86_64 架构,所以要想给 ARM 的机器安装就得使用一个社区分支:ArchLinuxARM,一个适配了 ARM 的 ArchLinux 衍生版本。
下面我会教大家如何在 N1 上运行 ArchLinuxARM,如果你学会运行了 ArchLinuARM,那么想运行其他的 Linux 发行版也并非什么难事。
准备工作🔗
你的 N1 需要具备可以从 U 盘启动 Linux 的条件,简单的说就是降级启动分区,具体操作可参考:《斐讯N1折腾记:降级及刷入官改》。
你需要在 Linux 系统完成以下操作,虚拟机或物理机都可以,虚拟机需要直接访问 U 盘,不是共享文件的那种。
用来操作的设备 CPU 架构需要是 x86_64 或 aarch64,可以使用 uname -m 命令查看系统 CPU 架构。如果设备的系统不是 ArchLinux 则需要安装 docker,因为要用到 ArchLinux(ARM) 辅助操作。
以及一些 Linux 和 ArchLinux(ARM) 的基础知识 。
U 盘分区和格式化🔗
将 U 盘插入设备,并确保系统可以正常访问 U 盘,然后执行 sudo fdisk -l 查看 U 盘的设备路径,如果 U 盘是刚插入的,通常是最后一个设备。如下图所示:

如果 U 盘正常工作且得到了设备路径,那么就可以进行分区和格式化了。执行下列命令时务必将 ${devPath} 替换为 U 盘的设备路径。示例:sudo dd if=/dev/zero of=/dev/sdd bs=1M count=8 && sudo sync
-
清空分区表:
sudo dd if=/dev/zero of=${devPath} bs=1M count=8 && sudo sync -
进入 fdisk 交互界面:
sudo LANG=C fdisk ${devPath} -
输入
o创建 DOS 分区表 -
输入
n创建新分区,显示Partition type时按回车,显示Partition number时按回车,显示First sector时按回车,显示Last sector时输入+256M并按回车。 -
输入
t修改第一个分区类型,显示Hex code时输入c并按回车。 -
输入
n创建新分区,显示Partition type时按回车,显示Partition number时按回车,显示First sector时按回车,显示Last sector时按回车。 -
输入
p查看分区表,如果和下图的输出差不多,输入w保存分区表并退出。

-
执行
sudo mkfs.fat -F 32 ${part1Path}格式化第一个分区为 FAT32,务必替换${part1Path}为第一个分区路径。示例:sudo mkfs.fat -F 32 /dev/sdd1 -
执行
sudo mkfs.ext4 ${part2Path}格式化第二个分区为 ext4,替换${part2Path}为第二个分区路径。示例:sudo mkfs.ext4 /dev/sdd2
写入系统文件🔗
-
下载 ArchLinuxARM 系统文件:
curl -L -o "$HOME/ArchLinuxARM-aarch64-latest.tar.gz" https://mirrors.bfsu.edu.cn/archlinuxarm/os/ArchLinuxARM-aarch64-latest.tar.gz -
下载 N1 引导文件:
curl -L -o "$HOME/n1-boot.tar.gz" "https://cdn.mivm.cn/www.mivm.cn/archives/phicomm-n1-archlinuxarm/boot.tar.gz?ver=4" -
创建根分区挂载点:
sudo mkdir /tmp/archlinux-arm -
挂载根分区:
sudo mount ${part2Path} /tmp/archlinux-arm -
创建启动分区挂载点:
sudo mkdir /tmp/archlinux-arm/boot -
挂载第一个分区:
sudo mount -o umask=0077 ${part1Path} /tmp/archlinux-arm/boot -
解压系统文件到根分区:
sudo bsdtar -xpf "$HOME/ArchLinuxARM-aarch64-latest.tar.gz" -C /tmp/archlinux-arm -
解压引导文件到启动分区:
sudo bsdtar -xf "$HOME/n1-boot.tar.gz" -C /tmp/archlinux-arm/boot -
使用文本编辑器打开文件
/tmp/archlinux-arm/etc/fstab,添加以下内容,分别替换${part1UUID}和${part2UUID}为第一个分区和第二个分区的 UUID,可以使用sudo blkid查看所有分区的 UUID。
UUID=${part2UUID} / ext4 rw,relatime 0 1
UUID=${part1UUID} /boot vfat rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 2
- 执行
sudo sed -i 's/@{UUID}/${part2UUID}/' /tmp/archlinux-arm/boot/extlinux/extlinux.conf指定内核引导参数的根分区,将${part2UUID}替换为第二个分区的 UUID。
评论由 giscus 驱动,基于 GitHub Discussions。