注意:为树莓派安装Arch需要一台装有Linux的物理机,我是在Arch Linux上进行相关操作的。

安装Arch ARM

参考Wiki:AArch64 Installation
下面只是将Wiki翻译成了中文
注意:请先在终端获取超级用户权限

下载镜像

下载ArchLinuxARM-rpi-3-latest.tar.gz,先做好准备。

进行分区

fdisk /dev/sdX

然后使用fdisk命令进行分区操作,步骤如下:

  1. 输入 o 并回车,这将会删除所有分区
  2. 输入 p 并回车,这将会列出所有分区,此时应该没有任何分区
  3. 输入 n 并回车,创建新分区,引导分区
  4. 输入 p 并回车,新分区为主分区
  5. 输入 1 并回车,分区序号是1,按回车,默认初始扇区
  6. 输入 +100M 并回车,设置终止扇区
  7. 输入 t 并回车,再输入 c 并回车,设置该分区文件系统格式为Fat32
  8. 输入 n 并回车,创建新分区,根分区
  9. 输入 p 并回车,新分区为主分区
  10. 输入 2 并回车,分区序号是2,按回车,默认初始扇区,按回车,默认终止扇区
  11. 输入 w 并回车,写入设置

创建并挂载FAT filesystem

mkfs.vfat /dev/sdX1
mkdir boot
mount /dev/sdX1 boot

创建并挂载ext4 filesystem

mkfs.ext4 /dev/sdX2
mkdir root
mount /dev/sdX2 root

开始写入

将刚刚下载的镜像移入目录,执行:

bsdtar -xpf ArchLinuxARM-rpi-3-latest.tar.gz -C root
sync

然后把boot中的文件复制到第一个分区

mv root/boot/* boot

顺便修改一下软件源

nano root/etc/pacman.d/mirrorlist

添加下面一行到第一行
Server = http://mirrors.ustc.edu.cn/archlinuxarm/$arch/$repo
保存后卸载两个分区

umount boot root

配置Arch

ssh上树莓派,注意用户名和密码均为alarm,root密码为root

初始化pacman密钥环并填充Arch Linux ARM 包签名密钥

pacman-key --init
pacman-key --populate archlinuxarm

先更新一波

pacman -Syyu

设置系统时间

timedatectl set-timezone Asia/Shanghai
timedatectl set-local-rtc false

配置sudo

####安装sudo
$ pacman -S sudo
####配置sudo
$ nano /etc/sudoers
####去除下列行的#号

%wheel ALL=(ALL) ALL
%wheel ALL=(ALL) NOPASSWD: ALL

安装中文字体

sudo pacman -S adobe-source-han-sans-cn-fonts

如果安装后bash仍然遇到显示乱码

$ sudo nano /etc/bash.bashrc
####添加:
export LANG=en_US.utf8
export LC_ALL=en_US.utf8
$ sudo nano /etc/locale.gen
####去掉下面几行前面的#号
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_TW.UTF-8 UTF-8
$ locale-gen
$ sudo nano /etc/profile
####末尾追加
export LANG='zh_CN.UTF-8'

Oh-My-ZSH!

https://spiritx.xyz/139.html#toc-head-30

配置wifi

先使用 wifi-menu 连接到wifi

$ ls -l /etc/netctl    ##查看是否有连接过的wifi的配置文件
drwxr-xr-x 2 root root 4096 Apr  6 12:24 examples
drwxr-xr-x 2 root root 4096 Feb 27 07:17 hooks
drwxr-xr-x 2 root root 4096 Feb 27 07:17 interfaces
-rw------- 1 root root  142 Apr 13 00:56 spirit   ##spirit是我的wifi信息
$ ifconfig    ##查看网卡名称
#找到是wlan0
$ systemctl enable netctl-auto@wlan0.service    ##开机自启动

crontab

安装cronie即可

pacman -S cronie
systemctl start cronie.service
systemctl enable cronie.service

yay

pacman -S base-devel
wget https://aur.archlinux.org/cgit/aur.git/snapshot/package-query.tar.gz
tar -xvzf package-query.tar.gz
cd package-query
makepkg -si
cd ..
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

用户名和组修改

默认的用户名我看着不舒服,就改成pi了

允许root用户ssh登录

$ nano /etc/ssh/sshd_config
##修改#PermitRootLogin prohibit-password为
PermitRootLogin yes
$ systemctl restart sshd   ##重启ssh服务,重新以root用户ssh登录

修改默认的alarm

##杀掉用户alarm的所有进程
pkill -u alarm
pkill -9 -u alarm
usermod -l pi alarm    ##修改用户名为pi
usermod -d /home/pi -m pi    ##更改家目录
groupmod -n raspberry alarm    ##修改用户组为raspberry

修改主机名

$ nano /etc/hosts
127.0.0.1    localhost.localdomain    localhost
::1        localhost.localdomain    localhost
127.0.1.1    Raspberry-pi.localdomain    Raspberry-pi
$ nano /etc/hostname
Raspberry-pi

备份

将树莓派关机,把卡拔下来插入读卡器,连接linux物理机,执行:

sudo dd if=/dev/sdX status=progress | gzip>/home/spirit/raspberry-pi.gz    ##将树莓派全盘备份到我的home目录下

###如果要恢复的话,先将sd卡删除所有分区,参考前面
sudo gzip -dc /home/spirit/raspberry-pi.gz | sudo dd of=/dev/sdX status=progress