摘要:在使用uefi引导的小米Air12.5英寸笔记本上安装Archlinux并作为本机的唯一操作系统。

1 准备工作

首先你要获得一个Archlinux的iso文件,这个文件可以从Archlinux官方网站下载,也可以从清华大学开源镜像站或者中科大开源镜像站下载。需要注意的是,ArchLinux是一个滚动更新的发行版,这意味着如果你的iso是很久之前下载的那么安装会变得毫无意义,所以请一定现用现下!

其次你需要一个U盘来承载安装文件,当然如果你使用光盘来引导也可以。你还需要一个能够运行windows、linux或者macOS的计算机来制作引导U盘,你可以将这个盘视为windows下的PE。

此外,你还需要一个速度较快的无线或者有限网络链接。注意,如果你的网络链接需要从浏览器登录账号密码才能连接外网(如多数校园网)请提前使用路由器或其他设备登录网络。Archlinux的引导盘是完全命令行操作的!

2 制作Archlinux引导U盘

2.1 如果你有一台能使用的windows电脑:

下载并安装ultraiso软件(软碟通),试用版即可。使用软碟通打开Archlinux的iso文件(注意,windows7、10用户需要右键以管理员权限来启动软碟通)

插入盘并格式化为Fat32格式。在软碟通中选择启动菜单中的写入硬盘映像,写入方式为RAW。写入并等待完成即可。

2.2 如果你有一台能使用的macOS/linux电脑:

首先在终端中查看U盘路径,连上U盘,确认能访问之后

1
2
3
4
5
6
7
8
9
10
11
df -h
Filesystem Size Used Avail Use% Mounted on
dev 1.9G 0 1.9G 0% /dev
run 1.9G 920K 1.9G 1% /run
/dev/sda3 113G 17G 91G 16% /
tmpfs 1.9G 28M 1.9G 2% /dev/shm
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
tmpfs 1.9G 88K 1.9G 1% /tmp
/dev/sda1 487M 132K 486M 1% /boot/efi
tmpfs 383M 16K 383M 1% /run/user/1000
/dev/sdb1 29G 9.7G 20G 34% /run/media/spacexi/data

可以从容量上判断U盘前面对应的Filesystem路径,比如上述U盘是/dev/sdb1

然后我们卸载当前U盘

1
sudo umount /dev/sdb #注意是sdb不是sdb1,根据你的实际路径自行修改

将archlinux的iso文件写入U盘

1
sudo dd if=archlinuxiso的路径 of=/dev/sdb

等待写入完成即可。

3 硬盘分区

从U盘引导启动电脑,默认进入登录窗口,输入root完成登录。

查看当前硬盘:

1
2
3
4
5
6
7
8
9
10
11
12
13
fdisk -l
Disk /dev/sda: 119.2 GiB, 128035676160 bytes, 250069680 sectors
Disk model: SAMSUNG MZNLN128
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 38658ACF-D87B-4718-912E-94926E779F62

Device Start End Sectors Size Type
/dev/sda1 2048 999423 997376 487M EFI System
/dev/sda2 999424 9000959 8001536 3.8G Linux filesystem
/dev/sda3 9000960 250066943 241065984 115G Linux filesystem

可以看到我的主硬盘是sda,那么我们就要对sda硬盘进行分区操作了。分区工具有很多,可以使用fdisk本身,也可以使用parted,这里我们使用parted:

1
parted /dev/sda

分区之前我们先清空整个硬盘并新建一个gpt分区表:

1
(parted)mklabel gpt #(parted)说明已经进入parted内,前缀不需要你打进去

这里说明一下,使用uefi引导的操作系统一定需要一个efi分区,对于linux来说本身还需要一个/分区作为挂载点。所以最简单的方式我们需要一个大概300m的efi分区和一个/,如果你需要休眠或者内存比较小的话还需要一个swap分区。

1
2
3
4
5
(parted)mkpart primary 2048s 512M #创建一个小分区当efi使用
(parted)mkpart primary 512 4608M #创建一个4G分区当swap使用
(parted)mkpart primary 4608M -1 #剩余全部空间当做/分区使用
(parted)set 1 boot on #将分区1设定为可启动
(parted)q #退出

回到bash,可以使用lsblk -l来查看分区是不是和想要的一样,然后就可以格式化分区了:

1
2
3
mkfs.vfat -F32 /dev/sda1 #格式化efi分区为fat32格式
mkswap /dev/sda2 #设置swap分区
mkfs.ext4 /dev/sda3 #格式化/分区为ext4格式

到此,分区完成,可以准备安装操作系统了。

4 安装Archlinux基本系统

其实linux系统的安装更接近于拷贝,所以第一步我们需要挂载分区:

1
2
3
4
5
6
mount /dev/sda3 /mnt #挂载sda3到/mnt,sda3是以后的/
cd /mnt
mkdir -v boot usr var home
cd boot
mkdir efi
mount /dev/sda1 /mnt/boot/efi

如果你使用有线网络,那么arch会启动联网,如果使用无线网络你需要先连上wifi才能进行下一步:

1
wifi-menu

在进行安装之前我们先要把软件源定位到国内:

1
nano /etc/pacman.d/mirrorlist

