斐讯 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 盘是刚插入的,通常是最后一个设备。如下图所示:

fdisk -l 命令执行结果截图

如果 U 盘正常工作且得到了设备路径,那么就可以进行分区和格式化了。执行下列命令时务必将 ${devPath} 替换为 U 盘的设备路径。示例:sudo dd if=/dev/zero of=/dev/sdd bs=1M count=8 && sudo sync

  1. 清空分区表:sudo dd if=/dev/zero of=${devPath} bs=1M count=8 && sudo sync

  2. 进入 fdisk 交互界面:sudo LANG=C fdisk ${devPath}

  3. 输入 o 创建 DOS 分区表

  4. 输入 n 创建新分区,显示 Partition type 时按回车,显示 Partition number 时按回车,显示 First sector 时按回车,显示 Last sector 时输入 +256M 并按回车。

  5. 输入 t 修改第一个分区类型,显示 Hex code 时输入 c 并按回车。

  6. 输入 n 创建新分区,显示 Partition type 时按回车,显示 Partition number 时按回车,显示 First sector 时按回车,显示 Last sector 时按回车。

  7. 输入 p 查看分区表,如果和下图的输出差不多,输入 w 保存分区表并退出。

fdisk 分区表输出信息截图

  1. 执行 sudo mkfs.fat -F 32 ${part1Path} 格式化第一个分区为 FAT32,务必替换 ${part1Path} 为第一个分区路径。示例:sudo mkfs.fat -F 32 /dev/sdd1

  2. 执行 sudo mkfs.ext4 ${part2Path} 格式化第二个分区为 ext4,替换 ${part2Path} 为第二个分区路径。示例:sudo mkfs.ext4 /dev/sdd2

写入系统文件🔗

  1. 下载 ArchLinuxARM 系统文件:curl -L -o "$HOME/ArchLinuxARM-aarch64-latest.tar.gz" https://mirrors.bfsu.edu.cn/archlinuxarm/os/ArchLinuxARM-aarch64-latest.tar.gz

  2. 下载 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"

  3. 创建根分区挂载点:sudo mkdir /tmp/archlinux-arm

  4. 挂载根分区:sudo mount ${part2Path} /tmp/archlinux-arm

  5. 创建启动分区挂载点:sudo mkdir /tmp/archlinux-arm/boot

  6. 挂载第一个分区:sudo mount -o umask=0077 ${part1Path} /tmp/archlinux-arm/boot

  7. 解压系统文件到根分区:sudo bsdtar -xpf "$HOME/ArchLinuxARM-aarch64-latest.tar.gz" -C /tmp/archlinux-arm

  8. 解压引导文件到启动分区:sudo bsdtar -xf "$HOME/n1-boot.tar.gz" -C /tmp/archlinux-arm/boot

  9. 使用文本编辑器打开文件 /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
  1. 执行 sudo sed -i 's/@{UUID}/${part2UUID}/' /tmp/archlinux-arm/boot/extlinux/extlinux.conf 指定内核引导参数的根分区,将 ${part2UUID} 替换为第二个分区的 UUID。

评论由 giscus 驱动,基于 GitHub Discussions。