在Surface筆記本上安裝Arch Linux全過程


系統安裝

說在前面:也可以使用內置的archinstall命令快速安裝

設置網絡

這里以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-8 (如果需要中文 zh_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 權限運行:

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

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

添加用戶

[username]換成你自己的用戶名

useradd --create-home [username]
passwd [username]
usermod -aG wheel,users,storage,power,lp,adm,optical [username]
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
如果不能出錯,多半是網絡問題,請參考Clash+TUN方案

添加簽名密鑰

curl -s https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc \
    | sudo pacman-key --add -
sudo pacman-key --finger 56C464BAAC421453
sudo 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

這里演示安裝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文件(改善程度有限,終極解決方案是Clash+TUN

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

為了兼容問題還是安裝zsh吧

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

常用軟件

Typora

sudo pacman -S typora

CLion

sudo pacman -S clion clion-cmake clion-gdb clion-jre clion-lldb

Edge瀏覽器

yay -S microsoft-edge-stable-bin

下面說一下開啟Edge的隱藏功能:

顯示標簽頁預覽

地址欄輸入edge://flags

在搜索框搜索 Tab Hover Card

將搜索結果設為Enabled

啟用標簽頁組(如果經常訪問很多網頁的話很實用)

訪問 edge://flags

搜索 Tab Groups

Tab GroupsTab Groups Collapse 設為 Enabled

啟用懸浮播放視頻

edge://flags

搜 Global Media Controls

搜索結果全設為 Enabled

功能名稱可能經常變動,名稱可能不完全准確,但大致是一樣的

網易雲音樂

sudo pacman -S netease-cloud-music

百度網盤

yay -S baidunetdisk-electron

VSCode

yay -S visual-studio-code-bin

Anaconda

建議直接從官網上下載

sudo pacman -S anaconda
source /opt/anaconda/bin/activate root

Obsidian

sudo pacman -S obsidian

推薦插件:

Advanced Tables

擴展Markdown的表格功能

Media Extended
Media Extended Bilibili Plugin

在Obsidian中支持播放B站視頻

Obsidian Git

使用Git同步筆記

Remember cursor position

記錄每個文件的鼠標位置

最后的話

人生苦短,我用Manjaro!

安裝參考:archlinuxcn.org


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM