此文大多数来自这篇文章,但是修改了里面一些错误的地方和优化了一些内容,以及增加了桌面安装部分和其他一些常用软件安装(wayland下的输入法/firefox等)
https://zhuanlan.zhihu.com/p/112541071
正文开始:
安装前的准备
在Windows还没有被消灭之前,先用它制作一个启动U盘,然后用这个U盘来安装Arch Linux。为完成这一操作,需要准备如下工具:
- Windows电脑开机(什么!你没有Windows?那你还要装什么Arch Linux?);
- 下载Arch Linux镜像文件——>清华大学开源软件镜像站;
- 下载一个制作启动U盘的工具,这里我选择——>rufus;[这里注意,rufus写u盘镜像的时候,用u盘先转换为GPT格式[guid],可以用diskgenius来整盘转;然后rufus写镜像时分区类型选GPT)
- 一个容量2G以上的大U盘。
使用rufus制作启动U盘的步骤非常简单,选一下系统镜像文件,选一下自己的U盘(一般会软件自动选好的),点开始,安心等着就完事了。
准备安装
把制作好的启动U盘插上电脑,开机,疯狂地按那个能够启动电脑BIOS的键。在BIOS中将U盘设为第一启动项,保存退出,就可以等着进入U盘里面的系统了。如果显示出如下界面,说明启动U盘制作成功了。选择第一个选项就可以开始安装系统了,如果进不去系统,说明启动U盘没有做好,可能需要重新制作一份。
等着系统自己启动一小会儿,当进入到如下界面以后,就可以开始安装系统了。
首先,我们需要确定自己的启动模式(UEFI/BIOS):
ls /sys/firmware/efi/efivars
如果提示不存在这个文件,那就说明我们的启动模式是BIOS,否则就是UEFI。下图是一个BIOS启动模式的示意图。
【UEFI启动模式】如果屏幕上出现一大把东西,那就说明电脑支持UEFI启动模式。UEFI启动模式需要在BIOS当中开启,如果老铁的硬件比较新,但又不是UEFI启动模式,可能需要去自己的BIOS当中去看看了。
然后,我们需要给电脑连上互联网。使用ip link
查看电脑的所有网卡,然后用rfkill
确保网卡能用。我的笔记本电脑使用无线网卡连接网络,对应网卡的名字是wlan0
,这个名字在后面还会用到。
使用命令行程序iwctl
连接互联网。首先,键入iwctl
进入该程序,可以发现终端窗口发生了一些微妙的变化。
输入help
可以查看该程序的帮助文档,在这里我们主要使用几个以station
开头的命令。
可以通过几个命令的素质四连可以很快乐地完成互联网的连接。分别是station list
列出所有可用无线网卡的名字,然后用station <wlan> scan
扫描当前可用的无线网(<wlan>
需要换成自己的无线网卡名字),再然后使用station <wlan> get-networks
展示扫描结果(在敲命令的过程中随时都可以使用TAB
键进行命令补全),最后使用station <wlan> connect <name>
去连接相应的无线网,需要输入无线网络的密码(显示为星号)。效果如下所示:
值得注意的是,中文名无线网络会被显示成方块块(就比如上面图片当中就有一个wifi的名字全是方块),所以把无线网名称设置为纯英文还是有必要的哈。完成无线网设置后,使用quit
退出iwctl
,回到熟悉的终端当中。
【有线连接】如果电脑插上了网线,那就应该能直接连上互联网了,无需任何设置。
使用ping -c 4 baidu.com
测试一下是否成功地连上了互联网,如果输出和下图非常类似的话,那就是成功了。有时候可能不会立马就连上网,可以过十几秒再试试ping
。
正式开始安装系统了,首先更新一下系统时钟:
timedatectl set-ntp true
什么输出都没有的话,就说明设置成功了。在Linux宇宙,啥输出都没有是最好的结果。可以用timedatectl status
查看一下系统时钟状态,这里的时间应该是UTC时间。
现在开始做硬盘分区了,BIOS启动模式和UEFI启动模式的分区会有点不同,老铁们请移步查看archlinux wiki获取更多信息。输入cfdisk
就会进入一个非常好看的文本用户界面。
【多硬盘情形】直接输入cfdisk
默认处理的是/dev/sda
,如果老铁有很多硬盘,可以先用fdisk -l
查看所有硬盘名称,然后用cfdisk /dev/XXX
处理相应硬盘。
如果是BIOS启动模式,首先删掉所有现有分区,然后新建两个分区,一个至少512M的swap分区,一个用掉所有剩余空间的分区。用type
设定各个分区的格式,swap
分区设定为82 Linux swap / Solaris
,另一个分区取默认值83 Linux
。
【UEFI启动模式】如果是UEFI启动模式,同样删掉所有现有分区,然后新建三个分区,一个超过260M的boot分区,一个至少512M的swap分区,最后一个分区用掉所有剩余空间。用type
设定各个分区的格式,swap
分区设为82 Linux swap / Solaris
,boot
分区设为EFI System
,剩下的分区设为Linux root x86_64
。
选择write
写入分区表,在出现的对话框中用yes
确认写入后退出cfdisk
。分区完成以后就要格式化一下硬盘,那个略大于512M的分区格式化为swap,命令如下
mkswap /dev/sdXY
swapon /dev/sdXY
这里面的sdXY
要按照自己的实际情况来填,在我的例子当中我只有一个硬盘,同时swap分区是放在sda2
分区的,这里我的参数就是/dev/sda2
。然后再格式化我的/dev/sda1
,相应的命令是mkfs.ext4 /dev/sda1
。如果分了更多的区,那就要依次进行格式化。这个格式化操作会比较慢一些,略微等一下就好。如果不记得自己的分区表了,可以用cfdisk
或fdisk -l
检查一下自己的分区表,可以从容量和类型等属性来判断具体某个分区是干什么用的。
【UEFI启动模式】如果是UEFI启动模式,boot
分区要格式化为FAT32
分区。
mkfs.cvfat -F32 /dev/XXX
格式化完成以后就要挂载硬盘,因为这个时候的系统是运行在U盘里的,而你要对电脑的硬盘进行操作,显然需要挂载一下,相当于把硬盘当成大号U盘插到小u盘上面。命令当中的/dev/sdXY
需要根据实际情况设置为自己的根目录,也就是那个比较大,占掉所有剩余空间的硬盘分区。
mount /dev/sdXY /mnt
【UEFI启动模式】如果是UEFI启动模式,需要在/mnt
下新建一个boot
文件夹,然后把boot
分区挂载到该文件夹下。如果有更多硬盘,也可以在这个时候用同样的方法挂载上来。
mkdir /mnt/boot
mount /dev/XXX /mnt/boot
正式安装
选择合适的镜像源,使用vim打开/etc/pacman.d/mirrorlist
,找一个感觉速度比较快的镜像源用dd
切掉,gg
到首行按p
粘贴一下,然后:wq
存储并退出。这样在安装软件的时候,网速就会比较快了。当然也可以直接使用清华镜像源,请参考如下帮助文档。
调整完镜像源以后,可以刷新一下软件包缓存:
pacman -Syy
现在可以正式开始安装系统了,安装系统使用pacstrap
,输入如下命令安装一些基础包:
pacstrap /mnt base linux linux-firmware base-devel
除了这些包以外,我们还可以安装许多其他的包,比较重要的是一定要安装一个网络管理器和一个文本编辑器,否则新系统启动后连不上网或者是改不了配置文件就傻了。
pacstrap /mnt networkmanager dhcpcd vim
networkmanager
提供nmcli
(命令行工具)和nmtui
(文本界面工具)用来联网,dhcpcd
用来动态获取ip地址,vim
用来编辑配置文件。只要能连上网,别的软件都可以晚点装,目前装这么多东西就足够开机了。需要等待安装过程完成以后,再执行后续的操作,现在可以出去上个厕所先。
生成分区表:
genfstab -U /mnt >> /mnt/etc/fstab
如果挂载了其他的硬盘,那么这一步会把他们的相关信息写入配置文件,开机启动后会自动完成硬盘挂载。如果在前面的操作当中没有挂载其他硬盘,系统便不会把相关信息写入配置文件,系统启动后如果想要使用其他硬盘,还需要手动挂载。
进入新系统:
arch-chroot /mnt
设置时区(当然了,如果不在国内肯定就不设置上海的时区了哈):
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
设置硬件时间
hwclock --systohc
本地化设置,使用vim
打开/etc/locale.gen
,把en_US.UTF-8 UTF-8
和zh_CN.UTF-8 UTF-8
取消注释,保存退出。运行下面两条命令:
locale-gen
echo LANG=en_US.UTF-8 >> /etc/locale.conf
注意到这里设置的是en_US.UTF-8
,这是因为中文在终端中可能会被显示为方块块。
设置网络(这里的myhostname
取一个自己喜欢的名字):
echo myhostname >> /etc/hostname
使用vim
打开/etc/hosts
,在里面输入下面三行内容(myhostname
换成上面自己取的名字,localdomain
随便取一个自己喜欢的组织名):
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname.localdomain myhostname
设置root用户的密码(连输两遍,输入时无显示):
passwd
intel
的CPU安装intel-ucode
,amd
的CPU安装amd-ucode
。如果不太确定自己的cpu型号,可以安装一个neofetch
,然后使用neofetch
查看。
# 可选项
pacman -S neofetch
neofetch # 查看cpu和显卡信息
# 必选项
# 但是需要根据实际情况安装其中某一个就可以了
pacman -S intel-ucode
pacman -S amd-ucode
对于BIOS
启动模式,安装grub
用来启动系统,注意sdX
后面没有数字:
pacman -S grub
grub-install --target=i386-pc /dev/sdX
grub-mkconfig -o /boot/grub/grub.cfg
【UEFI启动模式】对于UEFI启动模式,需要同时安装grub
和efibootmgr
。
pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
退出系统,准备关机了:
exit
卸载刚刚挂载上来的硬盘(卸载失败也无所谓,不强求):
umount /mnt
重启电脑(黑屏的时候记得拔掉U盘,或者是在启动前重新进BIOS设置启动顺序):
reboot
进入系统
开机后显示这样的画面,就说明我们已经成功地安装好Arch Linux系统了。
登录的时候输入root
作为用户名,密码自然是自己在安装系统的时候设置好的密码。
安装完成后
在使用NetworkManager
联网之前,先启动必要的后台服务,然后用nmcli
或nmtui
(推荐)联网就可以了。
systemctl start NetworkManager
systemctl enable NetworkManager
systemctl start dhcpcd
systamctl enable dhcpcd
连接上互联网以后,我们需要创建一个普通用户账号,一直使用root
不太好。username
可以改成自己喜欢的用户名,-m
表示创建用户的家目录~
,-G
表示把用户放进wheel
这个组。
useradd -m -G wheel username
创建完用户以后,设置一下该用户的密码:
passwd username
为了让新创建普通用户能够获得管理员权限,安装sudo
包:
pacman -S sudo
安装完毕以后,使用vim打开/etc/sudoers
,找到%wheel ALL=(ALL) ALL
这一行取消注释,然后使用:wq!
强制改写该文件,使得wheel
这个组内的用户都可以使用sudo
。
使用exit
退出root
帐号,用普通用户登录系统后就可以正式开始使用archlinux系统了。