重度强迫症患者不能接受ubuntu系列的预装软件,笔记本没有网线接口server版的装了也没用(不知道为什么就算我用usb转接也还是不识别提示unknown device)
于是乎我便在周末花了一整天折腾了一下archlinux,中途重装了几次,还是很难调教的……在此记录一下。

环境:Dell XPS-9360 UEFI+rEFInd+Windows10+Archlinux(KDE)双系统
参考资料:

注意:本文有些部分需要根据实际情况填写,切勿照搬教程!!!

安装前准备

  1. 首先是一个U盘,用rufus把iso弄进去(GPT分区表),我这里必须要DD模式才行,要不然就是不识别。
  2. 然后划出一部分硬盘,我原先装windows时就留了50G正好,注意只要保持黑色的未分配就行。
  3. 重启进入UEFI,关掉secure boot,硬盘模式调成AHCI
  4. 重启按F12选USB的启动项然后选择Arch就进入安装模式了。

安装系统

Step1:分区

警告:该部分极其重要,请仔细核对您的代码,清楚理解您将要干的事情,提前备份好文件。

先看一下分区

fdisk -l

我这块硬盘叫/dev/nvme0n1,然后进入parted

parted /dev/nvme0n1

防止分界点出现问题先改一下单位

unit MB

查看分区情况

p

这里显示的就是各个分区占用的位置,我留了50G的空间,中间会有一段不是连续的,所以我们就用这里了。

mkpart

然后输入名称、文件系统(ext4)、开始结束点(保险起见前后各留了1MB的空闲空间)
再看一下

p

看到原来不连续的中间多出了一块/dev/nvme0n1p11,这就是我们分好的了。接着格式化刚才分好的分区

执行此操作前务必保证输出信息符合预期!

mkfs.ext4 /dev/nvme0n1p11

然后退出parted

quit

Step2:安装内核

这里为了避免联网的麻烦,我直接用网线接到路由器上然后通过USB转接上电脑,这样可以不用配置直接联网

首先挂载刚才分好的区

mount /dev/nvme0n1p11  /mnt

因为我们是EFI引导,也要把EFI分区挂载上,这里我们采取了挂载到/mnt/boot/efi的方法

mkdir -p /mnt/boot/efi
mount /dev/nvme0n1p1 /mnt/boot/efi

然后改一下源,不知道为什么我这里没有注释,先全部注释掉然后只开启中国的源

vim /etc/pacman.d/mirrorlist
:1,$s/Server/# Server/g

然后就是安装了

pacstrap /mnt base

生成fstab文件

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

保险起见最好再看一下

cat /mnt/etc/fstab

里面应该有一个/dev/nvme0n1p11的UUID和ESP分区
然后进入系统

arch-chroot /mnt

Step3:基础设置

修改时区

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

设置时间标准

hwclock --localtime --systohc

也可以改成UTC,这里是为了和windows兼容

vi不太好用,先装一下vim

pacman -S vim

本地化

vim /etc/locale.gen

en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8的注释去掉
然后生成locale信息

locale-gen

提交本地化选项

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

不推荐在此设置任何中文locale,或导致tty乱码。

修改主机名

echo imwxz > /etc/hostname

添加到hosts

vim /etc/hosts

文件,中间一个tab分隔:

127.0.0.1	localhost.localdomain	localhost
::1         localhost.localdomain	localhost
127.0.1.1	imwxz.localdomain	    imwxz

设置一下root密码:

passwd

为了方便重启之后联网,这里先装好

pacman -S networkmanager
systemctl enable NetworkManager.service

Step4:多系统配置

现在还不能重启,安装rEFInd

pacman -S refind-efi
refind-install

然后这里不要按照其他先安装linux的方法走,我尝试了半天重启后都进不了系统,最后还是看原版的wiki才发现了这么一句话(强烈谴责翻译的人)

When refind-install is run in chroot (e.g. in live system when installing Arch Linux) /boot/refind_linux.conf is populated with kernel options from the live system not the one on which it is installed. You will need to edit /boot/refind_linux.conf and adjust the kernel options manually. See #For kernels automatically detected by rEFInd for an example.

简单来讲就是需要手动修改一下

vim -o2 /boot/refind-linux.conf /etc/fstab

refind-linux.conf第一项修改一下:(UUID是安装分区/dev/nvme0n1p11的)

"root=UUID=XXX rw quiet"

如果你觉得默认的难看可以换个皮肤,这里推荐 https://evanpurkhiser.com/rEFInd-minimal/这个相当漂亮的皮肤,安装过程里面有,就不复述了,当然里面的启动配置也可以改,网上搜搜就有。

现在可以ctrl+d然后重启啦

reboot

安装后配置

首先修复一下rEFInd的配置

rm /boot/refind-linux.conf
refind-install

然后设置一下用户名

useradd -m -G wheel -s /bin/bash imwxz
passwd imwxz

添加一下archlinuxcn源

vim /etc/pacman.conf

添加

[archlinux]
SigLevel=Optional TrustAll
Server=https://mirrors.ustc.edu.cn/archlinuxcn/$arch

接着安装各种软件

pacman -Syn yaourt ntp sudo
systemctl enable ntpd.service
visudo

然后去掉%wheel ALL=(ALL)ALL的注释,保存退出

继续安装

pacman -S intel-ucode xf86-input-synaptics
vim /boot/refind-linux.conf

给第一项最后加上

initrd=/boot/initramfs-linux.img initrd=/boot/intel-ucode.img

桌面环境的安装

这里我用的是KDE的环境,由于不喜欢全家桶,只装了基础包plasma-desktop

pacman -S xorg-server xorg-xinit plasma-desktop sddm
systemctl enable sddm

然后挑一些配套和例如蓝牙配置等的装一下,具体自行在这里挑:https://www.archlinux.org/groups/x86_64/plasma/

修复windows

由于之前硬盘默认是RAID模式,修改成AHCI就运行不起来了,虽然重装可以解决问题,但是相信一个正常人都不会去重装的……(又要折腾)网上搜了一下,果然有解决办法

  1. 进windows看一看,没有意外的话是无法启动的
  2. 进UEFI,把硬盘模式修改回RAID,然后进入windows
  3. 点击“设置”-“更新和安全”-“恢复”-“高级启动”下的立即重启
  4. 进入windows修复界面,选【疑难解答】-【高级选项】-【启动设置】-【重启】
  5. 启动好之后就可以再次重启进入UEFI把硬盘模式改回去了,然后可以试试看,可以进windows了吧!

折腾之路永不停息……

重启进入archlunux,现在你的系统已经跑起来啦!然而要折腾的路还很长……例如蓝牙、声卡驱动,中文字体这些都需要你去搞……详细可以参考archwiki(真的很详细)
https://wiki.archlinux.org/index.php/General_recommendations
https://wiki.archlinux.org/index.php/List_of_applications

到这里教程就结束啦!装Arch真的是个体力活,就像盖房子,啥都要自己搞,不像ubuntu一键入住……然而也正因如此,你的系统里不会有ubuntu里的各种全家桶和不需要的东西,强迫症患者福音!