大家好,欢迎来到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分区
前置准备
- 一台windows主机
- 一台Linux主机(本例中使用虚拟机)
- 16GB以上SD卡(本例中使用128GB的SD卡)
- SD卡转USB转接器(若主机无SD卡插槽)
下载文件
首先需要下列文件:
- NanoPi官方映像文件
- Arch Linux根文件系统
- 映像文件烧写工具Win32DiskImager
官方映像文件可以从R5S的wiki上取得,点击这里[2]
- 本例使用
rk3568-sd-debian-bullseye-minimal-6.1-arm64-.img.gz
作为系统包烧写至R5S(※由于使用SD卡开机,因此请下载sd卡版本)
Arch Linux根文件系统可在其官方网站下载。请至这里[1]点击下图链接, 下载适用于ARMv8架构CPU的版本包ArchLinuxARM-aarch64-latest.tar.gz
烧写工具win32diskimager需自行上网下载, 也可使用其他软件烧写
烧写官方系统至SD卡
- 解压
rk3568-sd-debian-bullseye-minimal-6.1-arm64-.img.gz
后得到.img
文件
- 将SD卡插入windows主机(或通过USB转接器连接), 并使用烧写工具将
.img
文件烧写至SD卡
- 以Win32DiskImager为例
(1)点击蓝色文件夹选中已解压好的.img
文件
(2)点击Device下方的倒三角形, 选中SD卡(示例中SD卡被挂载为D盘)
(3)点击Write开始烧写(注意此步骤会抹除SD卡上的所有数据)
(4)烧写完毕会弹出Write Successful!
此时R5S已可使用此SD卡进行开机,但开机后运行的系统是官方提供的debian11,而非Arch Linux, 因此需要替换掉SD卡中的根文件系统
替换SD卡中的根文件系统
- 将烧写好官方系统的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。
- 将
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 4096 三 14 05:09 Desktop drwxr-xr-x 2 user user 4096 三 14 05:09 Documents . . .
- 挂载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分区
- 切换至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卡
- 将SD卡插入R5S并上电,输入帐号密码进入系统
(根据官方提供的信息[1], 一般账户的账号密码皆为alarm, root账户密码为root)
总结
至此,我们成功在NanoPi R5S上运行了Arch Linux, 过程中仅仅对已烧写好官方系统的SD卡进行修改,将其中rootfs分区的数据清空并替换成Arch Linux根文件系统
参考
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/150105.html