建议将清华或者中科大的源站粘贴出来放到最上面,快捷键Ctrl+K=剪切,Ctrl+o=写入,Ctrl+q=退出。

下面让我们开始安装基本系统吧

1
pacstrap -i /mnt base base-devel

等待安装完成后我们还需要更新一个fstab,fstab就是告诉linux系统你的每个分区都挂载在哪个位置的:

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

好了,基本系统安装完成了。不过现在这个系统还不能启动,我们还需要对系统进行进一步的设置。

5 配置你的Arch

Linux的好处是不需要启动当前系统也能进行配置,主要通过chroot来完成。首先我们要chroot进入硬盘的系统:

1
chroot /mnt

然后就开始配置啦,先是语言,这个语言指的是字符编码,删掉/etc/locale.gen中你想要的语言前面的#,比如zh-CN.UTF-8。后面的UTF-8是字符编码的意思,推荐这几个en_US.UTF-8,zh_CN.UTF-8,zh_CN.GBK,zh_TW的编码你看着办吧。命令:

1
/etc/locale.gen

然后重建语言编码表:

1
locale-gen

下面配置时间:

1
2
ln -S /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #设置时间为中国标准时间
hwclock --localtime #同步本地时钟

设置你的主机名,类似windows中的计算机名:

1
echo 主机名 > /etc/hostname

设置显示语言,在能启动桌面前强烈建议英文环境以避免不必要的麻烦

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

更新pacman包管理器,没这货的话你装不了软件的

1
pacman -Syu

然后装几个重要软件:

1
2
pacman -S dialog wpa_supplicant #没它你重启就连不上wifi啦
pacman -S grub efibootmgr os-prober #用来引导双系统,如果只用linux单一系统可以不考虑

最后准备处理引导吧:

1
2
grub-install --efi-directory=/boot/efi --bootloader-id=grub
grub-mkconfig -o /boot/grub/grub.cfg

顺带记得添加一个非root用户:

1
2
3
useradd -m -g users -G wheel -s /bin/bash 用户名
passwd #给root设置密码
passwd 用户名 #给刚刚添加的用户设置密码

让我们重启吧,记得拔掉U盘

1
reboot

6 第一次进入Arch

重启后进入的还是和之前一样的字符界面,为了方便建议继续使用root登录,不过这时候已经不需要U盘啦。让我们把Arch完善起来吧。

1
2
3
4
5
6
wifi-menu #联网不解释
pacman -Syu #更新一下pacman
pacman -S xf86-video-intel #安装intel集成显卡驱动,非intel显卡不要装
pacman -S pacman -S xf86-video-amdgpu #安装AMD集成显卡驱动,非AMD显卡不要装
pacman -S xf86-input-synaptics #触控板驱动
pacman -S xorg xorg-xinit xterm #xorg服务,没它就启动不了图形界面

关于显卡驱动,你还可以用如下方式确定显卡驱动包的名字:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# lspci | grep VGA    # 确定显卡型号
# pacman -S <驱动包>
#
# # 官方仓库提供的驱动包:
# # +----------------------+--------------------+--------------+
# # | | 开源 | 私有 |
# # +----------------------+--------------------+--------------+
# # | 通用 | xf86-video-vesa | |
# # +----------------------+--------------------+--------------+
# # | Intel | xf86-video-intel | |
# # +--------+-------------+--------------------+--------------+
# # | | GeForce 9+ | | nvidia |
# # + +-------------+ +--------------+
# # | nVidia | GeForce 8/9 | xf86-video-nouveau | nvidia-340xx |
# # + +-------------+ +--------------+
# # | | GeForce 6/7 | | nvidia-304xx |
# # +--------+-------------+--------------------+--------------+
# # | AMD/ATI | xf86-video-ati | |
# # +----------------------+--------------------+--------------

下面安装桌面环境:

1
2
pacman -S xfce4 xfce4-goodies #使用xfce4桌面环境,当然你也可以用别的
pacman -S lightdm lightdm-gtk-greeter #安装lightdm登录器

测试登录器能否正常启动:

1
systemctl start lightdm.service

如果能启动别登录,点关机按钮注销掉,或者直接重启也行。下面让我们把登录器加入自动启动:

1
systemctl enable lightdm.service

顺带安装一下声音:

1
pacman -S alsa-utils

注意,检查一下是否有问题,这里经常出问题

1
nano /lib/systemd/system/alsa-state.service

查看是否有如下字段,没有就加上

1
2
[Install]
WantedBy=multi-user.target

启动服务并设定为自启动:

1
2
systemctl start alsa-state.service
systemctl enable alsa-state.service

重启前推荐先搞定汉化问题和权限问题,省的重启都是小方块:

1
2
3
pacman -S wqy-microhei ttf-dejavu #安装中文字体
pacman -S sudo
nano /etc/sudoers

修改内容如下:

1
2
3
root    ALL=(ALL)       ALL
#新加入一行
你的用户名 ALL=(ALL) ALL

exit注销root登录,重新用之前创建的用户登录,从现在起root就被打入冷宫了,我们继续刚才没完成的汉化:

1
nano ~/.xprofile

添加如下内容:

1
2
export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:en_US

重启即可进入xfce4桌面环境了,当然这是一个非常基础的桌面环境。下一篇文章我们讲进一步配置这个桌面环境。