Huawei Matebook e 2022 安装 archlinux 双系统
Huawei Matebook e 2022 安装 archlinux 双系统
安装之前
wifi 名称修改为英文+数字的,以防之后没法联网
准备好 U 盘并使用 GPT 分区表写入最新的 arch 镜像。
基础安装
开机按 F2
进入 UEFI/BIOS 设置,将 Secure Boot
(安全启动)关闭,按 F10 保存重启。
开机按 F12
进入启动菜单,选择 U 盘启动。
先按 e
在引导设置 nomodeset=0
Huawei Matebook e 2022款 Iris Xe 显卡问题
禁用 reflector 服务
将该服务禁用
1 | systemctl stop reflector.service |
检查是否成功禁用
1 | systemctl status reflector.service |
确认是否为EFI模式
1 | ls /sys/firmware/efi/efivars |
若输出了一堆东西,则说明已在 UEFI
模式。
联网
使用 iwctl
进行连接
1 | iwctl # 进入交互式命令行 |
测试网络连通性
1 | ping vanilla-chan.cn |
与 Windows 不同的是,需要按下 Ctrl
+ C
手动退出 ping
命令。
更新系统时钟
1 | timedatectl set-ntp true # 将系统时间与网络时间进行同步 |
更换国内软件仓库镜像源
1 | vim /etc/pacman.d/mirrorlist |
加入
1 | Server = https://mirrors.sustech.edu.cn/archlinux/$repo/os/$arch |
Arch Linux Mirror | SUSTech Open Source Mirrors
但是先别添加 archlinuxcn
源
分盘
显示当前分区情况
1 | lsblk |
注意这一步是看不到未分配空间的,下一步才能看到。主要是看一下硬盘的名字。
1 | cfdisk /dev/nvme0n1 |
使用上下左右键来移动分区和操作。
- 新建 Swap 分区,建议大小为电脑内存的60%或相等,按下回车。按上下键找到刚床的分区,按右键选择
Type
将类型修改为Linux swap
,回车。 - 再来一个分区(因为我这里打算使用
Brtfs
系统)。再次New
一个分区,类型不用变。 - 由于这电脑 EFI 分区空间不够,所以再创一个 EFI 分区。
选中 [Write]
并输入 yes
以写入分区表。[Quit]
退出 cfdisk
。
复查磁盘分区情况
1 | fdisk -l |
格式化并创建Btrfs子卷
由于是双系统,所以不能格式化 EFI 分区。
格式化 Swap 分区
1 | mkswap /dev/nvme0n1p8 |
格式化 EFI 分区
1 | mkfs.fat -F 32 /dev/nvme0n1p10 |
格式化 Btrfs 分区
1 | mkfs.btrfs -L myArch /dev/nvme0n1p9 |
其中 myArch
是该分区的 LABLE
,不能特殊字符和空格,最好有意义。
将 Btrfs
分区挂载到 /mnt
下
1 | mount -t btrfs -o compress=zstd /dev/nvme0n1p9 /mnt |
复查挂载情况
1 | df -h # -h 选项会使输出以人类可读的单位显示 |
创建 Btrfs 子卷。创建两个 Btrfs
子卷,之后将分别挂载到 /
根目录和 /home
用户主目录:
1 | btrfs subvolume create /mnt/@ # 创建 / 目录子卷 |
复查子卷情况
1 | btrfs subvolume list -p /mnt |
将 /mnt
卸载掉,以挂载子卷
1 | umount /mnt |
挂载
在挂载时,挂载是有顺序的,需要从根目录开始挂载。使用如下命令挂载子卷:
1 | mount -t btrfs -o subvol=/@,compress=zstd /dev/nvme0n1p9 /mnt # 挂载 / 目录 |
复查 Swap 分区挂载情况
1 | free -h # -h 选项会使输出以人类可读的单位显示 |
安装系统
使用 pacstrap
脚本安装基础包
1 | pacstrap /mnt base base-devel linux linux-firmware btrfs-progs |
以及其他软件
1 | pacstrap /mnt networkmanager vim nano sudo zsh zsh-completions |
生成 fstab 文件
使用 genfstab
自动根据当前挂载情况生成并写入 fstab
文件
1 | genfstab -U /mnt > /mnt/etc/fstab |
复查一下 /mnt/etc/fstab
确保没有错误
1 | cat /mnt/etc/fstab |
change root
1 | arch-chroot /mnt |
设置主机名与时区
首先在 /etc/hostname
设置主机名,比如 VanillArch
1 | nano /etc/hostname |
主机名不要包含特殊字符以及空格。
接下来在 /etc/hosts
设置与其匹配的条目
1 | nano /etc/hosts |
加入以下内容
1 | 127.0.0.1 localhost |
可以使用 Tab
对齐。
设置时区,在 /etc/localtime
下用 /usr
中合适的时区创建符号链接
1 | ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime |
硬件时间设置
将系统时间同步到硬件时间
1 | hwclock --systohc |
设置 Locale
Locale
决定了软件使用的语言、书写习惯和字符集。
编辑 /etc/locale.gen
,去掉 en_US.UTF-8 UTF-8
以及 zh_CN.UTF-8 UTF-8
行前的注释符号(#
)
1 | nano /etc/locale.gen |
用如下命令生成 locale
1 | locale-gen |
向 /etc/locale.conf
输入内容
1 | echo 'LANG=en_US.UTF-8' > /etc/locale.conf |
不推荐在此设置任何中文
locale
,会导致tty
乱码。
为 root 用户设置密码
1 | passwd root |
安装微码
1 | pacman -S intel-ucode # Intel |
安装引导程序
安装对应的包
1 | pacman -S grub efibootmgr os-prober |
安装 GRUB 到 EFI 分区
1 | grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH |
编辑 /etc/default/grub
文件
1 | nano /etc/default/grub |
进行如下修改:
- 去掉
GRUB_CMDLINE_LINUX_DEFAULT
一行中最后的quiet
参数 - 把
loglevel
的数值从3
改成5
。这样是为了后续如果出现系统错误,方便排错 - 加入
nowatchdog
参数,这可以显著提高开关机速度 - 为了引导 win10,则还需要添加新的一行
GRUB_DISABLE_OS_PROBER=false
最后生成 GRUB
所需的配置文件
1 | grub-mkconfig -o /boot/grub/grub.cfg |
完成安装
输入以下命令
1 | exit |
进阶安装
启动电脑,还是依然需要按 e
修改引导设置 nomodeset=0
,在 nowatchdog
那一行。
而且这样会导致之后图形化界面也很卡。
所以待会重新进行“基础安装中的“安装引导程序”:
- 在
GRUB_CMDLINE_LINUX=""
中添加nomodeset=0
,这样只有在引导时才会生效,之后不生效。 - 重新生成
grub
:grub-mkconfig -o /boot/grub/grub.cfg
,此时还会发现识别到了win11
的 EFI 分区。
联网
1 | systemctl enable NetworkManager |
查看 wifi 列表
1 | nmcli device wifi list |
连接 wifi
1 | nmcli device wifi connect wifiname password wifipassword |
如果有空格,可以用 \
表示空格。
升级
1 | pacman -Syu # 升级系统中全部包 |
配置 root 账户的默认编辑器
编辑 ~/.bash_profile
文件
1 | nano ~/.bash_profile |
在适当位置加入内容
1 | export EDITOR='nano' |
准备非 root 用户
通过以下命令添加用户,比如新增加的用户叫 Vanilla
1 | useradd -m -G wheel -s /bin/bash Vanilla |
使用 nano
编辑器通过 visudo
命令编辑 sudoers
文件
1 | EDITOR=nano visudo # 这里需要显式的指定编辑器,因为上面的环境变量还未生效 |
找到如下这样的一行,把前面的注释符号 #
去掉
1 | #%wheel ALL=(ALL:ALL) ALL |
开启 32 位支持库与 Arch Linux 中文社区仓库(archlinuxcn)
编辑 /etc/pacman.conf
文件
1 | nano /etc/pacman.conf |
去掉 [multilib]
一节中两行的注释,来开启 32 位库支持。
在文档结尾处加入下面的文字,来添加 archlinuxcn
源
1 | [archlinuxcn] |
Arch Linux CN Mirror | SUSTech Open Source Mirrors
去除 ParallelDownloads = 5
前的注释以打开多线程下载。
通过以下命令刷新 pacman
数据库并更新:
1 | pacman -Syyu |
安装 KDE Plasma 桌面环境
1 | pacman -S plasma-meta konsole dolphin |
kde 默认安装的是xorg,如果想使用wayland的话安装以下包
1 | pacman -S plasma-workspace xdg-desktop-portal |
配置并启动 greeter sddm
开启 sddm.service
守护进程
1 | systemctl enable sddm |
通过以下命令启动显示管理器或重启电脑,即可看到欢迎界面
1 | systemctl start sddm # 直接启动显示管理器,与以下reboot命令二选一即可 |
Ctrl+Alt+T
打开 Konsole。它是 KDE 桌面环境默认的终端模拟器。
联网,安装一些软件
1 | sudo pacman -S sof-firmware alsa-firmware alsa-ucm-conf # 声音固件 |
最后执行安装 archlinuxcn
源所需的相关步骤
1 | sudo pacman -S archlinuxcn-keyring # cn 源中的签名(archlinuxcn-keyring 在 archlinuxcn) |
若执行 sudo pacman -S archlinuxcn-keyring
报错,请查阅桌面环境与常用应用安装 | archlinux 简明指南 (icekylin.online)。
安装 edge
1 | yay -S microsoft-edge-stable |
检查家目录
检查家目录下的各个常见目录是否已经创建
若没有则需通过以下命令手动创建
1 | cd ~ |
配置非 root 账户的默认编辑器
使用 nano
编辑 ~/.bashrc
文件
1 | nano ~/.bashrc |
在适当位置加入以下内容
1 | export EDITOR='nano' |
也可以添加到 ~/.bash_profile
中。
设置系统为中文
打开 System Settings
> Language and Regional Settings
> 在 Language
中点击 Add languages...
> 选择中文加入 ADD
,再拖拽到第一位 > 点击 Apply
注销并重新登陆即可生效。
解决plasma载入QML出错
装入 QML 文件出错_kde plasma 加载qml出错org.kde.newstuff-CSDN博客
1 | sudo pacman -S kdeplasma-addons |
安装完成后重启即可。
安装输入法
通过以下命令安装相关软件包
1 | sudo pacman -S fcitx5-im # 输入法基础包组 |
还需要设置环境变量
1 | nano ~/.config/environment.d/im.conf |
在文件中加入以下内容并保存退出
1 | # fix fcitx problem |
但是由于我使用的是 Wayland 而非 X11,所以只需要保留
1 XMODIFIERS=@im=fcitx在「系统设置 - 输入设备 - 虚拟键盘」中选中 Fcitx 5
在基于 Chromium 的程序(包括浏览器和使用 Electron 的程序)中加入
--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime
启动参数。
打开 系统设置
> 区域设置
> 输入法
点击提示信息中的 运行 Fcitx
点击 添加输入法
> 找到简体中文下的 Pinyin
> 点击 添加
即可加入拼音输入法:
接下来点击 Pinyin
右侧的配置按钮 > 点选 云拼音
和 在程序中显示预编辑文本
> 最后点击 应用
:
回到输入法设置 > 点击 配置附加组件
> 找到 Classic User Interface
> 在主题里选择一个你喜欢的颜色 > 最后点击 应用
:
注销并重新登陆,发现已经可以在各个软件中输入中文了。
通过 Ctrl
+ 空格
切换中英文输入。
启动蓝牙
1 | sudo systemctl enable --now bluetooth |
设置 Timeshift 快照
1 | sudo pacman -S timeshift |
安装之后,如果 Timeshift 没有自动备份,需要手动开启 cronie
服务
1 | sudo systemctl enable --now cronie.service |
打开 Timeshift,第一次启动会自动启动设置向导。
我使用的是 Btrfs 文件系统,快照类型选择 BTRFS
,点击 下一步
快照位置选择 BTRFS
分区,点击 下一步
由于 BTRFS 类型快照占用空间相对较小,可以适当提高快照数量。
若希望 /home
用户主目录也快照,则勾选在备份中包含 @home
子卷,然后点击 下一步
点击 完成
结束配置。
完成后建议执行下述指令删除
subvolid
1 sudo sed -i -E 's/(subvolid=[0-9]+,)|(,subvolid=[0-9]+)//g' /etc/fstab否则,恢复 BTRFS 类型快照时,可能因子卷 ID 改变导致无法正常进入系统,参阅 恢复后无法挂载目录。
显卡驱动
1 | sudo pacman -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel |
纵使千山多万壑,犹有青鸾踏云间
1 | sudo pacman -S v2ray v2raya |
随后在开始菜单中搜索 v2rayA,点击即可打开浏览器页面。
或者安装 dae 或 daed
1 | sudo pacman -S dae daed |
然后你就可以参照官方文档来使用了:
dae:https://github.com/daeuniverse/dae/blob/main/docs/zh/README.md
daed:https://github.com/daeuniverse/daed/blob/main/docs/getting-started.md 安装完 daed 后,打开浏览器访问 http://localhost:2023 开始使用
没有声音
没有声音,已经安装了声音固件sof-firmware alsa-firmware alsa-ucm-conf,但是安装过程中有warning(见下图)
以及dmesg指令有很多error:
没有找到准确的解决方案。
等一下——好了?我研究一下怎么回事
我只是将这个方案切换到第二个但是还是没声音,然后又切换回第一个就有声音了
然后似乎目前有点小小的问题但是还算能用。音量比较小的时候只会使用右边的扬声器,音量调大才会用到左边的。真神奇。大概75%以上,左侧的扬声器才会有声音。
安装 Windows 字体
从本地 Windows 获取字体文件
1 | sudo mkdir /usr/share/fonts/WindowsFonts |
然后通过 Dolphin 在此文件夹下右键 > 点击 打开终端
1 | sudo cp ./* /usr/share/fonts/WindowsFonts |
刷新字体
1 | fc-cache -vf |
从 AUR 安装
通过以下命令安装 Windows 11 的中文字体
1 | yay -S ttf-ms-win11-auto-zh_cn |
雾凇拼音(Rime-ice)输入法
之前我们已经安装了 Fcitx5 相关的包。接下来的操作要依赖之前的包。
通过以下命令安装 Rime 输入法
1 | sudo pacman -S fcitx5-rime |
然后添加 Rime 输入法。打开 系统设置
> 点击侧栏 语言和区域设置
> 输入法
。若提示检测到更新,点击 更新
即可。点击 添加输入法
> 找到汉语下的 中州语
> 点击 添加
。若不想要之前的 Pinyin 输入法了,可以点击它最右边的按钮移除掉。
Onedrive
archlinux安装onedrive - 简书 (jianshu.com)
onedrive(by abraunegg) —— 一个 Linux 下的开源 OneDrive 客户端(cli) - 竹林里有冰的博客 (zhul.in)
onedrive/docs/USAGE.md abraunegg/onedrive
接着还有一个 GUI 界面
DanielBorgesOliveira/onedrive_tray: OneDrive system tray program (github.com)