在Surface笔记本上安装Arch Linux全过程

系统安装

安装参考:archlinuxcn.org

设置网络

这里以WIFI举例,主要使用iwctl进行配置,记住这个命令就行

有线的更简单,直接就是有网的

其他网络配置参见archlinuxcn

(通过rfkill list查看网卡是否被禁用,如果被禁用,输入rfkill unblock wifi取消禁用WIFI设备)

输入ip link,如果看到<..., LOWER_UP>字样(后面的红字DOWN不用管,连上WIFI后会变成绿色的UP)说明系统已经启用了网络接口,如果被禁用,输入ip link set [interface] up,其中[interface]是你的接口名,比如wlan0

通过iwctl配置WIFI,下面的[WIFI]改成你的WIFI名

# 列出设备
device list
# 扫描WIFI
station wlan0 scan
# 列出WIFI网络
station wlan0 get-networks
# 连接WIFI
station wlan0 connect [WIFI]
# 接着输入密码
# 查看状态,显示connected
device wlan0 show
# 输入help查看帮助,输入exit退出

这时候再输入ip link就会有一个绿色的UP了。

最好再ping一下以防万一。

ping -c 3 archlinux.org

更新系统时间

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

timedatectl set-ntp true

可以使用 timedatectl status 检查服务状态。

更换源

# 自动配置 在国内的 最新的(最多)20个 按速度排序 协议为HTTPS的源 保存到/etc/pacman.d/mirrorlist中
reflector --country China --latest 20 --sort rate --protocol https --save /etc/pacman.d/mirrorlist
# 这个文件会被写入新系统中,还请仔细检查
cat /etc/pacman.d/mirrorlist
# 同步仓库
pacman -Syy

硬盘分区

这里仅展示最简单的硬盘分区(一个UEFI引导分区,一个Linux System分区还有一个swap交换分区),还请以实际情况为准

输入lsblkfdisk -l显示磁盘及分区,找到你要分区的盘符,输入gdisk /dev/nvme0n1fdisk /dev/nvme0n1(更加推荐cfdisk /dev/nvme0n1,可视化操作界面)开始分区。

知道要分哪些区,分多大,什么格式,原理都是相通的,只是命令不一样罢了。这里以gdisk为例:

o # 新建GPT分区表(清空原来所有的分区)
n
# 两次回车
+512M
ef00 # EFI
n
# 两次回车
+228.9G
# 回车,默认Linux filesystem
n
#三次回车(把磁盘剩余空间分完)
8200 # swap分区
p # 打印检查
w # 写入
Y # 保存退出

分区格式化

# 根分区 ext4
mkfs.ext4 /dev/nvme0n1p2
# 交换分区 swap
mkswap /dev/nvme0n1p3
# 引导分区 fat32
mkfs.fat -F 32 /dev/nvme0n1p1

挂载分区

# 一定要先挂载根分区
mount /dev/nvme0n1p2 /mnt
# boot还不存在,需要先创建,也可以是/mnt/efi或者/mnt/boot/efi
mkdir -p /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot/efi
swapon /dev/nvme0n1p3

# 检查一下分区大小,格式,挂载点
lsblk -f

注意: 挂载分区一定要遵循顺序,先挂载根(root)分区(到 /mnt),再挂载引导(boot)分区(到 /mnt/boot/mnt/efi,如果单独分出来了的话),最后再挂载其他分区。否则您可能遇到安装完成后无法启动系统的问题。

安装内核

pacstrap /mnt base linux linux-firmware vim
# 这时候/mnt目录里就会有很多文件夹了
# 后面需要配置很多文件,最好下个vim

配置系统

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

# 写入分区挂载顺序、挂载点等信息
genfstab -U /mnt >> /mnt/etc/fstab

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

切换root

Change root 到新安装的系统,这时候就相当于我们登陆到了这个系统里面:

arch-chroot /mnt

Root 密码

设置 Root 密码,不然到时候登不进去:

passwd

设置时区

要设置时区

# ln -sf /usr/share/zoneinfo/Region(地区名)/City(城市名) /etc/localtime

提示: 以要设置为上海时区为例,请运行 # ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

然后运行 hwclock(8) 以生成 /etc/adjtime

hwclock --systohc

