写在开头

大概一两年前用过Arch,但是那时候对linux还不是很熟悉,完全是因为arch是最难安装的linux发行版而尝试了它,但后期因为各种问题,让我换回了Windows(真香)。最近由于在学习编程,所以又用回了linux。(不要说WSL,不香)。本文为我安装Archlinux的记录。

先放个成果图:

长得像mac是因为KDE用的是mac主题


当然,阅读本文之前,确保你已经满足了以下条件:

  • 听说过Archlinux(本文不再赘述)
  • 简略了解过linux的各个发行版(本文不再赘述)
  • 略懂linux指令(本文不再详细解释)
  • 不轻言放弃的态度(我们称之为determination)

安装前的准备

1、 前往archlinux.org下载iso镜像。

2、使用相应的写入工具,写入到U盘(windows用rufus,linux使用dd命令,mac也可以使用dd命令)。

3、给archlinux一个硬盘空间(有图形界面>=40G,不使用则可以>=20G)。

实机安装

由于不同的机器使用的启动方式不同,会导致接下来的安装步骤稍有不同。一般的启动方式有BIOS/MBR分区表(多为旧的笔记本/主板)和UEFI/GPT分区表。目前更多的应是后者。

当然,BIOS和MBR分区表不是固定搭配,在受支持的BIOS上也可以使用GPT(同理,UEFI也可以使用MBR)。

  • 若使用BIOS启动,则会看到有Arch logo的启动界面
  • 若使用UEFI启动,则会看到UEFI启动选项(无logo)。

启动时,选择第一项启动即可。

设置键盘布局

因为目前我们用到的笔记本键盘大多都是美式布局,所以我在这里没有配置。如果你的键盘布局很奇葩,则需要手动配置一下。参考Arch Wiki#%E9%94%AE%E7%9B%98%E5%B8%83%E5%B1%80](https://wiki.archlinux.org/index.php/Installation_guide_(简体中文)#键盘布局))

联网

因为Arch安装时需要从互联网下载软件包,所以我们必须要在此步骤进行联网。

如果你的电脑使用的是wifi(例如笔记本),那么可以使用wifi-menu来搜索并连接到网络。

若你的电脑是使用有线网络(插网线),那么应该会自动配置。

联网后,测试一下是否已连接到网络:

ping www.baidu.com #受限于国内网络环境,Baidu是个不错的测试选择

ping通的反馈

按下Ctrl+C终止。当然,如果你看到了time out字样,证明连接失败了。

如果失败,请检查你的wifi模块是否在linux支持的无线硬件中。Web
如果不支持,建议使用有线或更换为支持的USB无线网卡。

更新系统时间

使用 timedatectl(1) 确保系统时间是准确的:

timedatectl set-ntp true # 更新系统时间
timedatectl status # 检查服务状态

给磁盘进行分区

如果你的电脑只有一块硬盘,那么你的硬盘标识应该是/dev/sda,当然,为了确保没有问题,还是需要手动检查。

lsblk # 列出磁盘分区
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT # 为输出
sda      8:0    0 119.2G  0 disk 
├─sda1   8:1    0   200M  0 part
├─sda2   8:2    0     4G  0 part
└─sda3   8:3    0   115G  0 part

按照上面的例子,/dev/sda是此硬盘,其中的/dev/sda1/dev/sda2/dev/sda3是不同的分区。注意,为分配的空间不会被列出,此操作的主要目的是确定需要安装的磁盘标识。其中,以romloopairoot结尾的需要被忽略。

确定好需要安装的目标磁盘后,我们需要进行分区操作。

若是使用UEFI启动,分区一般需要三个:EFI系统分区(若Windows已经创建,则可忽略)、根目录以及交换空间

若是BIOS启动,则仅需要根目录以及交换空间

BIOS和MBR

挂载点分区分区类型建议大小
/mnt/Linux (ext4或xfs)其余所有空间
[SWAP] (无需挂载) Linux swap大于512MB

UEFI和GPT

挂载点分区分区类型建议大小
/mnt/boot或/mnt/efi/boot或/efiEFI200M~500M
[SWAP] (无需挂载) Linux swap大于512M
/mnt/Linux (ext4或xfs)其余所有空间

使用fdisk分区

首先先确保你为Archlinux分配了空闲空间(在扩展分区中的空闲空间不可使用)。

fdisk /dev/sda # 此处为你要安装的磁盘,按照自己的情况输入。

输入n创建新分区。我们首先要创建EFI分区:

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)      #选择分区类型(扩展分区or主分区)。这里作为主分区,选择p
Partition number (1-4):          #默认即可
First cylinder (1-130, default 1):      #默认即可
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): +500M   #分区大小

