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 的分割區多加 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

chroot

Locale

編輯語系設定檔,編輯 /etc/locale.gen,將 zh_TW.UTF-8 UTF-8 與 en_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 的問題,
詳見 UTC_in_Windows

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 桌面環境。

jz