这个命令假定已设置硬件时间为 UTC 时间。详细信息请查看 System time#Time standard

本地化

程序和库如果需要本地化文本,都依赖 Locale,后者明确规定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。

需在这两个文件设置:locale.genlocale.conf

编辑 /etc/locale.gen,然后取消掉 en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8前的注释。

接着执行 locale-gen 以生成 locale 信息:

locale-gen

然后创建 locale.conf(5) 文件,并 编辑设定 LANG 变量,比如:

# /etc/locale.conf
LANG=en_US.UTF-8
# LANG=zh_CN.UTF-8 # 如果想用中文的话(不推荐中文)

这两个配置文件中的内容必须一致,否则会出现错误!

网络配置

创建 hostname 文件(会显示在命令提示符前面那一串里面,比如[root@hostname ~]):

# /etc/hostname
myhostname

添加对应的信息到 hosts(5):

# /etc/hosts
127.0.0.1	localhost
::1			localhost
127.0.1.1	[myhostname].localdomain	[myhostname] # 主机名.本地域名 主机名

如果系统有常设的 IP 地址,请使用这个常设的 IP 地址而不是 127.0.1.1

请注意,目前的 base 不含有任何网络管理工具。对于新安装的系统环境,请接着完成网络配置,配置过程中可能包括要安装合适的网络管理软件。

pacman -S networkmanager # 后面用来设置网络

安装引导程序

需要安装 Linux 引导加载程序,才能在安装后启动系统,可以使用的的引导程序已在 启动加载器 中列出,请选择一个安装并配置它,GRUB (简体中文) 是最常见的选择。

如果有 Intel 或 AMD 的 CPU,请另外启用 微码 更新。

警告: 这是安装的最后但也至关重要的一步,请按上述指引正确安装好引导加载程序后再重新启动。否则将无法正常进入系统。

代码如下:

pacman -S grub efibootmgr intel-ucode
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id="Arch Linux"
vim /etc/default/grub # 看自己喜好修改一些参数(可选)
grub-mkconfig -o /boot/grub/grub.cfg # 生成GRUB配置文件;自动发现微代码并自动更新GRUB
systemctl enable NetworkManager
exit

重启

输入 exit 或按 Ctrl+d 退出 chroot 环境。

可选用 umount -R /mnt 手动卸载被挂载的分区:这有助于发现任何「繁忙」的分区,并通过 fuser(1) 查找原因。(比如在/mnt目录里卸载自己)

最后,通过执行 reboot 重启系统,systemd 将自动卸载仍然挂载的任何分区。不要忘记移除安装介质,然后使用 root 帐户登录到新系统。

cd / # 不要在/mnt里umount /mnt!
umount -R /mnt
reboot

系统完善

系统管理引导,图形用户界面的安装、声音管理、触摸板支持等后期工作参见 General recommendations (简体中文)

感兴趣的各类程序,请参见 List of applications (简体中文)

连接网络

以WIFI为例:

nmtui
# 进入NetworkManager
# 选activate a connection
# 然后输入密码就行

更新时间

# 同步时间(需要网络)
timedatectl set-ntp true
# 确认一下时间对不对
timedatectl status

更新源

# 如果没有换过源的话
pacman -S reflector
reflector --country China --latest 20 --sort rate --protocol https --save /etc/pacman.d/mirrorlist
# 检查内容无误
cat /etc/pacman.d/mirrorlist

# 添加第三方源
vim /etc/pacman.conf
# 添加如下内容:
# 不要加SigLevel,我们使用默认的等级;下面三个随便选一个
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
# Server = http://repo.archlinuxcn.org/$arch
# Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

# 推荐写法-Syyu或-Syu或-S,不要使用-Syy或-Sy,即有y一定要有u
pacman -Syyu
# 可能会出现签名错误
pacman -S archlinuxcn-keyring

解决签名问题(可选)

要完成这些操作,请以 root 权限运行:

pacman -Syu haveged
systemctl start haveged
systemctl enable haveged

rm -fr /etc/pacman.d/gnupg
pacman-key --init
pacman-key --populate archlinux
pacman-key --populate archlinuxcn

# 再重新试一次
pacman -S archlinuxcn-keyring