创建交换空间:

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)      #选择p
Partition number (1-4):          #默认即可
First cylinder (1-130, default 1):      #默认即可
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): +4G   #分区大小

创建根目录分区:

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)      #选择p
Partition number (1-4):          #默认即可
First cylinder (1-130, default 1):      #默认即可
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130):   #保持默认,将所有空间分配给'/'分区。

最后,使用w保存我们的操作。

再次输入lsblk检查是否分区成功。在这里,我默认/dev/sda1是我的根目录分区,/dev/sda2是交换空间,/dev/sda3是EFI分区。

格式化分区

分区建立后,需要使用适当的文件系统进行格式化。

mkfs.ext4 /dev/sda1 # 将根目录分区格式化成ext4文件系统
# 当然,你也可以格式化成xfs文件系统
#mkfs.xfs -f /dev/sda1
mkfs.vfat /dev/sda3 # 格式化EFI分区
mkswap /dev/sda2 # 格式化交换空间

挂载分区

mount /dev/sda1 /mnt  # 将/dev/sda1 挂载到 /mnt
mkdir /mnt/boot # 新建一个/mnt/boot目录,也可以 mkdir /mnt/efi
mount /dev/sda3 /mnt/boot # 将/dev/sda3 挂载到 /mnt/boot ,若上一步是efi,这里需要将boot改为efi(BIOS/MBR用户无需挂载该分区)
swapon /dev/sda2 # 启用swap

选择镜像

文件 /etc/pacman.d/mirrorlist 定义了软件包会从哪个 镜像源 下载。

受限于国内的网络环境,我们要修改默认的镜像源,提升安装过程中的下载速度。

nano /etc/pacman.d/mirrorlist  # 使用nano编辑镜像源列表

在这里,我推荐用清华源。在列表的开头,加入该镜像源。

Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch

当然,为了确保一定使用该源,我们可以禁用列表中所有默认的镜像源:使用Ctrl+\搜索S,将其替换成#(在添加清华源之前)。

最后,按下Ctrl+O保存,Ctrl+X退出编辑。

安装基本包

使用pacstrap安装基本软件包。

pacstrap /mnt base linux linux-firmware  # 安装基本包,包括部分驱动程序。

配置系统

fstab(摘抄自Archlinux Wiki#Fstab](https://wiki.archlinux.org/index.php/Installation_guide_(简体中文)#Fstab))

用以下命令生成 fstab 文件 (用 -U-L 选项设置UUID 或卷标):

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

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

chroot

使用chroot进入新安装的系统。

arch-chroot /mnt

时区

设置为对应地区的时区。

timedatectl list-timezones  # 列出可用的区域
 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 设置时区为 Aisa/Shanghai
 hwclock --systohc --utc # 设置时间标准

本地化

编辑/etc/locale.gen,指定需要的本地化类型,只需移除对应行前面的#

en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_TW.UTF-8 UTF-8

然后执行locale-gen生成locale。

locale-gen

接下来,我们需要将系统locale设置为en_US.UTF-8。若在此处设置中文locale,会导致tty乱码。

echo LANG=en_US.UTF-8 > /etc/locale.conf

网络

  • 设置一个主机名

创建一个hostname文件,并写入你的主机名:

nano /etc/hostname
myhostname  # 设置你的主机名称

添加对应的信息到hosts:

nano /etc/hosts
在最下方添加
127.0.1.1    myhostname.localdomain    myhostname  # 修改为你的主机名

如果系统有一个永久的 IP 地址,请使用这个永久的 IP 地址而不是 127.0.1.1

  • 安装相应网络管理程序

如果使用的是wifi,则需要安装相应的软件包管理。

pacman -S iw dialog wpa_supplicant

设置用户密码

  • 设置root密码(使用passwd)
  • 创建普通用户
useradd -m -G wheel username # username修改为相应的用户名
  • 设置用户密码(passwd username)

安装引导程序(Grub)

你需要安装 Linux 引导程序以在安装后启动系统。

安装必要的软件包:

pacman -S grub efibootmgr os-prober
# 如果不是多操作系统的用户,请不要安装os-prober
# 如果是BIOS引导,则不需要安装efibootmgr

接下来,需要执行grub-install,把Grub安装到EFI分区。

grub-install 
# 如果之前的步骤创建的是efi,则需要手动指定安装路径
# grub-install --efi-directory=/efi
grub-mkconfig -o /boot/grub/grub.cfg #如果之前的步骤创建的是efi,则修要将boot修改为efi

结束安装

  • 输入exit退出chroot环境
  • 执行reboot重启系统

下一篇文章,将会讲述安装后的基本配置。

Last modification:April 15, 2020
赞助一杯冰阔落