banner
Yuzhen

Yuzhen's Blog

🇨🇳 13 y.o. / Student & Developer & OIer / HAM & BGP Player
telegram
tg_channel
github
mastodon
email
zhihu

[Legacy] 如何优雅地迁移到 Arch Linux

前言#

本文只适用于 UEFI 引导。
本文适用于从 Windows 迁移到 Archlinux。
作者不保证本文中的方法可以在您的计算机上使用。
本文使用 Creative Commons 署名 - 非商业性使用 - 相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议共享。
如果文章内容有误,恳请各位指出,感谢。

目录#

0x00 前情提要

0x01 备份数据

0x02 制作安装盘

  • 下载镜像
  • 写入 U 盘

0x03 安装系统

  • 从 U 盘启动
  • 连接 Wi-Fi(有线用户直接跳过)
  • 同步 pacman
  • 硬盘分区
  • 格式化
  • 挂载分区
  • 安装系统
  • 配置引导
  • 退出新系统并取消挂载

0x04 配置系统

0x05 KDE 配置

  • Fctix5+Rime

0x06 软件相关

  • 软件快速参考
  • 使用 AUR (Arch User Repository)
    • 安装 yay
    • 使用 yay 进行包的安装
  • 使用 wine 运行 windows 应用
  • 使用 winapps 运行 windows 应用
  • 创建 windows 虚拟机

0x07 系统美化

  • GRUB 美化
  • SDDM 美化
  • KDE 美化
    • 插件

0x08 附录

  • yay 的使用方法

0x09 参考资料


0x00 前情提要#

作者的电脑有 1 块 512GB 大小的 NVMe 固态硬盘,同时有一块 2TB 大小的西部数据黑盘移动(机械)硬盘,所以作者需要先把 windows 分区克隆到移动硬盘上,然后全部格式化进行 archlinux 安装

0x01 备份数据#

使用 微 PEDiskGenius 工具进行数据备份和分区克隆
由于在 PE 环境下您可能无法进行网课 / 刷题等操作,所以我们可以先使用 DiskGenius 的分区镜像功能把分区镜像保存到移动硬盘上,再回到 windows 系统使用 DeskGenius 把分区镜像还原到移动硬盘上(这是因为分区镜像是 4K / 顺序读顺序写操作,而分区还原是顺序读 4K / 顺序写操作,固态硬盘的小文件读写速度显著大于机械硬盘)

  1. 制作 wepe 环境
    微 PE 下载连接
    作者是在 arch 下写的没法演示了建议自己去找教程
  2. 进入 wepe 环境,使用 DiskGenius 进行磁盘镜像操作
    作者是在 arch 下写的没法演示了建议自己去找教程
  3. 回到 windows 环境恢复硬盘
    作者是在 arch 下写的没法演示了建议自己去找教程
    此处注意,恢复完成后硬盘将会脱机,需要打开 计算机 -> 管理 -> 磁盘管理 ,右击移动硬盘点击 联机,硬盘管理将会重新为分区分配序列号。

0x02 制作安装盘#

下载镜像#

首先下载 ISO 镜像:官方下载链接,建议翻到下面找中国的镜像进行下载。

写入 U 盘#

然后写入 U 盘,建议使用 Rufus 工具,分区类型选择 GPT 而非默认的 MBR ,写入方式为 DD 而非 ISO。

0x03 安装系统#

连接 Wi-Fi(有线用户直接跳过)#

  1. 输入 iwctl 进入 iwd 命令行
  2. 输入 device list 查看无线网卡设备
  3. 假设无线网卡为 wlan0 ,则输入 station wlan0 scan 扫描网络
  4. 输入 station wlan0 get-networks 查看扫描到的网络
  5. 假设要连接网络的 SSID 为 114514 则输入 station wlan0 connect 114514 如果有密码,则输入密码。
  6. 输入 exit 退出 iwd 命令行

同步 pacman#

输入下列语句,这将自动选出最快的镜像源并替换

reflector -c China --sort rate --save /etc/pacman.d/mirrorlist

完成后输入 pacman -Syyy 同步 pacman 源(如下图)
图 1

分区格式化#

假设分区为 nvme0n1p2,输入下列命令

mkfs.ext4 /dev/nvme0n1p2

