raspberry pi3 ArchLinux 安装记录

前言

某同事说:“Arch 操作系统的一大特点就是其pacman系统更新模块采用的是滚动更新模式(也就是说Arch理论上来说只有一个LTS版本)。只要你的操作得当,甚至可以从最古老的arch版本 升级到最新版,从linux 1.0内核升级到4.x内核。” 同事向我无脑推荐Arch之后不负责任的溜了。

在实际操作中,你很快就会发现贱婢同事说的是对的,但是他只说了一半,留白是:”你很难操作得当。“

Arch的滚动更新模式有着极其频繁的更新频率(需要你用同样频繁的pacman -Syu来跟进远程仓库的更新),而当你累计的更新过多,就会很容易造成更新冲突。如果这些冲突中涉及到一些操作系统的敏感模块,如linux内核更新等,要务必详细了解冲突的内容。理智操作。

我要为我的冲动负责。从新拿到我的树莓派,已经是3个月后,Pacman -Syu 更新提示ca-certificates-utils: /etc/ssl/certs/ca-certificates.crt exists in filesystem

查看 ca-certificate文件后感觉良好,冲动下使用了pacman -Syu --force ,然而这次强制更新把我的bootloader写坏了。

附上Arch 社区提供的一些正确解决方案。

  • 法 1
  1. pacman -Syu –ignore ca-certificates-utils
  2. pacman -S –force ca-certificates-utils
  • 法 2 (强制删除 ca-certificate-utils)
  1. pacman -Syu –ignore ca-certificates-utils
  2. rm /etc/ssl/certs/ca-certificates.crt
  3. pacman -S ca-certificates-utils

过去的就让它过去吧。

详细做一次 raspberry pi 安装 Arch Linux 过程记录。

准备事项

  • raspberry pi3 * 1
  • sd card * 1
  • 读卡器 * 1
  • Arch ARM 版操作系统。(raspberry pi2 和pi3 的系统版本已经分开了,但是pi3 仍然可以安装 archarm-pi2 镜像)
  • 一个有linux操作系统的电脑:这里我使用一台树莓派作为烧录机。(没办法周围除了mac就是pi)
  • 你可能需要请提前安装 bsdtar 工具

很多人就会问,为什么你有mac可用还要强行用pi装b呢?

A:mac的darwin系统并不支持 ext文件系统,所以无法对sd卡进行预期的磁盘操作。

当然据说使用dd命令可以无视这个问题。(找个img镜像)

安装(大部分翻译自 Arch 社区)

首先把sd卡插到读卡器里,然后把读卡器插到电脑上……..

1
2
3
4
5
6
7
8
9
$lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    1 29.8G  0 disk
├─sda2        8:2    1   28G  0 part
├─sda3        8:3    1  1.7G  0 part
└─sda1        8:1    1  100M  0 part
mmcblk0     179:0    0   29G  0 disk
├─mmcblk0p2 179:2    0 28.9G  0 part /
└─mmcblk0p1 179:1    0 41.7M  0 part /boot

列出你当前的磁盘。 显然sda磁盘没有挂载,正是我们要烧录的sd card。

1
$ sudo su

确保你的当前工作目录没有后顾之忧后可以开启管理员模式。(这个工作目录最好放置着预先下载好的arch操作系统,并且保证有足够大的预留空间)

开始给sd卡分区

1
# fdisk /dev/sda

fdisk 有十分详细的引导教程,第一次安装可以尽可能详细的看一下其提示。

一. 首先要做的是删除旧分区,创建新分区:
  1. 键入 o ,清空原有分区表。
  2. 键入p , 查看当前分区表状态,如果第一步操作正确,此处将不会列出 分区表。
  3. 键入n ,开始创建新分区,再键入p,创建主分区,再键入1 ,创建第一个。然后再按一次回车ENTER 使用默认的扇区头地址。键入 +100M 确定扇区尾。
  4. 键入t , 然后键入c来设置第一块分区的文件系统类型为 FAT32(LBA)
  5. 键入n ,开始创建新分区,再键入p,创建主分区,再键入2 ,创建第2个。然后再按两次ENTER 分别选定默认的磁盘扇区头部和尾部。
  6. 最后,键入w 以保存分区表并退出 fdisk
二. 创建并挂载FAT文件系统。
1
2
3
mkfs.vfat /dev/sda1
mkdir boot
mount /dec/sda1 boot
三. 创建并挂载ext4文件系统
1
2
3
mkfs.ext4 /dev/sda2
mkdir root
mount /dev/sda2 root

这里的步骤可能需要等待,比如弹出Writing superblocks and filesystem accounting information: 时。

四. 提取root系统文件

如果你现在还没有进入 root权限模式,这是最后的机会了。

1
2
bsdtar -xpf ArchLinuxARM-rpi-3-latest.tar.gz -C root
sync
五. 填充boot
1
mv root/boot/* boot
六. 弹出sd卡
1
umount boot root
七. 将sd卡装入树莓派,插电,网线连路由器(或者其他什么办法只要你能弄到ip)
八. 从你的电脑上用ssh连接树莓派

附初始用户表:

初始用户用户名密码
alarm(普通用户,可远程登录)alarmalarm
管理员(无ssh权限)rootroot

arch默认不提供对dns的主机发布功能,即默认条件下无法使用 user@raspberrypi.local 连接树莓派。如有需求,移步

附带国内Archarm 加速镜像文件,覆盖 /etc/pacman.d/mirrorlist 文件即可

1
2
3
4
5
6
7
# Server list generated by rankmirrors on 2017-07-27
#
## China
Server = https://mirrors.ustc.edu.cn/archlinuxarm/$arch/$repo
Server = http://tw.mirror.archlinuxarm.org/$arch/$repo
Server = http://mirrors.tuna.tsinghua.edu.cn/archlinuxarm/$arch/$repo
Server = http://mirrors.163.com/archlinuxarm/$arch/$repo
  • 覆盖后记得马上 pacman -Syy更新本地库 !
  • 如果更新后找不到想要的包,可以把第二个tw的官方mirror地址提到第一位。
comments powered by Disqus