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 報告錯誤

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。