ArchLinux 安装笔记

有空来安装一下 Arch Linux ,这么有逼格的东西不安装一个怎么对得起新捡的固态硬盘啊。而且不是说“学习 Linux 的第一步就是安装一个 Linux ”嘛,Ubuntu 和 Manjaro 这种安装自带图形界面的安装起来 emmm... 装完了也就稍稍了解了一下分区。Arch Linux 无图形界面 hhh 想想就刺激,上一次安装没整明白,最近几天又折腾上了。

一些参考链接

安装前的准备

先准备一个 U 盘做启动引导,安利 Rufus ,挺好用的就这样。

验证签名

官网给出的 archlinux-2019.09.01-x86_64.iso 签名密钥:

  • PGP 签名
  • MD5: 1d6bdf5cbc6ca98c31f02d23e418dd96
  • SHA1: 67cf5460beb42230a9c07fd6ebc136cbb1181948

从下面三者选其一校验即可,懒的同学可以跳过这个步骤。

  • GnuPG4Win 适用于 Windows 的 GNU Privacy Guard (平民下载的时候选择捐赠 $0 即可)
  • 下载 当前 GnuPG 的简单安装程序 然后打开 cmd 命令行输入 gpg --keyserver pgp.mit.edu --keyserver-options auto-key-retrieve --verify archlinux-2019.09.01-x86_64.iso.sig 验证
  • 下载 文件校验工具 浏览下载的镜像文件,然后比对 MD5 / SHA1

启动到 live 环境

将制作好的 ArchLinux 启动引导 U 盘插入电脑,开机
进行开机自检时狂按 FX 比如 F2 进入 Arch Menu
选择 Boot Arch Linux 并按 Enter 进入 Live 安装环境
Run 完一大堆硬件检查之类的代码之后你的命令行应该停在这样的地方:

Arch Linux 5.2.11-arch1-1-ARCH (tty1)

archiso login: root (automatic login)
root@archiso ~ # _

如果出现错误可以重试,或者尝试在 Rufus 中用 dd 镜像模式重新烧录启动引导盘。

验证启动模式

命令行输入以下代码验证启动模式:

# ls /sys/firmware/efi/efivars

提示目录不存在则系统可能以 BIOS 或 CSM 模式启动:

ls: cannot access '/sys/firmware/efi/efivars': No such file or directory

否则以 EFI 方式引导。另外如果在 UEFI 主板上启用 UEFI 模式启动,ArchISO 将会使用 systemd-boot (一个可以执行 EFI 镜像文件的简单 UEFI 启动管理器)来启动 Arch Linux。

这是在 Arch Live 系统内查看引导方式的方法,建议还是装机前就看好引导方式。在 Windows 下按下 WinR 键打开 msinfo32 可以查看 BIOS 模式 项即可。或者也可以进入主板 BIOS 查看启动方式,还可以参考 这里 使用 fdisk -l 检查磁盘分区表判断启动方式。基本目前的机型比较新的电脑都当作 EFI 启动就好。

开始安装

开始安装前的基本设置

安装必须要联网,命令行输入:

# wifi-menu                      // 使用无线网
# dhcpcd                          // 使用有线网且路由器支持 DHCP

# ping www.baidu.com    // 联网完成后 ping 检查连接

更新系统时间,使用 timedatectl 确保系统时间是准确的:

# timedatectl set-ntp true    // 正常情况没有返回

可以使用 timedatectl status 检查服务状态。虽然每次运行了但是进入系统后时间还是会有各种莫名的错误,暂未解决。

磁盘分区

建立硬盘分区,安装系统的最重要的一个环节。

# fdisk -l                     // 查看现有磁盘分区

系统大概会以像这样的格式显示你的硬盘和硬盘上的分区信息:
Disk /dev/sda: 238.5GiB, 256060514304 bytes, 500118192 sectors
Units: sectorsof 1 * 512= 512 bytes
Sector size (logical/physical): 512 bytes /512 bytes
I/O size (minimum/optimal): 512 bytes /512 bytes
Disklabel type: dos
Disk identifier: 0xb3bc99f0