挂载分区#

  1. 把要安装系统的分区挂载到 /mnt
mount /dev/nvme0n1p2 /mnt
  1. 创建 /mnt/boot 文件夹
mkdir /mnt/boot
  1. 把 EFI 分区挂载到 /mnt/boot,假设 EFI 分区为 nvme0n1p1
mount /dev/nvme0n1p1 /mnt/boot

安装系统#

  1. 执行下列命令安装基本系统
pacstrap /mnt base linux linux-firmware nano
  1. 生成 fstab 文件
genfstab -U /mnt >> /mnt/etc/fstab
  1. 切换到安装好的系统
arch-chroot /mnt
  1. 建立 swapfile
dd if=/dev/zero of=/swapfile bs=2048 count=1048576 status=progress # 创建 swapfile
chmod 600 /swapfile # 改权限
mkswap /swapfile # 建立 swap
swapon /swapfile # 激活 swap
  1. 修改 fstab 以支持 swapfile
    输入 nano /etc/fstab,在文件末尾添加 /swapfile none swap defaults 0 0,然后按顺序按 Ctrl+O Enter Ctrl+X 保存退出
  2. 设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  1. 同步硬件时钟
hwclock --systohc
  1. 设置 locale,输入 nano /etc/locale.gen,按 Ctrl+W 再输入 #en_US 回车 找到 UTF-8,删除井号 取消注释,然后再 Ctrl+W 搜索 #zh_CN 回车 找到 UTF-8,删除井号 取消注释,然后按顺序按 Ctrl+O Enter Ctrl+X 保存退出
  2. 生成 locale
locale-gen
  1. 创建并写入 /etc/locale.conf 文件
    输入 nano /etc/locale.conf,填入 LANG=en_US.UTF-8,然后按顺序按 Ctrl+O Enter Ctrl+X 保存退出
  2. 创建并写入 hostname
    输入 nano /etc/hostname,填入 你要使用的 hostname(如 jindan),然后按顺序按 Ctrl+O Enter Ctrl+X 保存退出
  3. 写入 hosts
    输入 nano /etc/hosts,写入的内容如图,然后按顺序按 Ctrl+O Enter Ctrl+X 保存退出(暂时使用知乎大佬的图片,文章见结尾参考资料部分)
    image
  4. 为 root 用户创建密码
passwd

然后输入并确认密码(linux 终端的密码没有回显,输完直接回车就好)

配置引导#

  1. 安装 GRUB 包和其他需要的包
pacman -S grub efibootmgr networkmanager network-manager-applet dialog wireless_tools wpa_supplicant os-prober mtools dosfstools ntfs-3g base-devel linux-headers reflector git sudo
  1. 安装微码
    如果是 Intel 的 CPU,需要安装 Intel 的微码文件
pacman -S intel-ucode

如果是 AMD 的 CPU,需要安装 AMD 的微码文件

pacman -S amd-ucode
  1. 如果你还有其他的系统需要引导(尤其是 Windows),需要启用 OS Prober 来自动检测其他系统
    输入 nano /etc/default/grub 进入 nano,在最后输入 GRUB_DISABLE_OS_PROBER=false,然后按顺序按 Ctrl+O Enter Ctrl+X 保存退出
    4.. 安装 GRUB
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch
grub-mkconfig -o /boot/grub/grub.cfg

退出新系统并取消挂载#

exit
umount -a
reboot

0x04 配置系统#

  1. 启动网络服务
systemctl enable --now NetworkManager
  1. 连接 Wi-Fi(有线用户直接跳过)
nmtui
  1. 新建用户并授权
    假设用户名为 jindan,则输入
useradd -m -G wheel jindan
  1. 为新用户设置密码
passwd jindan

输入并确认密码
5. 授权
输入 EDITOR=nano visudo 进入 nano,Ctrl+W 输入 # %wheel 回车删除井号 取消注释,然后按顺序按 Ctrl+O Enter Ctrl+X 保存退出
6. 安装显卡驱动
安装 AMD 显卡驱动:

pacman -S xf86-video-amdgpu

安装 NVIDIA 显卡驱动:

pacman -S nvidia nvidia-utils
  1. 安装 Display Server (xorg)
