Arch Linux 初体验:从安装到滚挂

写在前面

本文是 Arch Linux 初体验:从安装到滚挂 的重构版本。本文为安装和使用 Arch Linux 过程的记录备份,用于未来系统出现不可修复的故障时可以格盘重装快速恢复到故障前的状态。本文不是教程,仅供参考。如在安装和使用过程中出现问题应该首先阅读官方文档论坛

官方建议:不应该只复制粘贴命令而不知道你在做什么。我认为很有道理

环境

  • 操作系统:Windows 10 LTSC 21H2 64位
  • 虚拟机版本:VMware Workstation 16.1.2

前期准备

安装VMware(可选)

点击跳过

直链的获取可以参考本文 底部 第三条链接,安装过程大部分都是无脑下一步

这里可以取消勾选添加到系统 PATH避免污染环境变量,需要使用控制台工具的可以勾选

ISO 镜像获取

打开 Arch Linux 下载页面,选择一个适合的下载方式。一般来说,校验 sha256 就足够了,有需要的话下载页面也提供了其他的验证方式。

  • Windows

    1
    
    certutil -hashfile [文件名] sha256
    

    部分压缩软件也可以校验 sha256

  • Linux

    1
    2
    
    echo "[官网获取到的 sha256 值]  [文件名]" > iso.sha256
    sha256sum -c iso.sha256
    

制作启动盘

TODO:Ventoy 安装与美化

关闭 Secure Boot(必做)

摘自 Arch Linux Wiki

注意:Arch Linux 安装镜像不支持 UEFI 安全启动(Secure Boot)功能。如果要引导安装介质,需要禁用安全启动。如果需要,可在完成安装后重新配置。

关闭方法:通常是需要在计算机启动加电自检时快速按下某个热键(比如部分主板会是F12键)。启动时的画面也可能会有提示,详情请参考自己的计算机的说明书或主板说明书。

启动到 Live 环境

这是前期准备的最后一步,假定已完成:ISO 镜像校验成功未损坏,准备好启动盘,UEFI 安全启动(Secure Boot)已关闭,准备好一个良好的网络环境。推荐另外准备一个 Windows 的启动盘,以免出现意外

  • 实体机

    在启动的时候不停的按键盘上的某个键(我的笔记本是按方向键),选择你的 U 盘,如果使用的是 Ventoy,这时会显示一系列的 ISO 镜像,方向键选择 Arch Linux 的镜像,按次回车进入 Live 环境

    温馨提示: 按下第次回车后,主板的蜂鸣器(或者说喇叭)会不停的发出最大的声音(按方向键可以取消),不要被吓到了,我找了好久都没找到怎么关闭这个声音

    点击跳转到#安装

  • VMware

    打开 VMware 软件,点击创建新的虚拟机

    选择自定义(高级)

    点击下一步

    选择第二项,点击浏览,选中 ISO 镜像

    点击下一步,选择Linux其他 Linux 5.x 及更高版本内核 64 位

    点击下一步,设置名称和虚拟磁盘文件存放位置,推荐放在较大的盘

    点击下一步,填写处理器数量和内核数量,这里个人理解:处理器数量是物理 CPU 数量,一般家用的电脑只有一个,查看内核数量 Ctrl + Shift + Esc > 性能 > CPU > 逻辑处理器

    点击下一步,选择合适的内存大小

    点击下一步,网络类型选择桥接 TODO:三种类型的区别

    点击下一步,后面两个按 VMware 推荐的设置,就不截图了

    选择创建新虚拟磁盘

    指定磁盘容量,选择合适的磁盘大小并记住这个数字,后面会用到,其余的按截图这样选

    一路点击下一步就好了,点击启动虚拟机

    选择第一项,按回车进入 Live 环境

安装

前一篇体验文章我使用的是 Archinstall 安装脚本,因为第一次安装是使用的手动安装,但是不知道是哪里遗漏了还是怎么,按教程走完流程后居然无法启动了,就连之前安装的 Win10 也无法启动,接连格盘尝试了好几遍也安装不上,无奈只好使用官方提供的安装脚本。好在仔细地浏览了 Wiki 和一些 B 站的视频之后,终于可以手动安装成功了,而且现在的双系统也是使用手动的方式安装的,给自己点个赞👍。官方不推荐初学者使用 Archinstall 走捷径,在尝鲜完之后可以参考我这篇文章来手动安装,不仅可以深刻地理解 Linux,也可以知道 Archinstall 是怎么工作的。

本文省略了一些步骤,详细内容可以参考本文 底部 第一条链接

设置字体大小

1
setfont ter-132b

联网

有线连接:ping shuyugo.vip,连接成功直接跳转到第二步

无线连接:TODO:无线连接

更新系统时间

TODO:时间在 tcp/ip 中的作用