Device       boot    Start        End          Sectors      Size     Id    Type
/dev/sda1    *       2048         208673496    208671449    99.5G    7     HPFE/NTFS/exFAT
/dev/sda2            208674816    209719295    144480       510M     37    unknown
/dev/sda3            395261952    500118191    104856240    50G      83    Linux

以我的电脑为例,输入命令后结果是这样的。

Arch 分区信息
Arch 分区信息

/dev/nvme1n1 /dev/nvme0n1 /dev/sda /dev/sdb 依次是装 Windows 的固态、新捡的固态(全拿来放 Windows 下的软件游戏了)、机器原来的机械硬盘和引导安装 Arch 的 U 盘。loop 等磁盘直接忽略。原本按照开头第四个链接的教程,安装双系统不用新建引导分区,但是后来发现安装失败了,这里分享一下配置双系统的小经验。下面是分区过程。

# fdisk /dev/sda      // 后面这个路径是要安装 ArchLinux 的硬盘
// 现在进入 fdisk 操作界面
// 关于 fdisk 使用可以参考百度教程
n                           // n 新建一个分区
[Enter]                  // 选择分区数字 Partition number
[Enter]                  // 选择起始扇区 First sector
+1G                      // 选择结束扇区 使用 +[XX][M/G] 定义分区大小

// 图中我设置了 swap 交换分区,实际上内存大这个分区不需要
// n
// [Enter]
// [Enter]
// +12G

n
[Enter]
[Enter]
+301G

p                      // 查看分区信息,在执行前确认一次
w                      // 执行分区操作,此前所有设置都将写入磁盘

// 现在退出 fdisk 操作页面,回到命令行
// 格式化分区

// 将上面第一个分区作为引导分区,这个和 Windows 的 EFI 引导分区是分开的
# mkfs.fat -F32 /dev/sda1

// 之前设置了 swap 分区,实际上我进入 Arch 后根本用不到
// 如果你确实需要设置 swap 分区,那么执行这两条
// mkswap /dev/sda2
// swapon /dev/sda2

// 主分区格式化
# mkfs.ext4 /dev/sda3

ArchLinux fdisk 分区
ArchLinux fdisk 分区

这样,分区这部分就结束了,再说点关于 引导分区 ,有的教程说装双系统,直接将 Windows 的引导分区挂载到当前要安装的系统里就可以了,但是这里还是建议直接新硬盘新建引导分区。在我折腾了 Manjaro Ubuntu Kali FydeOS 之后 Windows 的引导分区似乎被我整的乱七八糟,以致最近一次安装 ArchLinux 我试图挂载 Windows EFI 分区安装 grub 等引导时提示空间不足(要知道 Windows 默认的 EFI 引导分区只有 100M 大小),这出乎我的意料,我以为自己让 EFI 分区下只保留 Microsoft 和 Boot 文件夹其他都删掉就 OK 了,实际于事无补。所以我还是推荐独立新建引导分区。上面我新建了 1G 引导分区,方便以后继续折腾。
Windows 的 多系统引导 我依旧推荐 rEFInd ,只要将这个文件夹放入 Windows 默认引导分区 /EFI/ 文件夹下,bcdedit 设置 rEFInd 为启动项即可自动检测所有硬盘上的引导文件,这样 Linux 的引导就解决了。详细的操作我在前面的博文中已经写过了。
关于分区的最后一点,也是重中之重的 数据 ,一定要事先转移重要数据。我以为 fdisk 只要磁盘分区的时候选择起始扇区跳过已有的分区位置就可以避免数据丢失,实际当我在已有分区后面新建分区后,在 Windows 的磁盘管理中这个磁盘上原来的分区也无法使用了(进入这个盘时提示必须格式化才能继续使用)。当然,不排除我个人操作出错,但是在这里我还是提醒一句。

ArchWiki 分区示例
ArchWiki 分区示例

挂载分区

完成了磁盘的分区之后操作其实都不是很难了,耐心。

# mount /dev/sda3 /mnt                 // 挂载根分区,/dev/sda3 是我之前的 301G 主分区
# mkdir -p /mnt/boot
# mount /dev/sda1 /mnt/boot        // 挂载之前创建或是已经存在的引导分区