pacman -S xorg
  1. 安装 Display Manager
    Gnome:
pacman -S gdm

KDE:

pacman -S sddm

Xfce / DDE:

pacman -S lightdm lightdm-gtk-greeter
  1. 设置开机自启,假设安装的是 KDE (sddm)
systemctl enable sddm
  1. 安装 Desktop Environment
    Gnome:
pacman -S gnome

KDE:

pacman -S plasma kde-applications packagekit-qt5

Xfce:

pacman -S xfce4 xfce4-goodies

DDE:

pacman -S deepin deepin-extra
  1. 添加 archlinuxcn 源
    输入 nano /etc/pacman.conf,写入的内容如下代码框,并 取消对 multilib 源的注释,然后按顺序按 Ctrl+O Enter Ctrl+X 保存退出
## 阿里云 (Global CDN) (ipv4, ipv6, http, https)
## Added: 2020-07-03
[archlinuxcn]
Server = https://mirrors.aliyun.com/archlinuxcn/$arch
  1. 同步 pacman 源并安装 keyring
pacman -Syu && pacman -S archlinuxcn-keyring
  1. 安装字体
pacman -S ttf-sarasa-gothic noto-fonts-cjk
  1. 重启
reboot

0x05 KDE 配置#

Fcitx5+Rime#

Fcitx5 是继 Fcitx 后的新一代输入法框架。

Rime(中州韻輸入法引擎)是一款支持多种输入方案的输入法引擎。

Rime 本身并不提供用于处理用户输入的前端,需要和输入法框架配合才能使用,比如 Fcitx5 (简体中文) 或 IBus (简体中文)。

  1. 输入下列命令安装
sudo su
pacman -S fcitx5-im
echo "GTK_IM_MODULE=fcitx" >> /etc/environment
echo "QT_IM_MODULE=fcitx" >> /etc/environment
echo "XMODIFIERS=@im=fcitx" >> /etc/environment
echo "INPUT_METHOD=fcitx" >> /etc/environment
echo "SDL_IM_MODULE=fcitx" >> /etc/environment
cp /usr/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart/
pacman -S fcitx5-rime
exit

安装后可能需要重启
2. 添加输入法
image
image
4. 设置成简体中文
image

0x06 软件相关#

A 全部功能均可使用
X 不可使用
/ 未测试
注:AUR 中的 deepin-wine 包也算作 原生/AUR 类别

名称原生 / AURWineWinApps
微信X//
QQA//
钉钉不能进行会议//
Microsoft OfficeX/A

使用 AUR (Arch User Repository)#

Arch 用户软件仓库(Arch User Repository,AUR)是为用户而建、由用户主导的 Arch 软件仓库。AUR 中的软件包以软件包生成脚本(PKGBUILD)的形式提供,用户自己通过 makepkg 生成包,再由 pacman 安装。创建 AUR 的初衷是方便用户维护和分享新软件包,并由官方定期从中挑选软件包进入 community 仓库。

当您要安装任何软件时,您可以首先前往 AUR 官网 查询是否有您需要的软件,如果有,就可以直接使用 yay 进行安装,yay 的安装和使用方法见下文

安装 yay#

yay 是用于快速安装 aur 包的工具

  1. 安装 git
sudo pacman -S git
  1. 克隆 yay 仓库
git clone https://aur.archlinux.org/yay.git
  1. 构建并安装
cd yay
makepkg -si

使用 yay 进行包的安装#

输入 yay -S <包名> 即可,如果询问是否显示差异则输入 n 回车忽略,否则输入 y 回车确认即可
更多信息情参见 附录 章节内的 yay 的使用方法

创建 windows 虚拟机#

  1. 安装 KVM 和 Virtual Machine Manager
