Archlinux 安裝教學-基礎系統

Archlinux 安裝教學-基礎系統

最近換了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  

gdisk sda

p 來列出現有的分割區,目前是空的。

gdisk p

BIOS boot partition

為了讓 Grub 能在 Legacy BIOS 開機,需要新增一個 BIOS boot partition。

n 來新增一個分割區。

  • Partition number: (預設, 直接enter)
  • First sector: (預設, 直接enter)
  • Last sector: +1M
  • Partition type: ef02。

gdisk bios boot

再次用 p 來檢查分割區。

gdisk bios boot p

Boot partition

  • Partition number: (預設, 直接enter)
  • First sector: (預設, 直接enter)
  • Last sector: +100M
  • Partition type: (預設, 直接enter)。

gdisk boot

再次用 p 來檢查分割區。

gdisk boot p

Swap partition

  • Partition number: (預設, 直接enter)
  • First sector: (預設, 直接enter)
  • Last sector: +4096M
  • Partition type: 8200 (Linux swap)。

gdisk swap

關於 swap partition 到底要分割多大,參考 Rat Hat 手冊 Recommended System Swap Space

| Amount of RAM in the system | Recommended swap space | Recommended swap space if allowing for hibernation | | ------------- |:-------------:| -----:| | less than 2 GB | 2 times the amount of RAM | 3 times the amount of RAM | | 2 GB - 8 GB | Equal to the amount of RAM | 2 times the amount of RAM | | 8 GB - 64 GB | 0.5 times the amount of RAM | 1.5 times the amount of RAM | | more than 64 GB | workload dependent | hibernation not recommended |

如果想要使用休眠功能,swap partition 必須大於實體 RAM 大小。

再次用p列出分割表狀態

gdisk swap p

Root partition

剩餘的空間我們分割作為跟目錄使用

  • Partition number: (預設, 直接enter)
  • First sector: (預設, 直接enter)
  • Last sector: (預設, 直接enter)
  • Partition type: (預設, 直接enter)

gdisk root

再次用p列出分割表狀態

gdisk root p

最終我們按w將分割表寫入硬碟

gdisk sda w


Step 2 格式化

Boot partition

建議格式化為Fat 32,被比較多的 UEFI BIOS 與 Bootloader 支援。

mkfs.vfat -F 32 /dev/sda2  

mkfs vfat boot partition

Swap partitin

mkswap /dev/sda3  

mkswap

Root file system

mkfs.btrfs /dev/sda4  

mkfs btrfs root partition


Step 3 安裝

在安裝前必須先將檔案系統掛載進來,chroot 之後才可以安裝。

Mount file system

掛載 Root file system

mount /dev/sda4 /mnt  

mount root

掛載 Boot partition

mkdir /mnt/boot  

mkdir boot

mount /dev/sda2 /mnt/boot  

mount boot

掛載 Swap partition

swapon /dev/sda3  

swapon

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  

rankmirrors

Install Base System

安裝基本的 base 和 base-devel packages,base-devel 包含了基本的編譯工具。

pacstrap -i /mnt base base-devel  

按 Enter 安裝所有的軟體。

pacstrap

Generate fstab

/etc/fstab 這個檔案設定了 Linux 系統開機需要掛載哪些檔案系統,使用genfstab 可以自動產生。

-U 的參數是表示使用 UUID 作為分割區的識別碼,不會有因為換了排線接線順序導致代號變動的情況。

genfatab -U -p /mnt >> /mnt/etc/fstab  

genfstab

如果使用 SSD ,建議可以在產生之後再編輯 /etc/fstab ,在 SSD 的分割區多加 discardnoatime 這些參數。 discard 參數會在檔案被刪除之後真的實際抹除檔案,因為在 SSD ,寫入檔案時必須先將先前資料清空。 傳統 Hard Drive 刪除檔案只是將檔案標記為可刪除的狀態,詳見 Trimnoatime 則是不記錄檔案讀取時間。以上兩個設定,對 SSD 的效能都有幫助。 關於 atime,noatime, relatime 詳見 fstabSolid State Drives

Chroot

Chroot到掛載的檔案系統裡面使用root身分來繼續安裝系統,
chroot 之後就很像進到了要安裝的系統裡面,雖然我們現在是用Live CD。

arch-root /mnt /bin/bash  

chroot

Locale

編輯語系設定檔,編輯 /etc/locale.gen,將 zh_TW.UTF-8 UTF-8en_US.UTF-8 UTF-8 取消註解。

locale

產生語系檔

locale-gen  

locale gen

設定預設語系

echo "LANG=en_US.UTF-8" > /etc/locale.conf  

default locale

建議可以用英文作為預設語系,這樣在無 GUI 介面下的 terminal 時才不會有中文字型問題, 真正的語系可以往後在 .xinitrc 設定。

Timezone & Clock

設定時區

ln -s /usr/share/zoneinfo/Asia/Taipei /etc/localtime  

timezone

同步 Hardware clock

hwclock --systohc --utc  

hwclock

如果你是灌雙系統 (Linux/Windows),可能會遇到 Windows 用 localtime 非 UTC 的問題, 詳見 UTCinWindows

Init File System

mkinitcpio -p linux  

mkramfs

Bootloader (Grub)

pacman -S grub efibootmgr  

install grub install efibootmgr

安裝 grub bootloader for EFI

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch --recheck  

grub install

安裝 grub bootloader for MBR boot

grub-install --target=i386-pc --recheck /dev/sda  

產生 grub 設定檔

grub-mkconfig -o /boot/grub/grub.cfg  

grub mkconfig

Hostname

設定主機名稱

echo "YOUR-HOSTNAME" > /etc/hostname  

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

以新使用者登入。

first login

看一下網路卡設定,待會要設定 DHCP ,由此可得網路卡名稱是 enp0s3

ip link  

iplink

啟用 DHCP 服務,使用 enp0s3 這張網卡。

$ sudo systemctl enable [email protected]

開啟服務

$ sudo systemctl start [email protected]

檢查狀態

$ sudo systemctl status [email protected]

dhcp service

ping google 看看

$ ping google.com

網路通了!

----------- 我是分割線 -----------

Part 1 到這裡一段落,接下來 Part 2 會設定 xfce4 桌面環境。