安裝 Arch Linux!

Search for a command to run...

No comments yet. Be the first to comment.
Hi everyone 👋 I’ve always been drawn to RPG Maker-style games — small towns to explore, characters to talk to, puzzles to solve, and stories that unfold through simple but powerful interactions. When I started planning the kind of games I want to ma...

在 C++ 中,對於陣列的大小處理,sizeof 在函式中有個容易踩雷的陷阱:如果你把陣列當作參數傳入函式,它會退化成指標。這會導致 sizeof 傳回的是指標的大小,而不是陣列的實際大小。 Example #include <iostream> void test1(char (&a)[10]) { std::cout << "test1 called with array of size: " << sizeof(a) << " bytes" << st...
解決 omitempty 的限制
起點 讓我們先從 template 出發:foo 需要一個 callback function。 template<typename Func> void foo(Func callback) { // ... callback(); } 但是這會讓編譯錯誤訊息有點模糊:假如 callback 並不是一個可以呼叫的函數指標,或者並不是一個 callable object ,那編譯器會說錯出在第四行。但是我們都希望,編譯器在呼叫函數時就幫我們指出:這不是 foo 想要的 call...
事情源於一個 error: #include <algorithm> #include <iostream> int main() { int64_t a = 2; std::cout << std::min(1L, a) << std::endl; // mac 上編不過 std::cout << std::min(1LL, a) << std::endl; // ubuntu 20.04 上編不過 return 0; } 無論是 1L 還是 1LL 都沒...
帕秋莉的魔法筆記
45 posts
後端工程師。
不定時張貼一些寫扣時的筆記。
感謝 Arch Linux安裝教學,KDE Plasma桌面+中文輸入法 ,本篇的安裝步驟大部分來自於這他,尤其是硬碟分割。
在網路上找到不少教學都是有包含 GUI 的,但我打算只先可以一步一步來,這樣也可以清楚自己在做甚麼,先設定第一小步是可以開機進入系統,這樣大概只會包含磁碟分割、安裝系統和可以連接網路,尤其是無線網路。之後 IDE 安裝再視需求考慮安裝。
我盡量把一些不影響目標的操作排除掉,包括:
安裝 IDE
安裝 sshd,與相關安全性設定
建立一個非 root 的 user
調整時區語言
首先是要怎樣的機器,先調查了兩個在蝦皮上看到的使用的 CPU,和我 7~8 年前買的 Mac Pro CPU Benchmark 進行比較:
Name | CPU | Core | Benchmark | 參考價格 |
4600G | 6 Cores | 9790 | ||
N4505 | 2 Cores | 2390 | ||
Apple M2 8 Core 3500 MHz | - | 8 Cores | - |
最後選定 DeskMini 那組。在和原價屋訂製的時候是這樣:
DeskMini + WiFi + BT4
CPU: AMD 4600G
Memory: 16GB DDR-3200
SSD: Micron Crucial P3 美光
組裝就交給原價屋了。
隨身碟開機,可以連上網。
調整開機順序,以隨身碟開機。
安裝過程是需要網路的,要先檢查:
ping -c 3 archlinux.org
ping 8.8.8.8
ping 1.1.1.1
假如是無線網路,需要用 iwctl 連。
iwctl device list
iwctl station <device> get-networks # list <SSID>
iwctl station <device> connect <SSID>
由於原本設定的站點距離台灣遠,可能有點慢,所以要調整 /etc/pacman.d/mirrorlist 。
參考官方網站生出的 config 後,我直接挑台灣站點列表裡的第一個:
## Taiwan
Server = https://mirror.archlinux.tw/ArchLinux/$repo/os/$arch
# Server = https://free.nchc.org.tw/arch/$repo/os/$arch
# Server = https://archlinux.cs.nycu.edu.tw/$repo/os/$arch
# Server = https://ftp.yzu.edu.tw/Linux/archlinux/$repo/os/$arch
設定好後確認:
pacman -Syy
要對購買的 SSD 進行磁碟分割。
基本上要分三區:
開機區: 512MB,(下限是 256MB)
memory swap:通常建議是記憶體的兩倍,這裡是 2x16 GB = 32 GB
主區:即是 / 根目錄
先用 fdisk -l 來確認有那些 device,通常會有兩種 /dev/sda? 或 /dev/nvme?n?
在我的硬體選擇下,會是 /dev/nvme0n1
選取要安裝系統的硬碟 fdisk /dev/nvme0n1
輸入g 清空原本分區,建立GPT分割表。
新增開機分區:輸入n,再輸入1 (或按 Enter 預設 1), First Sector 按 Enter 預設,Last Sector 輸入+512M 。
n
1 # (Enter 預設 1)
First Sector: (Enter)
Last Sector: +512M
t再輸入uefi,將該分區類型切換為 EFI。t
uefi
t,切換分區類型為 swap。n
2 # (Enter 預設 2)
Fisrt sector: Enter
Last Sector: +32GB
t
2 # (Enter 預設 2)
swap
n
3 # (Enter 預設 3)
First Sector: (Enter)
Last Sector: (Enter)
最後輸入 w 確認將變更寫入硬碟
用指令 fdisk -l 看目前硬碟分區,應該會是以下情況:
/dev/nvme0n1p1 512MB EFI
/dev/nvme0n1p2 32GB SWAP
/dev/nvme0n1p3 450GB Linux
mkfs.fat -F32 /dev/nvme0n1p1
mkfs.ext4 /dev/nvme0n1p3
mkswap /dev/nvme0n1p2
swapon /dev/nvme0n1p2
mount /dev/nvme0n1p3 /mnt
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot
pacstrap /mnt base base-devel linux linux-firmware
實際上是在跑 chroot 之前設定一堆東西的腳本。
arch-chroot /mnt
networkmanager 有提供一系列指令或設定連接網路。
假如是無線網路,需要安裝 wireless_tools。
pacman -Syy
pacman -S networkmanager wireless_tools
最後是 Bootloader。
pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
exit # exit from chroot
umount /mnt/boot
umount /mnt
reboot
本文大部分步驟參考自 (1)。感謝以下文章讓我成功裝 Arch。