pacman -S virt-manager
  1. 下载 Windows 10 ISO 和 virtio 驱动
    Windows 10 ISO:https://www.microsoft.com/en-us/software-download/windows10ISO(Windows 11 亦可)
    VirtIO 驱动:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
  2. 打开 虚拟系统管理器
    image
    然后点击 编辑 -> Preferences,启用 启用 XML 编辑 (如图)
    image
  3. 点击 文件 -> 添加连接,确保和图片的设置一样,点击 连接 即可
    image
  4. 点击新建虚拟机
    image
  5. 选择 QEMU/KVM 连接,点击 Forward(如图)
    image
  6. 选择镜像(如图)
    image
  7. 设置内存和 CPU,建议为 4096MB,这其实是最大占用内存(作者太懒了直接用官方文档的图片了)
    image
  8. 选择您的虚拟磁盘大小,记住这是磁盘将增长到的最大大小,但它不会占用这个空间,直到它需要它
    image
  9. 接下来,为您的机器命名,命名为 RDPWindows 以便 WinApps 可以检测到它,然后选择 Customize configuration before install
    image
  10. 单击 Finish,确保在 CPU 下 Copy host CPU configuration 被选中,然后 Apply
  11. 接下来,转到 XML 选项卡,然后编辑该 <clock> 部分以包含
<clock offset='localtime'>
  <timer name='hpet' present='yes'/>
  <timer name='hypervclock' present='yes'/>
</clock>

然后 Apply ,这将大大减少空闲 CPU 使用率(从~25% 到~3%)
然后你就可以启动系统进行一个正常的 Windows 安装了

0x07 系统美化#

GRUB 美化#

  1. 挑选喜欢的主题并下载
    Gnome-look 网站可以找到 GRUB 主题,点击喜欢的主题进入主页,点击 Files ,选择对应的版本下载(如图)
    image
  2. 脚本安装
    我选择的主题是 Grub-theme-vimixunzip 解压后可以发现该主题带有一个 install.sh 脚本,可以使用脚本安装,输入
bash install.sh
  1. 手动安装
    等待补充

sddm 美化#

yay -S sddm-config-editor-git
yay -S archlinux-themes-sddm

然后搜索打开 SDDM Configuration,点击主题,进行主题更换,如果您使用的是 plasma 默认主题,可以使用 breeze(如图)
image

KDE 美化#

插件#

  • Awesome Widget 可以显示自定义的系统参数
  • Weather Widget 会把天气以图标和表格两种形式展示出来
  • Global Menu 与 Application title 配合使用达到 MacOS 的效果,可以让界面更美观,操作更方便
  • Panon 音效可视化插件
  • Event Calendar 快捷添加任务、显示天气、日期和节假日

0x08 附录#

yay 的使用方法#

在使用 Arch 用户软件仓库时, AUR 工具可以自动完成某些任务:

  • 搜索在 AUR 中发布的软件包
  • 解析 AUR 软件包之间的依赖关系
  • 下载 AUR 软件包
  • 下载网站内容,例如用户评论
  • 提交 AUR 软件包

pacman 只会处理其仓库中预先构建好的软件包的更新。 AUR 软件包以 PKGBUILD 的形式再分发并需要 AUR helper 来自动化构建流程。然而请注意,即使软件包自身并没有更新,但由于某些库文件的更新,您可能仍需重新构建某些软件包。
不会为 AUR 软件包检查更新,所以一些工具也可以自动从 AUR 检查更新并再次构建新版本的软件包。请注意,即使软件包自身并没有更新,但由于某些库文件的更新,您可能仍需重新构建某些软件包。

基本使用#

yay -S <包名> # 在 AUR 中搜索包并安装
yay -Ss <包名> # 在 AUR 和 官方源 中搜索包并安装
yay -Si <包名> # 在 AUR 中获取包的信息
yay -U <包路径> # 安装本地包
yay -Pu # 检查更新
yay -Sy # 同步
yay -Syu # 更新系统
yay -Syua # 更新系统和已经安装的 AUR 软件包
yay -Yc # 删除不必要的依赖
yay -R <包名> # 删除包
yay -Rs <包名> # 删除包及其依赖
yay -Rnsc <包名> # 删除包、依赖和配置文件

0x09 参考资料#

  1. ArchWiki:您的在线 Arch Linux 文档库(官方 Wiki)
  2. 2021 Archlinux 双系统安装教程(超详细)(知乎)作者:ayamir
  3. Linux Grub 引导界面(启动界面)美化(知乎)作者:Kuari
  4. KDE 美化之路(知乎)作者:知乎用户 9g4W9C

作为 archlinux 小白在此对上述参考资料的作者表示由衷的感谢
感谢 @Hello 报告错误

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。