水族馆

云服务器安装ArchLinux手把手指南

不能再详细的指南

阅读时间 2 分钟


前言(废话

服务器上 Arch 有什么好处?

无脑上 Arch 就完事儿

Change Log

2021-11-14 更新:移除了不需要的 tmpfs 部分

服务器配置

阿里云服务器配置

大致操作

  1. 下载 Arch 官方 ISO 安装镜像
  2. 挂载并 chrootsfs 目录中
  3. 删除磁盘上的文件,然后像安装 Arch 一样安装 Arch,参考89
  4. 必要配置&注意事项

1. 下载 Arch 官方 ISO 镜像

先更新 apt 软件仓库

apt更新软件仓库

然后安装screenaria2

浏览器打开 Arch 的官方下载页面,找到 BitTorrent 的下载方式

Arch的官方下载页面


右击该链接,点击“复制该链接的地址

回到 ssh 会话中输入
aria2c "https://www.archlinux.org/releng/releases/2020.08.01/torrent/"

使用aria2c下载

10M/s 速度还行还行

缓慢下载中…

下载完成,当前目录下多了两个文件

下载完成后的目录

运行 screen -S work 进入一个新的会话

运行screen -s

顺带一提

2. 挂载并 chroot 到 sfs 目录中

  1. mkdir iso:iso 文件的挂载点
  2. mkdir sfs:sfs 文件的挂载点
  3. mkdir space:用于扩容 sfs
  4. mkdir work:最终我们会在这个 live 环境里工作!
  5. mount /root/archlinux-2020.08.01-x86_64.iso iso 挂载咱下载好的 ISO 文件到当前目录的 iso 文件夹中
  6. mount iso/arch/x86_64/airootfs.sfs sfsairootfs.sfs 文件挂载到 sfs 文件夹中

df -hT 能看到 sfs 挂载点的占用是 100%,没有剩余空间写入新数据。如果直接 chroot sfs 的话 live 环境不能正常工作,所以咱要整点骚操作扩容一下这个 sfs

挂载overlay

运行 mount overlay work -t overlay -o lowerdir=sfs,upperdir=space,workdir=work

简单理解为,把 sfs 的文件和 space 的空组合起来,呈现在 work 里。

因为原本,sfs 是一个占用 100% 的设备,space 属于一个有剩余空间的磁盘,所以组合之后,work 里既有 sfs 的文件,又有剩余空间辣。

使用arch-chroot

因为使用普通的 chroot,切过去之后 dev 等目录是空的,无法正常安装系统,所以咱要借助 arch-install-scripts 这个包里的 arch-chroot 脚本

  1. cp work/usr/bin/arch-chroot ./:将脚本复制到当前目录下
  2. ./arch-chroot work:chroot 到 work 目录中

查看fdisk

确定一下咱要安装的磁盘是哪一块。咱的机器是 /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。

先开个新坑(咕咕

开始安装软件包

  1. pacman-key --init:初始化 pacman 密钥
  2. pacman-key --populate archlinux:导入 archlinux 密钥
  3. pacstrap /mnt base base-devel linux linux-firmawre:安装基本软件包

关于必装软件包

  1. dhcpcdnetworkmanager 或其他网络管理器:用于管理网络、自动获取 ip 地址
  2. openssh:用于启动 `sshd 服务,远程连接服务器

关于必要配置

  1. systemctl enable dhcpcdsystemctl enable NetworkManager:开机自动启动网络
  2. systemctl enable sshd:开机自动启动 ssh服务
  3. visudo 编辑哪些用户组可以使用 sudo
  4. useradd username -m -G wheel:因为 Arch 默认禁止 root 用户通过 ssh 使用密码登录,所以此处需要新建用户。新建一个名为 username 的账户, -m表示给用户新建一个家目录,-G wheel表示将用户加入 wheel 组,该组内成员可以使用 sudo 命令。
  5. passwd:修改自己的密码
  6. passwd username:修改 username 用户的密码(忘记设置密码就是直接白给)

注意事项

对照 Arch 官方 wiki 安装教程,避免遗漏安装步骤

参考文章

  1. 阿里云 LNMP 环境搭建(一)-在阿里云服务器安装 archlinux
  2. 将现有 Linux 系统替换安装为 Arch Linux
  3. Debain:系统技巧 (mount)
  4. Arch 百科: chroot
  5. Arch 百科:overlay
  6. Arch 百科:Install Arch Linux via SSH
  7. 用 Arch Live 修 Arch 的某些姿势
  8. 以官方 Wiki 的方式安装 ArchLinux
  9. Arch 百科:Installation guide (简体中文)
  10. Arch 官方下载页面