之前安装只过两次Arch,相对都还比较顺利。最近又帮同学安装了一次Arch,这次有了更深入的了解。这里说一下Arch的安装方法已经可能遇到的各种问题,希望可以有所帮助。

照理来说,只要按照arch的wiki上的Installation guide)一步一步的来应该就可以顺利安装上了,可是可能其中一些东西有人不是很理解。也有很多细节可能会忽略,最后导致没有安装成功。陷入了深深的疑惑之中

安装步骤

制作一个live cd启动盘

这算是大多系统安装的通用步骤吧,不管Windows还是通常的Linux发行版,第一步都是下载一个镜像然后用U盘做一个启动盘。下载只需要在科大镜像站之类的镜像站下个ISO就行了。就在archlinux/iso/latest目录下下载唯一一个iso文件就行了。md5sums.txt是各个文件的md5值,用于确保下载的文件是完全正确的。之前是Windows的话通常来说用UltraISO写到U盘里就行了,可是这里有一个问题就是写入类型不能像其他的一样选HDD什么的都行,这里必须得是raw格式。如果是linux系统就好办了,直接用dd命令就行了。Windows也可以用ddforwindows之类的软件。

从U盘启动

通常来说进boot列表选U盘就行了,可是不同引导方式其实也有区别。通常主板里可以选择是UEFI还是legacy BIOS。这个的区别就在于系统安装完之后引导的方式也不同,一个是通过执行MBR区的代码,一个则是执行ESP分区的代码。安装Arch需要你最后在安装引导程序的时候手动来决定。

两种方式进入live cd的操作选择界面也不一样,legacy BIOS启动会粗糙一些。不过引导的内容都一样。


从这部分开始就都是Installation guide)里的内容了

键盘布局

中国大陆都是用的美式布局,Arch默认就是美式布局,所以不要纠结这个了。

验证启动模式

就是”从U盘启动”那部分说的事情,这个步骤之前就该做了,如果你不确定可以通过运行ls /sys/firmware/efi/efivars来看目录下有没有文件来判断启动模式(如果目录下是空的或者不存在这个目录则是BIOS启动,否则是UEFI)

连接到因特网

安装Arch必须联网,如果插了网线而且上级有不需要验证的DHCP(比如说家里插了网线就有网的那种情况)的话应该直接就有网了,如果没有的话启动一下dhcpd就好了。如果是在学校需要有什么验证的话建议自己用手机开个热点,然后用wifi-menu来连上wifi来安装

可以通过curl ip.cn来判断自己有没有网。

更新系统时间

这个是为了确保正确使用https。直接执行timedatectl set-ntp true就好

建立硬盘分区

这个也是所有系统安装都会有的部分,一般都是图形界面装,Arch不过是用命令行工具装罢了,都是一样的。享受这个有趣的过程吧

我一般使用fdisk这个工具(fdisk的用法)

首先执行fdisk -l看一下自己的硬盘,然后通过fdisk /dev/sda之类的来选择操作哪个硬盘。如果是硬盘是NVME就使用fdisk /dev/nvme0n1这种就好了(NVME还有别的坑,后面再说)

以下是fdisk创建分区的用法

创建分区表:
Command (m for help): 输入 o 并按下 Enter
然后建立第一个分区:
Command (m for help): 输入 n 并按下 Enter
Partition type: Select (default p): 按下 Enter
Partition number (1-4, default 1): 按下 Enter
First sector (2048-209715199, default 2048): 按下 Enter
Last sector, +sectors or +size{K,M,G} (2048-209715199….., default 209715199): 输入 +15G 并按下 Enter
然后建立第二个分区:
Command (m for help): 输入 n 并按下 Enter
Partition type: Select (default p): 按下 Enter
Partition number (1-4, default 2): 按下 Enter
First sector (31459328-209715199, default 31459328): 按下 Enter
Last sector, +sectors or +size{K,M,G} (31459328-209715199….., default 209715199): 按下 Enter

这里说一下怎么分区,通常来说不用分很多区。分一个/boot一个/swap一个/就行了。

boot分区用来放引导程序,GRUB那种。如果是UEFI需要一个ESP分区)。上面说建议分512M,其实我就分了100M,并无所谓。BIOS也可以用GRUB,所以不管咋样都先分100M给boot并没什么问题。只是格式不一样罢了

swap是内存满的时候用的,如果你的内存很大根本用不满不分也罢,如果你的硬盘太太差劲,被用来当内存也会很慢,所以swap分区通常都不需要很大,根据需要留一些做缓冲就好了。我的本本是16G内存,刚开始觉得够用,如今越发觉得不够用了。