参考:https://www.archlinuxcn.org/gnupg-2-1-and-the-pacman-keyring/

添加用户

useradd --create-home shang
passwd shang
usermod -aG wheel,users,storage,power,lp,adm,optical shang
id shang

# 添加必要的系统工具
pacman -S sudo
# 配置默认编辑器,这个只是临时的
export EDITOR=vim
visudo
# 找到 %wheel ALL=(ALL:ALL) ALL 这一行取消注释,保存退出

显卡驱动

AMD显卡

pacman -S xf86-video-amdgpu xf86-video-ati mesa vulkan-radeon

Intel显卡

pacman -S xf86-video-intel vulkan-intel mesa

英伟达显卡

pacman -S nvidia nvidia-settings nvidia-utils

音频驱动

pacman -S alsa-utils pulseaudio pulseaudio-bluetooth

打印机驱动

pacman -S cups

触摸板驱动

# pacman -S xf86-input-synaptics
# 上面这个包已经停止维护,Arch Linux官方推荐使用下面这个
pacman -S xf86-input-libinput libinput-gestures

蓝牙驱动

pacman -S bluez bluez-utils
systemd enable bluetooth.service
systemd start bluetooth.service

触摸屏驱动

以下是Surface解决方案,参考于linux-surface

添加签名密钥

curl -s https://gitee.com/SamLukeYes/linux-surface/raw/master/pkg/keys/surface.asc | sudo pacman-key --add -
pacman-key --finger 56C464BAAC421453
pacman-key --lsign-key 56C464BAAC421453

将下面的内容添加到/etc/pacman.conf文件的末尾。

[linux-surface]
Server = https://pkg.surfacelinux.com/arch/

下面开始安装:

pacman -Syu
pacman -S linux-surface linux-surface-headers iptsd
# 自启动
systemctl enable iptsd

如果你用的是Surface Pro 4, 5, 6, Book 1, 2, Laptop 1, 2,你还需要安装一个用于驱动WIFI的包

pacman -S linux-firmware-marvell

重启即可,使用screenfetch查看效果

pacman -S screenfetch
screenfetch
# 此时会看到右边Kernel含有surface字样说明驱动安装成功,可以使用触屏功能了
# Kernel: x86_64 Linux 5.16.10-arch1-1-surface

安装图形环境

# 建议先安装显卡驱动
pacman -S xorg

安装字体

# 英文字体
pacman -S ttf-dejavu ttf-droid ttf-hack ttf-font-awesome oft-font-awesome ttf-liberation ttf-linux-libertine ttf-opensans ttf-roboto ttf-ubuntu-font-family
# 中文字体
pacman -S ttf-hannom noto-fonts noto-fonts-extra noto-fonts-emoji noto-fonts-cjk adobe-source-code-pro-fonts adobe-source-sans-fonts adobe-source-serif-fonts adobe-source-han-sans-cn-fonts adobe-source-han-sans-hk-fonts adobe-source-han-sans-tw-fonts adobe-source-han-serif-cn-fonts wqy-zenhei wqy-microhei
# 使用FreeType2引擎渲染字体
vim /etc/profile.d/freetype2.sh
# 取消注释最后一行,保存退出

清除缓存

pacman -Scc
reboot

安装AUR助手

推荐安装paru,打开终端,输入以下命令:

sudo pacman -S git base-devel
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si

更多使用教程:https://zhuanlan.zhihu.com/p/350920414

安装配置aria2

加速下载Github文件

sudo pacman -S aria2
sudo vi /etc/pacman.conf

# 找到XferCommand这一行,添加如下内容:
XferCommand = /usr/bin/aria2c --allow-overwrite=true --continue=true --file-allocation=none --log-level=error --max-tries=2 --max-connection-per-server=2 --max-file-not-found=5 --min-split-size=5M --no-conf --remote-time=true --summary-interval=60 --timeout=5 --dir=/ --out %o %u

安装配置fish

sudo pacman -S fish

# 将下面这句命令加到~/.bashrc文件最后
# 注意,使用chsh -s /bin/fish是存在问题的,推荐下面的做法
[ -s /bin/fish ] && [ -z "$BASH_EXECUTION_STRING" ] && [[ $(ps --no-header --pid=$PPID --format=cmd) != "fish" ]] && exec fish

