筆者的筆電是一台很舊型的破電腦
由於沒有錢換Macbook
所以暫時只能拿這個頂著用
因此會希望把自己的電腦環境調教好
再加上筆者超級討厭windows的工作環境
所以大約在兩年前就將電腦灌成Archlinux了
由於前陣子筆者的EFI分區壞掉了
因此整個系統被迫重灌
剛好就來分享一下筆者在安裝時遇到的一些問題
聽聽八爺前幾個月的歌
# 前言
宮語出品 必是毒品
本篇將分享筆者在安裝Archlinux時遇到的一些問題
將注重於經驗分享 而非以教學為主
雖然還是會帶一點安裝步驟
但請先有預期 本文並不會手把手教你安裝
# 為什麼是Archlinux
Arch是一個以輕量化著名的Linux發行版
筆者在使用過各種不同的Linux系統後
覺得在安裝過GUI之後
Arch是其中最輕且最好用的
# 為什麼不是Ubuntu
我討厭它
# 為什麼不是Manjaro
幹 Manjaro是Arch的衍生版
它就是Base on Arch的
# 注意事項
俗話說 Arch裝三次才會成功
雖然不是每個人都會踩到這麼多坑
但最好還是要有不一定能夠一次成功的心理準備
# 前置作業
# 本文預設前提
- 有一台可以開機的電腦
- 有一個可以使用的網路環境
- 有一個可以使用的USB
- 你會用電腦(不然你在看這篇幹嘛)
- 最好是看到cli介面不會感到頭痛
# 環境準備
# 系統安裝檔
在開始前 我們可以去Archlinux官網下載最新的ISO檔
並且寫入到USB(或其他隨身可攜裝置)中
# 網路
在開始設定前最好接上有線網路
使用無線網路可能會有一些問題
後面會提到無線網路的一些設定和問題
# 讀取USB
透過UEFI或BIOS進入USB
應該就可以讀到Archiso了
它本身就是一個迷你的系統
進入後就可以使用cli介面開始安裝了
# 其他
剩下應該就跟普通裝系統差不多
如果不會裝系統的話建議先嘗試裝裝看windows
或者先用虛擬機玩玩看
再來嘗試玩Linux系統
# 安裝
# 網路設定
首先最好測試網路連線
使用ping測試
ping archlinux.org
如果是無線網路的話可能會需要手動設定
iwctl station <device> connect <SSID>
:無線網卡名稱(可透過 iwctl device list 查詢) :欲連線的無線網路名稱
要密碼的話應該會提示你
照著輸入就好了
# 磁碟分割
接下來就是分割你的磁碟分區
基本上一個可以開機的系統需要兩個分區
- EFI分區:用來放置系統開機所需的檔案
- 作業系統分區:用來放置系統本身的檔案
後者又可以進行更進一步的分割
不過不在我們討論的範圍內
# 分割磁碟
# 查看磁碟
$ fdisk -l
/dev/sda1:EFI System
/dev/sda2:Linux(root)
/dev/sda3:Linux(home)
/dev/sda4:Swap
這邊我們可以看到我的磁碟分成四個分區
其中
- sda1:EFI分區
- 建議大小:256MB(雙甚至多系統建議512MB甚至更高)
- 類型為 EFI System
- 這是系統開機所需的分區
- sda2和sd3:作業系統分區
- 建議大小:各自隨意
- 類型為 Linux filesystem
- 這是系統本身所需的分區
- sda2:root分區 系統會安裝在這裡 類似C槽
- sda3:home分區 用來放置個人資料 類似D槽
- sda4:Swap分區
- 大小隨意 建議2G以上
- 類型為 Linux swap
- 非必要 基本上只有在系統記憶體不足時才會使用到
如果你的磁碟剛買 只有空空的一個分區
那就需要先分割磁碟
cfdisk /dev/sda
這邊我們使用cfdisk來分割磁碟
- 選擇要分割的磁碟
- 選擇要分割的分區
- 選擇要分割的方式
- New:新增分區
- Delete:刪除分區
- Edit:編輯分區
- Write:寫入分區
- Quit:離開分割磁碟介面
分割方式就如果上面所述的自己取捨大小即可
完成後就可以格式化分區了
# 磁碟格式化
接著就是格式化分區了
這邊我們使用ext4格式化作業系統分區
注意!!! 如果你電腦是想裝多系統
而電腦裡本來就有EFI磁區 請不要格式化它
否則可能會導致電腦無法開機
# 格式化系統磁區
$ mkfs.ext4 /dev/sda2
$ mkfs.ext4 /dev/sda3
$ mkswap /dev/sda4
# 格式化EFI磁區
$ mkfs.fat -F32 /dev/sda1
# 掛載分區
$ mount /dev/sda2 /mnt
$ mount /dev/sda3 /mnt/home
$ swapon /dev/sda4
# 基本系統安裝及設定
# 安裝系統本體
我們使用pacstrap來安裝系統本體
還有一些基本的套件
$ pacstrap /mnt base base-devel linux linux-firmware
# 切換到新系統
接著就可以進到新系統裡面進行設定和安裝了
chroot可以讓你切換根目錄
而arch-chroot除了有chroot的功能之外
還可以將一些前置設定帶入
$ arch-chroot /mnt
補充一些可能有人有疑問的點
我們本來在usb的archiso裡面 但系統是安裝在電腦的硬碟上的 所以需要切換
現在只是暫時從usb的archiso切換到電腦的硬碟上的archlinux而已
之後系統安裝完成後就不需要這樣進入了
# 設定時區
設定時區到台北
$ timedatectl set-timezone Asia/Taipei
讓系統自動調整時間
$ timedatectl set-ntp true
# 設定語言
把/etc/locale.gen裡面的en_US.UTF-8 UTF-8和zh_TW.UTF-8 UTF-8前面的#去掉
這樣系統就會支援英文和繁體中文了
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "zh_TW.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen
localectl set-locale en_US.UTF-8
# 設定主機名稱(不重要啦)
$ echo "<你的名字(たきくん(X))>" >> /etc/hostname
# 設定root密碼
記得設定root密碼
不然之後會沒辦法登入系統
$ passwd
# 建立一般使用者
為之後作為日常使用的使用者設定一個帳號
$ useradd -m <使用者名稱>
$ passwd <使用者名稱>
# 加入sudo群組(非必要 但個人電腦建議要)
$ usermod <your-user-name> -aG <your-group-name>
# 安裝grub
接著我們安裝grub
grub是用來開機的一個引導程式
大致上功能就像學校電腦會看到的那個選擇系統的畫面
讓你不用一直進入bios選擇開機系統
# 下載套件
$ pacman -S grub efibootmgr os-prober
os-prober是用來偵測其他系統的 例如windows 可以用於裝多系統
# 安裝grub
下載後要安裝和產生設定檔
當然這個設定檔是可以魔改的
不過我們這邊就先用預設的
$ grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
$ grub-mkconfig -o /boot/grub/grub.cfg
如果有裝多系統的話
輸入下面這行可以解鎖其他系統的引導
$ echo "GRUB_DISABLE_OS_PROBER=false" >> /etc/default/grub
設定完後再重新產生設定檔應該就可以讀到其他系統了
# 安裝網路管理套件
這邊我們安裝網路管理套件
我用的是networkmanager
$ pacman -S networkmanager
# 退出chroot
打上exit就可以退出chroot了
如果順利的話就可以關機了
之後重新開機並切換到硬碟上的archlinux
應該就可以順利進入系統了
注意要切換到硬碟上的archlinux 而不要一直進入usb上的archiso了
# 桌面環境設定
# 安裝桌面環境
我自己個人用的是kde plasma
雖然我很討厭它的設計
但因為比較大眾的兩個之中
另一個更難用 所以 對 我選了plasma
以後有能力再自己設計一個
安裝KDE的全家桶
$ pacman -S xorg-server plasma plasma-wayland-session kde-applications
# 安裝顯示卡驅動
這邊我們要安裝顯示卡驅動
我同時有intel和nvidia的顯示卡
所以我們要安裝兩個驅動 不然可能會出事
$ pacman -S xf86-video-intel
$ pacman -S nvidia nvidia-utils
# 設定啟用服務
接著我們要設定啟用的服務
之後開機時就會自動開啟這些程式
$ systemctl enable sddm
$ systemctl enable NetworkManager
# 進入圖形介面
如果上面的步驟都沒有問題的話
重開機後就可以進入圖形介面了
# 個人化設定
# 安裝字型
我個人比較喜歡noto字型
所以安裝一下吧
$ pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji
# 安裝輸入法
我自己是使用rime輸入法
可以自定義的東西很多
並且可以自己調教
$ pacman -S ibus-rime rime-bopomofo
$ ibus-daemon -drx --panel=/usr/lib/kimpanel-ibus-panel
有另一套基於fcitx的rime輸入法 那個我沒有試過 有興趣可以查一下
# 個人化
剩下就是一些比較零散的設定了
基本上就跟設定新手機或是新電腦一樣
自己去摸索吧
# 推薦套件
這邊推坑一些我自己用的軟體
# 瀏覽器
我使用vivaldi瀏覽器
# 編輯器
我通常使用vscode
或者tmux+neovim
# 套件管理器
yay是一個非常強大的套件管理器
可以幫助你快速安裝套件
$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si
# 終端機
我自己使用的是konsole
# 螢幕錄影
我直接用obs錄影 好爽喔
# 通訊軟體
discord和telegram都有現成的arch套件可以裝
很方便吧
# 尋找適合你的套件
如果你不知道
可以去google搜尋arch <套件名稱>
或者是直接到上搜尋
基本上可以搜尋到很多結果
可以幫助你找到適合你的套件
然後再自己使用
yay -S <套件名稱>或pacman -S <套件名稱>進行安裝
# 結語
這篇文章是我自己的安裝筆記
有些地方因為我早就會裝系統了
所以帶得很簡陋
我自己是從2020年底開始入坑arch
一開始只是我想要一個linux環境做為開發環境
雖然有server和nas可以用
不過實在是受夠筆電上windows的體驗了
索性就入坑了arch神教
我自己第一次裝也是裝了3次才成功
第一次網路沒設定好 dhcp抓不到
第二次沒設定好顯卡驅動
第三次雖然也有一些零碎的小問題
但因為主系統都差不多了
起碼不用整個重裝
目前也還有一些待解決問題
- 不知道怎麼設定麥克風的輸入 收音好到一直收到雜音
- 滑鼠的捲動超級慢 但就是找不到好的設定檔或軟體去解決
- 想到再說
如果有什麼問題歡迎留言
有關於dotfile的部分在我的github上有一份
有問題可以發issue給我
