撰寫開始時間: 2023/07
建置之硬體環境:
- CPU: i3-12100
- RAM: 16GB
- Disk: 512GB SSD/4TB HDD
- MB: ASUS PRIME B660M-K D4-CSM
- Network: Ethernet
從 USB 開機到初次重新開機。
請準備好 Arch linux 安裝印象檔並燒至 USB,插入電腦後開機,當然虛擬機也行,這部分比較基礎就不囉嗦了。
另外,如果在這個階段不小心搞錯任何操作或命令,除了被格式化的硬碟外都可以挽回,也可以嘗試重新開機並繼續用 USB 操作多次,並不是初次重開機前搞砸後就沒救了。
當安裝之目標電腦沒有有線網路時,需先設定 Wifi 連線,因為後續需要安裝很多東西,包含 Network Manager 等。
確認自己網路設備的名字 (以 wlan0
為例) 後,啟用 scan 功能。
查看可連線的無線網路。
連線上網,假設想要連上 Eroiko
這個 wifi。
離開 iwctl
然後嘗試 ip a
以及 ping
一下看是否成功連上網。
注意,被格式化的硬碟將無法挽回,這裡務必慎重。
眼下的檔案系統是 USB 的,目前還沒有掛載任何目標電腦的硬碟,所有對目標電腦檔案的修改都要等到掛載後才能使用。
現在使用 ls /
會看到的是 USB 中的根目錄資訊,當中會看到有個資料夾叫 /mnt
,是掛載硬體的常用根目錄,在切換至正式的檔案系統 (arch-chroot
) 之前,「正式的根目錄」就是 /mnt
,比如正式的家目錄就是 /mnt/home
,依此類推。而我們會把根目錄對應的 partition 掛載至 /mnt
下,家目錄對應的 partition 掛載至 /mnt/home
。
切換至目標電腦後,檔案系統的結構就是我們熟悉的 Linux 慣用的檔案系統結構了。
以下將建立一個典型簡單的 Partition 佈局:root + home (Ext4)。
事實上各位可以選擇自己喜好的佈局方式以及 File System,比如:
要不要分 swap 也是個人的自由,就算沒 swap,Linux 也會在記憶體不足時生出 tmpfs,所以也不是特別必要。
用 cfdisk
點陣圖型介面互動式的快樂分割:)
fdisk 也行,但
cfdisk
更簡單好用。
可以善用lsblk
來得知可用的硬碟。
格式化為指定的 file system。
在此設為 ext4,也可以 btrfs 等等的,e.g. 用
mkfs.btrf
,不過指令就沒那麼簡單了,請參考Btrfs 官網。
將根目錄掛載到格式化好的資料夾。
(Optional) 若 EFI 磁區不存在,也就是裝在全新的硬碟上時,格式化 EFI 磁區
創建 EFI 資料夾
將 EFI 磁區掛載到格式化好的資料夾
home
資料夾也類似,不過要先創建資料夾
將家目錄掛載到格式化好的資料夾
最後可以用 lsblk
來確認是否根目錄、家目錄和 EFI 磁區都掛載到正確的位置。
fstab
)透過查看 /mnt/etc/fstab
確認是否成功建立檔案系統表
應該要看到我們剛創建並掛載好的 /
(/mnt
)、/home
(/mnt/home
) 目錄,以及 /boot
(/mnt/boot
) 目錄與對應的相關訊息。
(Optional but recommended) 在進行安裝與下載操作之前,可以先去開啟 Arch Linux 的 package manager: pacman
的平行下載功能。
至 /etc/pacman.conf
尋找 ParallelDownloads
關鍵字,把下面這行反註解掉:
上述修改將作用在 USB 上,之後切換 (arch-chroot
) 到安裝中的 Arch Linux 上也推薦這樣做。
接著正是下載並安裝好基本模組,然後就可以準備切換到剛裝好基本套件的 Arch Linux 下繼續安裝了。
如果遇到奇怪的 key 問題,可以用以下指令來解決 (通常是因為 ISO 太舊)
Pacman 為 Arch Linux 的官方套件管理器,與 Debian 系中的 apt
,最常用的指令不外乎:
跟 Debian 系的 apt
有點像,他們有著以下的關係。
懶人包: 一段時間沒用 Arch Linux 的話,第一個安裝指令都是
而後續為了節省時間,會使用最快速的
這些東西八成都會用到的,裝下去就對ㄌ >w0
另外至少裝一個用的順手的文字編輯器,以下是常見的兩個都裝。
允許啟用剛剛裝的 Network Manager 和 ssh。
系統服務
systemctl
的常用指令如下 (當然,正常使用者都需要sudo
)單次啟用
SERVICE_NAME
立即啟用服務。
允許啟用
SERVICE_NAME
在下次開機時生效。
允許並立即啟用
SERVICE_NAME
停止啟用
SERVICE_NAME
在下次開機時生效。
查看
SERVICE_NAME
的狀況刷新
systemctl
mkinitcpio is a Bash script used to create an initial ramdisk environment.
wheel
使用者群組設立 sudo
權限後續將假定
wheel
群組擁有sudo
權限
然後至 # %wheel ALL=(ALL) ALL
這行將其反註解。
新增使用者
SOME_NAME
至users
群組且為其指派家資料夾 (-m
),並將其加入可選群組wheel
,以便使用 sudo。
為
SOME_NAME
使用者設定密碼。
安裝 rEFInd 套件。
接著將 rEFInd 安裝到 /boot
下,其安裝內容與設定檔會在 /boot/EFI/refind
下:
然後去刪除 /boot/refind_linux.conf
裡的前兩行 (與 USB 相關的掛載點)。
這樣便完成基本設定,接下來可以去 rEFInd theme 找好看的主題安裝 :)
安裝在 /boot/EFI/refind/themes
下,並去 /boot/EFI/refind/refind.conf
的最後一行加入:
Ref: rEFInd引导使用教程
到此,已經完成最基本的設定,可以準備拔掉 USB 並初次重新開機。
初次重新開機後的基本設定。
3 Ways to Connect to WiFi from the Command Line on Debian
這裡務必萬分謹慎,否則可能會落到要重裝的地步…
安裝時請對照官方文件,確認自己的 Nvidia 顯卡對應之驅動的安裝方式。
最泛用的安裝程序如下:
kms
hook 來避免 initramfs
加載 nouveau
/etc/mkinitcpio.conf
把 HOOKS
這行列表中 kms
去掉。initramfs
加載設定
不要拖,直接重開來應用設定
這些設定不急,之後調都可以。
SOME_NAME
以下使用者都以
SOME_NAME
舉例,表示某使用者
為 Arch 社群的套件庫,裏面各種五花八門的套件都有。事實上,真正使用應用程式時多數都不是使用 pacman,而是 AUR 的套件管理器: yay
,用起來跟 pacman 一樣香。
另外注意到 yay
為了系統安全,不允許在管理者權限下安裝軟體,使用時應該作為一個正常使用者的情況下進行操作,而非 root。
有 yay
後我們可以先來補足前面缺少的一些小套件。
另外可以先安裝 noto-fonts-cjk
和 noto-fonts-emoji
預備。
如果前面已經裝過
ibus
就不用再裝了
安裝適配原生終端機的 bitmap 字型
單次設定字型
<font-name.gz>
有哪些選擇可至 cd /usr/share/kbd/consolefonts
查看。
然後設定每次開機的 tty 終端機字型,去 /etc/vconsole.conf
裡面加入 FONT=<font-name.gz>
How to Change Linux Console Fonts using Arch Linux - Change the font to actually see it!! (2021)
oh my zsh
提升開發效率 X, 心情愉快 O
oh my zsh 算效能比較低的,不過簡單好設定 OwO
Target | Feature | |
---|---|---|
Shell | zsh |
比起 bash 有更多開箱即用的功能,能輕鬆客製化 |
Framework | oh my zsh |
能裝很多主題、外掛的 zsh 框架 |
Theme | powerlevel10k |
極其美妙的終端機主題,內建可調整許多美觀與呈現資訊設定 |
zsh completion
: 根據當前的輸入自動補全命令。auto suggestion
: 根據過往的命令與當前的輸入自動建議輸入。輸入時在背後會浮現淺色的提示。syntax highlighting
: 對命令加上顏色標註。合法的命令顯示綠色、不合法的為紅色、字串為黃色…先安裝等等要用到的套件…
然後安裝 oh my zsh
,接著下載 zsh
相關外掛於 oh my zsh
內。
使用 ZSH 變數將外掛放入
oh my zsh
內管理的命令自動化。
(以下為讓 powerlevel10k
能大展身手的等寬字型的安裝,非必要。)
由 powerlevel10k 官方建議,使用 Meslo Nerd Font
連體字型最合適,該網站列敘該如何安裝此字型,並在終端機中使用。
zsh
客製化設定接著進入 zsh
設定檔 ~/.zshrc
。
請使用
vim
,nano
,emacs
,gedit
之類的文字編輯器,依照前面的命令的話,應該已經裝好vim
了。
powerlevel10k
主題加入設定ZSH_THEME
參數,修改設定。
zsh complition
不應該直接加入 plugins
列表中。詳見 issue 603。
另外,以上設定必須在 source $ZSH/oh-my-zsh.sh
這行以前,因為該行即是啟動 oh my zsh
與其管理之所有外掛。powerlevel10k
主題~./zshrc
的修改,並用以下命令使其生效。
此時 powerlevel10k
會根據當前終端機的字型提示我們跟如何完成此主題的快速調整。若對調整的結果不滿意,可使用 powerlevel10k
內建命令 p10k configure
來啟動快速設定程式。neofetch
neofetch
加入 .zshrc
的第一行,即可在每次開啟終端機時印出系統基本訊息。邁入圖形介面 Gnome
以 Gnome 為例,安裝只要一句就好,就是要稍等一下。
接著會問很多問題,無腦 Enter 是一個選擇,只是 Gnome 就會裝一堆你可能不想要的套件,最好可以查查那些套件都在做啥。
下面列出比較重要的幾個套件:
gvfs-*
都是輔助軟體然後啟用系統服務。
安裝 Gnome tweaks、gnome extension (根據不同版本的 Gnome 方法有異,就不記錄了)。
Gnome extensions 中建議安裝:
以上官方推薦的三個都行,我是選 Microsoft 官方版。
不要裝 Gnome software store 或者野雞版的,保證會讓你失望,功能東缺一塊西缺一塊。
~/.config/BetterDiscord/{themes,plugins}
。作為伺服器的 Arch Linux,需要確保能順暢遠端操作。
原理是特殊的網卡在電腦關機時,仍能接收 Magic Packet (魔法封包),接收到時透過 PCI 通知主機板開機。默認接收 Magic Packet 的 Port 為 9
或 7
。
魔法封包的內容為 6 bytes 的 F
和 96 bytes 的目標網卡 MAC 地址 (48 bits) 重複 16 遍。故封包大小為
魔法封包的細節原文,引自維基百科。
The magic packet is a frame that is most often sent as a broadcast and that contains anywhere within its payload 6 bytes of all 255 (FF FF FF FF FF FF in hexadecimal), followed by sixteen repetitions of the target computer's 48-bit MAC address, for a total of 102 bytes.
有三方面的設定要完成。
ethtool
是否已安裝
UP
的乙太網卡,其名稱通常以 e
開頭,比如 ethX
, enpXsY
(X
, Y
為某數字)。找到後,以下暫稱該乙太網卡為 ethX
。ethX
的一系列狀態,其中 g
表有啟用 WOL;d
表未啟用。若只想單次設置 WOL,用以下命令即可。
WOL
wol-systemd
@
後面為監視 WOL 的網路介面
9
(or 7
)。wakeonlan
套件 (macOS 可使用 brew
下載使用)。wakeonlan
套件為例。預設會將 MAC_ADDRESS
發送至 255.255.255.255:9
(也就是 braodcast)。套件使用細節可用 wakeonlan
命令查詢。
只要扯上網際網路,一切就麻煩起來了 :p
9
傳遞至Host_LAN_IP:9
)SSH
設定ssh 方便我們在遠端控制電腦,可依此使用
SSHFS
,VSCode remote service
等方便功能。
其實前面已經做過這件事了。
ssh.service
和 vendor preset
為 enable
,前者表當前是否啟用服務,後者表啟動時是否自動啟用本服務 (ssh
)。
目前 anydesk 只支援 x-window GUI,wayland 這種比較新的不行,可用以下指令確認:
如果出現 x11
表 ok,wayland
的話目前不行,可以 sign out 後在輸入密碼處右下角選擇 gnome-xorg
便可。
然後設定無人值守功能,這樣就不用每次連線時都需要在 host 點確認。
另外 Anydesk 實際上整合了 WOL 功能,>w0 很好用ㄉ
為基於 Wayland 的 GUI,以高效絢麗著稱。
首先安裝 Hyprland…
然後安裝 Hyprland 小工具