安装系统

设置中国镜像源优先,刷新软件包列表安装基本系统

# vim /etc/pacman.d/mirrorlist

// 在文件的最开头写入国内镜像源地址
Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.zju.edu.cn/archlinux/$repo/os/$arch
// vim 使用 insert 键开始输入,esc 键退出输入,:wq 保存并退出

# pacman -Syy
# pacstrap -i /mnt base base-devel

开始联网下载最新的软件依赖包等等等等之后,生成自动挂载分区的 fstab 文件并检查:

# genfstab -U -p /mnt >> /mnt/etc/fstab
# vim /mnt/etc/fstab
// 确认分区正常后退出文件进入下一步

Chroot

Chroot(Change Root),这一步之后所有操作都在新安装的系统内执行,而不是 U 盘中。这也就意味着所有操作都是在新系统内保留。

# arch-chroot /mnt /bin/bash

新系统的一些基本设置

新系统的时区、本地化、网络、Initramfs、Root 密码、引导程序设置等。

// 设置时区
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
// 硬件时间同步
# hwclock --systohc

// 安装一些必要的软件包
# pacman -S vim iw wpa_applicant dialog ntfs-3g networkmanager

// 设置本地化 Locale ,编辑删除你需要的语言前的 # 即可
# vim /etc/locale.gen
// 比如删除这几行前的 # 
// en_US.UTF-8 UTF-8
// zh_CN.UTF-8 UTF-8
// zh_TW.UTF-8 UTF-8
// 执行下面命令生成 locale 信息文件
# locale-gen
// 编辑系统 locale 让 log 英文显示,不要设置中文
# vim /etc/locale.conf
// 新文件,直接写入以下内容并保存
// LANG=en.US.UTF-8

// 设置主机名,下面所有 yourname 自行处理
# echo 'yourname' > /etc/hostname
# vim /etc/hosts
// 在文件末尾写入以下内容并保存
// 127.0.0.1 localhost
// ::1 localhost
// 127.0.1.1 yourname.localdomain yourname

// Root 密码,添加日常登录使用的普通权限账户
// Root 账户权限太高,平时操作不安全,所以新建普通用户用于日常操作
// 对于高权限操作普通用户需要 sudo 才能执行
# useradd -m -g wheel -s /bin/bash username
# passwd username
// 编辑 sudo 配置文件让普通用户输入密码就能执行 sudo
# visudo
// 找到下面这行并删除前面的 # 
// %wheel ALL=(ALL) ALL

// Intel CPU 安装这个包
# pacman -S intel-ucode

// grub 引导程序配置,下面命令依次是安装必要软件包、Grub 安装、Grub 配置生成
# pacman -S grub efibootmgr os-prober
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
# grub-mkconfig -o /boot/grub/grub.cfg

最后安装引导程序这里容易出现各种错误,这与机器的引导方式、分区等都有关系,找 ArchWiki 、谷歌、百度都是好办法。查看 viseator's blog: 以官方 Wiki 的方式安装 ArchLinux 一文或许能给你带来一些思路。为了方便查看我将这篇博文中部分内容截图如下:

Viseator's Blog 关于 bootloader 的讲解
Viseator's Blog 关于 bootloader 的讲解

重启和安装后的工作

准备重启,配置显卡驱动和桌面环境。待更。。

添加新评论

本站现启用评论投票,被踩过多的评论将自动折叠。无关评论请关于页留言。禁止哈哈,谢谢。


已有 6 条评论

这么多年还是觉得 Windows7 好用(逃
Linux 其实不太适合日常用,更适合专用,而且最好是一个服务器只跑一个东西,个人观点。

Archlinux 很好用的。
现在我桌面用win7
服务器用Ubuntu Debian centos。
喵喵喵喵喵喵

可不是吗,超好用的 用过都说好

Mai1me Mai1me 回复 @TingleDev
0 0

之前archlinux 安装了很多回呢。
在vps上也安装过好几回 只是没有坚持用下去,我还有个注册好多年 archlinux.xx的域名呢

原来你也是邪教教徒

如果算教徒的话,我也只能算半个教徒