最近換了SSD (其實好幾個月了.. 拖到現在才寫),舊電腦是傳統的BIOS,新電腦變UEFI BIOS,需要調整一下分割區跟bootloader, 想說順便寫一下教學順便紀錄一下如何安裝Archlinux, BIOS boot + EFI 開機。
Archlinux 是使用 Rolling Release 機制的Linux 作業系統,沒有固定的 release 週期,只有 LiveCD 每月會更新一次,不像 Windows 或 Ubuntu 每更新大版本就要重灌一次電腦,作為一般的工作機我認為是很適合的。
另外喜歡的一點是 Archlinux 不會給你多餘的,所有東西都是盡量跟 upstream 一致, 不太會在 package repository 做多餘的更改,因為什麽東西都要自己設定,對於如何運作會有比較清楚的了解, 不會說,安裝系統就下一步下一步就裝好了,不知道爲什麽就 work 了。對於 Linux 有點熱情的話可以嘗試看看,對於電腦系統的運作會有比較好的了解。
如果你是初學者、一般使用者,或是本來就很了解 Linux 系統,那些瑣碎的安裝與設定流程不是你喜歡或想要的, 這邊推薦幾個我覺得不錯的發行版 ( 當然每個 distro 我都愛但沒用過總不敢亂說 )
在進入 Archlinux 的奇幻旅程之前,Archlinux Wiki 是平常常會查閱的文件,大概是我目前看到維護最好的 Linux Wiki, 很多教學或問題都可以在 Wiki 找到,必讀。
雖然有時候還是會發現:很好很詳細,還是不知道怎麽做 哈哈哈。
----------- 我是分割線 -----------
* 進入正題 * 前面廢話太多
首先先去官網下載 Live CD, 不論是用燒錄光碟或是用 USB 隨身碟
Step 1 分割硬碟
我用兩顆硬碟做示範,之後會格式化,資料會不見,如果你是用舊電腦記得先備份啊,或是在 VM 底下操作。
這裡有 sda 64G
,作為系統。
我們可以用 lsblk 列出所有 block devices。
gdisk 是硬碟分割工具,與 fdisk 的區別是支援 GPT 分割表。
我們先處理第一顆硬碟。
gdisk /dev/sda
p
來列出現有的分割區,目前是空的。
BIOS boot partition
為了讓 Grub 能在 Legacy BIOS 開機,需要新增一個 BIOS boot partition。
n
來新增一個分割區。
- Partition number: (預設, 直接enter)
- First sector: (預設, 直接enter)
- Last sector: +1M
- Partition type: ef02。
再次用 p 來檢查分割區。
Boot partition
- Partition number: (預設, 直接enter)
- First sector: (預設, 直接enter)
- Last sector: +100M
- Partition type: (預設, 直接enter)。
再次用 p 來檢查分割區。
Swap partition
- Partition number: (預設, 直接enter)
- First sector: (預設, 直接enter)
- Last sector: +4096M
- Partition type: 8200 (Linux swap)。
關於 swap partition 到底要分割多大,參考 Rat Hat 手冊 Recommended System Swap Space
如果想要使用休眠功能,swap partition 必須大於實體 RAM 大小。
再次用p
列出分割表狀態
Root partition
剩餘的空間我們分割作為跟目錄使用
- Partition number: (預設, 直接enter)
- First sector: (預設, 直接enter)
- Last sector: (預設, 直接enter)
- Partition type: (預設, 直接enter)
再次用p
列出分割表狀態
最終我們按w
將分割表寫入硬碟
Step 2 格式化
Boot partition
建議格式化為Fat 32,被比較多的 UEFI BIOS 與 Bootloader 支援。
mkfs.vfat -F 32 /dev/sda2
Swap partitin
mkswap /dev/sda3
Root file system
mkfs.btrfs /dev/sda4
Step 3 安裝
在安裝前必須先將檔案系統掛載進來,chroot 之後才可以安裝。
Mount file system
掛載 Root file system
mount /dev/sda4 /mnt
掛載 Boot partition
mkdir /mnt/boot
mount /dev/sda2 /mnt/boot
掛載 Swap partition
swapon /dev/sda3
Mirror List Ranking
在安裝前先利用rankmirrors
工具來排序比較快的站點。
在排序前先複製一份 mirrorlist,因為等一下會被覆蓋掉,再註解掉不想加入的站點(可選),便可開始排序。
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
rankmirrors -n 5 /etc/pacman.d/mirrorlist.bak > /etc/pacman.d/mirrorlist
Install Base System
安裝基本的 base 和 base-devel packages,base-devel 包含了基本的編譯工具。
pacstrap -i /mnt base base-devel
按 Enter 安裝所有的軟體。
Generate fstab
/etc/fstab
這個檔案設定了 Linux 系統開機需要掛載哪些檔案系統,使用genfstab
可以自動產生。
-U
的參數是表示使用 UUID 作為分割區的識別碼,不會有因為換了排線接線順序導致代號變動的情況。
genfatab -U -p /mnt >> /mnt/etc/fstab
如果使用 SSD ,建議可以在產生之後再編輯
/etc/fstab
,在 SSD 的分割區多加discard
與noatime
這些參數。discard
參數會在檔案被刪除之後真的實際抹除檔案,因為在 SSD ,寫入檔案時必須先將先前資料清空。 傳統 Hard Drive 刪除檔案只是將檔案標記為可刪除的狀態,詳見 Trim。noatime
則是不記錄檔案讀取時間。以上兩個設定,對 SSD 的效能都有幫助。 關於atime
,noatime
,relatime
詳見 fstab 與 Solid State Drives。
Chroot
Chroot到掛載的檔案系統裡面使用root身分來繼續安裝系統,
chroot 之後就很像進到了要安裝的系統裡面,雖然我們現在是用Live CD。
arch-root /mnt /bin/bash
Locale
編輯語系設定檔,編輯 /etc/locale.gen
,將 zh_TW.UTF-8 UTF-8
與 en_US.UTF-8 UTF-8
取消註解。
產生語系檔
locale-gen
設定預設語系
echo "LANG=en_US.UTF-8" > /etc/locale.conf
建議可以用英文作為預設語系,這樣在無 GUI 介面下的 terminal 時才不會有中文字型問題, 真正的語系可以往後在
.xinitrc
設定。
Timezone & Clock
設定時區
ln -s /usr/share/zoneinfo/Asia/Taipei /etc/localtime
同步 Hardware clock
hwclock --systohc --utc
如果你是灌雙系統 (Linux/Windows),可能會遇到 Windows 用 localtime 非 UTC 的問題, 詳見 UTCinWindows
Init File System
mkinitcpio -p linux
Bootloader (Grub)
pacman -S grub efibootmgr
安裝 grub bootloader for EFI
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch --recheck
安裝 grub bootloader for MBR boot
grub-install --target=i386-pc --recheck /dev/sda
產生 grub 設定檔
grub-mkconfig -o /boot/grub/grub.cfg
Hostname
設定主機名稱
echo "YOUR-HOSTNAME" > /etc/hostname
編輯 /etc/hosts
讓剛剛設定的主機名稱可以被解析到自己電腦。
Pacman setting
編輯 pacman 設定檔,開啟 multilib。
multilib 允許 64 位元系統可以安裝 32 位元的 library 。
增加以下設定檔,以便安裝 yaourt, 將來想要安裝 AUR (Arch User Repository) 的套件(非官方),可以用 yaourt 存取。
vi /etc/pacman.conf
[archlinuxfr]
SigLevel = Optional TrustAll
Server = http://repo.archlinux.fr/$arch
安裝 yaourt
pacman -S yaourt
Setup User & Change Password
變更 root 密碼
passwd
新增系統管理者並增加至 sudo list
useradd YOUR-USER-NAME -d /home/YOUR-USER-NAME -s /bin/bash
mkhomedir_helper YOUR-USER-NAME
passwd YOUR-USER-NAME
sudoedit /etc/sudoers
新增以下
YOUR-USER-NAME ALL=(ALL) ALL
Step 4 第一次的重開機
Reboot
做到此步驟,可以進行第一次的重開機,使用新安裝好的系統開機,以剛剛建立的系統管理者身份登入。
退出 chroot 環境
exit
也可以使用 Ctrl-D 退出
卸載掛上的分割區
umount -R /mnt
重開機
sync && reboot
Network Setup
以新使用者登入。
看一下網路卡設定,待會要設定 DHCP ,由此可得網路卡名稱是 enp0s3
ip link
啟用 DHCP 服務,使用 enp0s3
這張網卡。
$ sudo systemctl enable [email protected]
開啟服務
$ sudo systemctl start [email protected]
檢查狀態
$ sudo systemctl status [email protected]
ping google 看看
$ ping google.com
網路通了!
----------- 我是分割線 -----------
Part 1 到這裡一段落,接下來 Part 2 會設定 xfce4 桌面環境。