系统美化-Gnome

安装桌面环境

以GNOME为例:

pacman -S gnome gnome-extra gdm
systemctl enable gdm.service

添加输入法

安装命令:

sudo pacman -S fcitx5-im fcitx5-chinese-addons # 直接回车

添加环境变量:

欲在程序中正常启用 Fcitx5, 需设置以下环境变量,并重新登录:

vim ~/.pam_environment

GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE  DEFAULT=fcitx
XMODIFIERS    DEFAULT=\@im=fcitx
INPUT_METHOD  DEFAULT=fcitx
SDL_IM_MODULE DEFAULT=fcitx
GLFW_IM_MODULE DEFAULT=ibus

添加词库:

用{}括起有相同前缀的两个包,下面的包相当于:fcitx5-pinyin-zhwiki, fcitx5-pinyin-moegirl

sudo pacman -S fcitx5-pinyin-{zhwiki,moegirl}

安装完成即可使用,另外建议启用云拼音,来源选Baidu。

外观设置:

sudo pacman -S fcitx5-material-color
# 类似win10内置输入法风格

然后前往 Fcitx5设置 -> 配置附加组件 -> 经典用户界面 -> 主题 设置主题Material-Color-Teal

高分屏设置同样在这个窗口上:Use Per Screen DPI

重启即可使用。

其他:

参考:更多Fcitx5输入法

安装Gnome桌面扩展

# 进入Gnome扩展网站:https://extensions.gnome.org
# 点击安装浏览器插件
# 然后安装connector
git clone https://aur.archlinux.org/chrome-gnome-shell.git
cd chrome-gnome-shell
makepkg -si
# 之后便可在上述网站搜索安装所需插件

推荐的Gnome插件:

  1. ArcMenu 集成的应用程序菜单
  2. Blur my Shell 美化界面
  3. Dash to Dock 增强型Dock
  4. Just Perfection 控制面板的隐藏和显示
  5. Vitals 实时显示计算机硬件信息

Gnome的卸载

sudo systemctl disable gdm.service
sudo pacman -Rscn gnome gnome-extra gdm

系统美化-DWM

DWM是一个键盘驱动的窗口管理器,它的宗旨是尽可能地用键盘来代替鼠标的功能。

下载安装

# 依赖环境
# sudo pacman -S xorg xorg-server xorg-xinit

# 下载源码
git clone https://git.suckless.org/dwm
git clone https://git.suckless.org/st
git clone https://git.suckless.org/dmenu

修改快捷键

默认的主修饰键是Alt,可能会和某些应用程序中的快捷键冲突,所以这里将其修改为Super键

进入下载的dwm的源代码文件夹,编辑config.def.h

找到 #define MODKEY Mod1Mask中的Mod1Mask(即Alt键)替换为Mod4Mask(即Super键)。

编译安装

cd dwm
sudo make clean install
cd ../st
sudo make clean install
cd ../dmenu
sudo make clean install

安装一些工具

sudo pacman -S xorg-xinit feh udisks2 udiskie pcmanfm archlinux-wallpaper

编辑启动脚本

在启动dwm前进行一些个性化的设置

cp /etc/X11/xinit/xinitrc ~/.xinitrc
vim ~/.xinitrc
# 删除最后几行,从twm &开始
# 最后添加以下内容

# Input method
fcitx5 &
# Resolution
xrandr --output eDP1 --mode 2736x1824 --rate 59.96
# Wallpaper
feh --bg-fill --randomize /usr/share/backgrounds/archlinux/*
# execute dwm
exec dwm

# 保存退出

进入dwm

startx

自动识别U盘

sudo systemctl enable udisks2

更多软件

其中的yay可以换成paru

办公软件(WPS)

yay -S ttf-wps-fonts wps-office wps-office-mui-zh-cn wps-office-mime-cn ttf-ms-fonts cups

最后的话

人生苦短,我用Manjaro!

上一篇:server – add-apt-repository抛出Python错误:UnicodeDecodeError:’ascii’编解码器无法解码字节0xc5


下一篇:MacOS配置PHP环境时会遇到的问题(localhost不识别php文件,修改路径后显示403,找不到/Library/WebServer/Documents文件件)