其他的都给/就好了,如果还有别的硬盘则完全没必要分区

格式化分区

swap使用mkswap /dev/sdxy swapon /dev/sdxy命令设置

/分区使用ext4就行

挂载分区

先挂载/分区,按之前的顺序就是第三个分区是/分区。mount /dev/sda3 /mntmount /dev/sda1 /mnt/boot就行。如果还有其他的硬盘再依次挂载到对应的位置上。这里之后就可以使用genfstab了,不过教程上放在了后面就后面再说吧


这里是安装的部分了

选择镜像

编辑/etc/pacman.d/mirrorlist这个文件,livecd带很多编辑器。这里用vim就行了。开始这个文件会有全世界所有的arch镜像,这里把除了需要的都删了就行,留几个中国的就行了,比如科大的,清华的,网易的都行。

安装基本系统

运行pacstrap -i /mnt base base-devel,这就是arch的基本带的包了。接下来就是漫长的等待安装过程,这个过程在所有系统的安装里都会很长。那段时间干的就是这个事情。把基本系统写到硬盘里


以下是配置系统的部分

Fstab

genfstab -U /mnt >> /mnt/etc/fstab这是一个必须的操作,完成后cat /mnt/etc/fstab一下,确保正确,不缺少,也不重复

Chroot

arch-chroot /mnt change root到新装的系统,这时这些操作哦可以在重启正式进入系统之后在做,但是也可以先进行一些配置和必要的软件的安装。比如说用wifi的话一定要先装一波wifi-menu,在netctl包里,可能还会需要wpa_supplicant,dialog等包。

时区

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 设置时区为亚洲/上海

hwclock --systohc --utc 设置标准为UTC

Locale

编辑/etc/locale.gen文件,把可能用到的语言的字符集前面的#去掉即可。中文和英文的UTF8都取消注释就行,然后运行locale-gen生成

echo LANG=en_US.UTF-8 > /etc/locale.conf设置本地化,终端下必须英文,图形界面下可以设中文,但是得面对着不完整的汉化,就是有的是中文有的是英文

主机名

echo 主机名 > /etc/hostname

Root 密码

passwd 设置root密码,创建新用户以及安装sudo这个事情可以之后在做

安装引导程序

由于我对于引导的不了解,通常会在这最后一个步骤上栽跟头,可能会重启几次发现进不去然后再进livecd再重新挂载,change root调整好几次。而且我貌似不是一个人,一个北大的朋友也问过我这个问题,我当时也是没法解决。

这个步骤主要就是安装GRUB)

上来先尝试直接grub-install --target=i386-pc /dev/sda,如果没有报错执行grub-mkconfig -o /boot/grub/grub.cfg生成配置,然后就可以尝试重启了。

如果不行可以尝试”安装到分区上或者无分区磁盘上”这部分

1
2
3
4
5
6
chattr -i /boot/grub/i386-pc/core.img
grub-install --target=i386-pc --debug --force /dev/sda1
chattr +i /boot/grub/i386-pc/core.img

pacman -S linux
grub-mkconfig -o /boot/grub/grub.cfg

如果没有报错可以再次尝试重启从硬盘启动了。

如果实在不行可以尝试安装Syslinux)


如果成功的从硬盘启动的系统,就可以算是完成了arch的安装了。

之后要做的事情

官方的General recommendations)给了通常要做的事情的列表

安装一些必备的软件

zsh 是一个比bash更好的shell,再使用oh-my-zsh可以很大程度的提高自己的生活质量

创建用户

useradd -m -g users -G wheel -s /bin/zsh 用户名 创建用户

passwd 用户名 设置密码

pacman -S sudo 安装sudo

visudo 修改sudo配置,把%wheel ALL=(ALL) ALL之前的#去掉,然后保存刚刚创建的用户就可以使用sudo了


之后就可以按照喜好安装Gnome KDE Awesome之类的图形界面了。然后还要安装一下chrome 输入法等必备的软件。这些都还是挺简单的,再说一下怎么安装yaourt吧,只有用上了aur才可以算是用上了arch

安装yaourt

/etc/pacman.conf的最后添加国内的镜像地址

1
2
3
[archlinuxcn]
SigLevel = Optional TrustedOnly
Server = http://repo.archlinuxcn.org/$arch

执行sudo pacman -Sy同步仓库,然后sudo pacman -S yaourt就可以啦