在NanoPi R5S上使用Arch Linux

在NanoPi R5S上使用Arch LinuxArchLinux 官方提供了專為 ARMCPU 使用的 而 NanoPiR5S 的開發商亦提供了其 bootloader 與內核 因此 R5S 能夠運行 ArchLinux 下面將會先燒寫 R5S 官方提供的鏡像文件

大家好,欢迎来到IT知识分享网。

版权声明:本文为CSDN博主「@Diskenth」原创文章,转载请在显着位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

前言

Arch Linux官方提供了专为ARM CPU使用的Arch Linux ARM根文件系统 [1],而NanoPi R5S的开发商亦提供了其bootloader与内核[2],因此R5S能够运行Arch Linux

下面将会先烧写R5S官方提供的镜像文件(.img文件)至SD卡,接着清空SD卡上的rootfs分区, 最后再将Arch linux(.tar.gz文件)解压缩至已清空的rootfs分区

前置准备

  1. 一台windows主机
  2. 一台Linux主机(本例中使用虚拟机)
  3. 16GB以上SD卡(本例中使用128GB的SD卡)
  4. SD卡转USB转接器(若主机无SD卡插槽)

下载文件

首先需要下列文件:

  1. NanoPi官方映像文件
  2. Arch Linux根文件系统
  3. 映像文件烧写工具Win32DiskImager

官方映像文件可以从R5S的wiki上取得,点击这里[2]

  • 本例使用rk3568-sd-debian-bullseye-minimal-6.1-arm64-.img.gz作为系统包烧写至R5S(※由于使用SD卡开机,因此请下载sd卡版本)nanopi(1).PNG

Arch Linux根文件系统可在其官方网站下载。请至这里[1]点击下图链接, 下载适用于ARMv8架构CPU的版本包ArchLinuxARM-aarch64-latest.tar.gz
nanopi(2).PNG

烧写工具win32diskimager需自行上网下载, 也可使用其他软件烧写

烧写官方系统至SD卡

  1. 解压rk3568-sd-debian-bullseye-minimal-6.1-arm64-.img.gz后得到.img文件
    nanopi(3).PNG
  2. 将SD卡插入windows主机(或通过USB转接器连接), 并使用烧写工具将.img文件烧写至SD卡
  • 以Win32DiskImager为例
    (1)点击蓝色文件夹选中已解压好的.img文件
    (2)点击Device下方的倒三角形, 选中SD卡(示例中SD卡被挂载为D盘)
    (3)点击Write开始烧写(注意此步骤会抹除SD卡上的所有数据)
    (4)烧写完毕会弹出Write Successful!
    nanopi(4).PNG

此时R5S已可使用此SD卡进行开机,但开机后运行的系统是官方提供的debian11,而非Arch Linux, 因此需要替换掉SD卡中的根文件系统

替换SD卡中的根文件系统

  1. 将烧写好官方系统的SD卡插入Linux主机, 用parted观察分区状况
user@user-virtual-machine:~$ sudo parted /dev/sdb print Model: SD Card Reader (scsi) Disk /dev/sdb: 128GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 8389kB 12.6MB 4194kB uboot # bootloader 2 12.6MB 16.8MB 4194kB misc 3 16.8MB 21.0MB 4194kB dtbo # device tree 4 21.0MB 37.7MB 16.8MB resource 5 37.7MB 79.7MB 41.9MB kernel # kernal 6 79.7MB 113MB 33.6MB boot 7 113MB 147MB 33.6MB recovery 8 147MB 3569MB 3423MB ext4 rootfs # root file system 9 3569MB 7800MB 4231MB ext4 userdata 

重点关注第1、3、5、8这4个分区,分别为bootloader、设备树、Linux内核、根文件系统。这里第1、3、5分区不可更动,我们仅将Arch Linux根文件系统写入分区8。

  1. ArchLinuxARM-aarch64-latest.tar.gz放至Linux主机或在Linux主机中执行以下命令直接将其下载到硬盘

wget http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz

下载完成后如下

user@user-virtual-machine:~$ ls -l total  -rw-rw-r-- 1 user user 1 2023 ArchLinuxARM-aarch64-latest.tar.gz # downloaded Arch linux drwxr-xr-x 2 user user 409614 05:09 Desktop drwxr-xr-x 2 user user 409614 05:09 Documents . . . 
  1. 挂载SD卡并且清空rootfs分区(即上述分区8)
user@user-virtual-machine:~$ lsblk # 列出分区 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT . . └─sda5 8:5 0 19.5G 0 part / sdb 8:16 1 119.1G 0 disk . . . ├─sdb6 8:22 1 32M 0 part ├─sdb7 8:23 1 32M 0 part ├─sdb8 8:24 1 3.2G 0 part # (此sdb8为rootfs分区) └─sdb9 8:25 1 4G 0 part . . 

接着挂载SD卡的rootfs分区,并将分区内的数据移除

user@user-virtual-machine:~$ sudo mount /dev/sdb8 /mnt # 挂载rootfs分区至/mnt目录 user@user-virtual-machine:~$ sudo rm -rf /mnt/* # 清空rootfs分区 
  1. 切换至root, 将Arch Linux根文件系统安装到rootfs分区(必须使用root身分执行, 不可在其他用户身分下通过sudo执行)
user@user-virtual-machine:/home$ su - root@user-virtual-machine:~$ cd ~user root@user-virtual-machine:/home/user$ bsdtar -xpf ArchLinuxARM-aarch64-latest.tar.gz -C /mnt #提取arch linux至rootfs分区 

※注意bsdtar命令中的-p选项,它让被我们提取出来的文件能够保留原来的权限与属性(permission, extended attributes and ACLs)

完成后卸载并退出SD卡

root@user-virtual-machine:/home/user$ umount /dev/sdb8 # 卸载SD卡 
  1. 将SD卡插入R5S并上电,输入帐号密码进入系统
    nanopi(5).PNG
    (根据官方提供的信息[1], 一般账户的账号密码皆为alarm, root账户密码为root)

总结

至此,我们成功在NanoPi R5S上运行了Arch Linux, 过程中仅仅对已烧写好官方系统的SD卡进行修改,将其中rootfs分区的数据清空并替换成Arch Linux根文件系统

参考

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/150105.html

(0)
上一篇 2025-03-20 18:15
下一篇 2025-03-20 18:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信