1
2
3
timedatectl set-timezone [timezone] # 自行替换适合的时区
date +"%Y-%m-%d %H:%M:%S" # 查看时间是否正确
timedatectl set-ntp true # 如果时间还是差距过大,可以尝试开启 ntp

创建硬盘分区

官方建议:不应该只复制粘贴命令而不知道你在做什么。

1
fdisk -l # 浏览

可以根据大小来判断,之前创建的磁盘容量是 40 GB,所以我们选择这个硬盘

1
fdisk /dev/sda

输入 g 创建 GPT 分区表,按 p 打印当前分区表

注意:在输入 w 写入更改之前,你做的所有操作都不会生效,所以可以放心操作,并随时输入 p 查看当前分区表

输入 n 创建新的分区,如果要安装 Arch + Windows,点击查看正确的安装顺序。以下每一个>代表一次回车

依次输入:n > 1 > 4096(4k对齐)> +1G(分配大小)> n > 2 > (单系统再次回车,双系统输入+[size]分配大小,这里的[size]需要手动替换,输入好按回车)

输入 p 打印当前分区表,应该这样显示:

如果不一样,可以重新输入 g 再来一遍

输入 w 保存,此步操作会擦除硬盘上的所有数据,请注意备份重要文件,输入q可以退出

格式化分区

1
fdisk -l /dev/sda # 浏览

/dev/sda1为 EFI 分区,/dev/sda2/分区

已经安装了 Windows 系统不要格式化 EFI 分区

1
2
mkfs.fat -F 32 /dev/sda1 # EFI 分区必须为 fat32 格式
mkfs.ext4 /dev/sda2

挂载分区

注意顺序:先挂载 /分区,再挂载 EFI 分区

1
2
mount /dev/sda2 /mnt
mount --mkdir /dev/sda1 /mnt/boot

设置镜像站

1
2
3
4
5
6
# 自行替换[Country Code]为适合的国家代码
curl -L 'https://archlinux.org/mirrorlist/?country=[Country Code]&protocol=https' -o /etc/pacman.d/mirrorlist
# 推荐先使用 cat 查看文件内容
sed -i 's/#Server/Server/g' /etc/pacman.d/mirrorlist
# 更新镜像源
pacman -Syy

安装必须的软件包

1
pacstrap -K /mnt base linux linux-firmware

生成 fstab 文件

1
genfstab -U /mnt >> /mnt/etc/fstab

官方强烈建议在执行完以上命令后,检查一下生成的 /mnt/etc/fstab 文件是否正确。

TODO:fstab 是什么?

chroot 到新安装的系统

1
arch-chroot /mnt

设置时区

1
2
ln -sf /usr/share/zoneinfo/Region(地区名)/City(城市名) /etc/localtime
hwclock --systohc

区域和本地化设置

1
2
3
4
sed -i 's/#en_SG.UTF-8/en_SG.UTF-8/g' /etc/locale.gen
locale-gen
echo "LANG=en_SG.UTF-8" > /etc/locale.conf
echo "FONT=ter-132b" > /etc/vconsole.conf # 设置 tty 字体

温馨提示: 使用 > 符号时一定要小心,因为他会直接覆盖文件的内容。有位博主就是在教程中使用 > 而没有提醒可能的风险,导致好几位小白的配置文件被覆盖了,博主白白被骂,我看着都想笑。所以再次引用 Arch官方的那句话:不应该只复制粘贴命令而不知道你在做什么。

创建 hostname 文件

1
echo "arch" > /etc/hostname

安装软件

根据自己的喜好调整

1
2
pacman -Syy # 强制更新源
pacman -S vim dhcpcd sudo intel-ucode man-db terminus-font grub efibootmgr

配置 dhcpcd 和 sudoers

1
2
3
4
5
6
7
8
# dhcpcd
echo -e "noarp\nnohook resolv.conf" >> /etc/dhcpcd.conf
echo "nameserver 223.5.5.5" > /etc/resolv.conf
systemctl enable dhcpcd
# sudoers
useradd -m -G wheel -s /bin/bash arch # 创建普通用户
sed -i 's/# %wheel ALL=(ALL:ALL) ALL/%wheel ALL=(ALL:ALL) ALL/g' /etc/sudoers
passwd arch # 修改用户密码

安装 GRUB

细节参考 GRUB

这个是最后一步,也是最重要的一步。不过不用担心,只要启动盘没有损坏,就可以从头再来!

1
2
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg

基础 Arch Linux 安装完成

未完待续…

Arch + Windows

具体细节参考 [Arch + Windows] [GRUB]

正确的安装顺序是:创建并格式化 EFI 分区 > 创建并格式化 Arch 的 /分区,留出 Windows 的空间不要做任何操作 > 使用 PE 释放 Windows ISO 镜像,使用已创建的 EFI 分区和上一步留出的空闲分区 > 安装 Arch > 使用 os-prober 探测 Windows 并添加到 GRUB)

参考