云服务器安装ArchLinux手把手指南
不能再详细的指南
阅读时间 2 分钟
前言(废话)
服务器上 Arch 有什么好处?
- 好用
- 丰富的软件仓库
- 更快的软件更新
- 详细的 Arch Wiki
学会更多骚操作
无脑上 Arch 就完事儿
Change Log
2021-11-14 更新:移除了不需要的 tmpfs 部分
服务器配置
- Ubuntu 18.04 (其实内核 3.4+的系统都可以啦)
- 阿里云和腾讯云轻量服务器实测通过
- Google Cloud Platform 可能是因为奇怪的安全策略,尝试了一下没有成功…
大致操作
1. 下载 Arch 官方 ISO 镜像
先更新 apt 软件仓库
然后安装screen
和aria2
- 为防止网络波动导致会话结束,咱用
screen
创建一个虚拟终端,在screen
中运行的软件即使 ssh 链接断开也不会结束 - 使用云服务器网页 vnc 连接的朋友们没有必要使用 screen
aria2
:命令行 BiTtorrent 下载器
浏览器打开 Arch 的官方下载页面,找到 BitTorrent 的下载方式
右击该链接,点击“复制该链接的地址”
回到 ssh 会话中输入aria2c "https://www.archlinux.org/releng/releases/2020.08.01/torrent/"
10M/s 速度还行还行
下载完成,当前目录下多了两个文件
运行 screen -S work
进入一个新的会话
顺带一提
- 按下
Ctrl+D
,再按下D
,可以退出当前会话 screen -ls
,列出所有会话screen -r name
,重新进入名为name
的会话screen -D name
,强行退出一个正在运行中的会话
2. 挂载并 chroot 到 sfs 目录中
mkdir iso
:iso 文件的挂载点mkdir sfs
:sfs 文件的挂载点mkdir space
:用于扩容 sfsmkdir work
:最终我们会在这个 live 环境里工作!mount /root/archlinux-2020.08.01-x86_64.iso iso
挂载咱下载好的 ISO 文件到当前目录的iso
文件夹中mount iso/arch/x86_64/airootfs.sfs sfs
将airootfs.sfs
文件挂载到sfs
文件夹中
用 df -hT
能看到 sfs
挂载点的占用是 100%,没有剩余空间写入新数据。如果直接 chroot sfs
的话 live 环境不能正常工作,所以咱要整点骚操作扩容一下这个 sfs
运行 mount overlay work -t overlay -o lowerdir=sfs,upperdir=space,workdir=work
简单理解为,把 sfs
的文件和 space
的空组合起来,呈现在 work
里。
因为原本,sfs
是一个占用 100% 的设备,space
属于一个有剩余空间的磁盘,所以组合之后,work
里既有 sfs
的文件,又有剩余空间辣。
因为使用普通的 chroot
,切过去之后 dev
等目录是空的,无法正常安装系统,所以咱要借助 arch-install-scripts
这个包里的 arch-chroot
脚本
cp work/usr/bin/arch-chroot ./
:将脚本复制到当前目录下./arch-chroot work
:chroot 到 work 目录中
确定一下咱要安装的磁盘是哪一块。咱的机器是 /dev/vda
这个磁盘,只有一个 /dev/vda1
分区。很显然 /dev/vda1
就是系统所在的分区。
3. 删除磁盘上的文件,然后像安装 Arch 一样安装 Arch
mount /dev/vda1 /mnt
挂载分区,进入,并删除 除了run
, tmpfs
, media
, proc
, sys
, dev
, tmp
, root
文件夹和 swapfile
的其他所有内容。这些文件夹里存放的不是常规文件,是系统运行时产生的设备和进程文件。
要注意哦~,删掉之后,就不要退出 chroot 环境回到最原始的系统辣,因为最原始的系统上啥都没了,退出去就回不来了啊啊啊啊(惨痛的教训),exit 前慎重慎重再慎重
关于格式化
由于磁盘分区还在被原有的系统内核使用中,所以无法卸载并重新格式化
由于磁盘空间已经全部分配完,ext4 又不支持在线缩减分区(只支持在线扩容分区),
所以缩减分区,建立新分区,安装系统到新分区,从新分区启动,格式化旧分区这种骚操作不存在
所以咱做的就只能是删掉原分区里的文件,然后直接开始安装
2021-11-14 打脸更新:在 makeinitcpio 中添加 resize2fs,在 initcpio 中调整 ext4 分区大小。将 Arch 装载新划分出的空间中。再将格式化原分区,把 Arch 移回去,扩容分区。如此把服务器磁盘变成了 btrfs。
先开个新坑(咕咕
开始安装软件包
pacman-key --init
:初始化 pacman 密钥pacman-key --populate archlinux
:导入 archlinux 密钥pacstrap /mnt base base-devel linux linux-firmawre
:安装基本软件包
关于必装软件包
dhcpcd
或networkmanager
或其他网络管理器:用于管理网络、自动获取 ip 地址openssh
:用于启动 `sshd 服务,远程连接服务器
关于必要配置
systemctl enable dhcpcd
或systemctl enable NetworkManager
:开机自动启动网络systemctl enable sshd
:开机自动启动ssh
服务visudo
编辑哪些用户组可以使用sudo
useradd username -m -G wheel
:因为 Arch 默认禁止 root 用户通过 ssh 使用密码登录,所以此处需要新建用户。新建一个名为username
的账户,-m
表示给用户新建一个家目录,-G wheel
表示将用户加入wheel
组,该组内成员可以使用sudo
命令。passwd
:修改自己的密码passwd username
:修改username
用户的密码(忘记设置密码就是直接白给)
注意事项
对照 Arch 官方 wiki 安装教程,避免遗漏安装步骤
- 剩下的日期,locale 配置与生成,时间,镜像源,LANG,主机名,hosts,生成 fstab,引导软件配置都和正常安装没啥差别
- 如果发现服务器无法正常启动,可以在阿里云网页版服务器控制台进入救援模式
- 折腾系统之前被分好重要数据
- 不是所有服务器都能按照此类方法安装,例如 Google Cloud Platform 就有类似 Secure Boot 的保护,并且
/etc/resolv.conf
还有特殊保护?(具体原理不是很清楚ㄟ ww)