2021年2月1日 星期一

Arch Linux安裝筆記

工作的關係,接觸到Linux的系統,
一般來講,說到Linux,大部分都會想到Ubuntu的Distrubtion,
由於Ubuntu整合的GUI功能非常強大,而且安裝方便好上手,
不管是使用的人數,以及維護的完整性,還有網路的資料,
通常需要功能,問狗的關鍵字最後打Ubuntu,通常都找得到資料,
不過一些安裝系統的細節,在Ubuntu的安裝檔裡面都已經幫使用者包裝得很完整,
對於一個需要用到Linux開發者來說,我覺得還是需要注意這些小細節,
同事推薦Arch Linux,是一個輕量級的Linux,
最小安裝之後僅占硬碟約2G的容量,而且可以高度客製化系統,
可以自由選擇安裝的GUI套件,譬如: 桌面管理系統(gnome / i3 / etc...)或者是檔案管理員,
並且Arch Linux的設計準則是: 簡單(Simplicity), 最新流行(Modernity),
使用Arch LInux使者者可以拿到最新Linux Kernel,與最新可靠的套件,
而且官方文件的完整度很高,通常'照著文件'的步驟走就可以完成,
不過同一件事,Arch Linux有很多方式可以達成,譬如說: BootLoader & Network Manager,
都可以依照使用者習慣的方式安裝,正是因為方法實在太多,
這篇文章主要是紀錄我目前安裝Arch Linux的套件以及其方法。
安裝作業系統,必須先知道電腦開機的流程(大略)是:
上電 -> Bios -> UEFI -> BootLoader -> OS(Linux / Windows / MacOS)
其中,Bios是固定寫在主機板的系統,他的工作主要是偵測電腦的硬體,例如:CPU型號, RAM容量, 顯卡, HDD硬碟, SSD etc...
在偵測完成之後,Bios會找到硬碟的UEFI類型的開機磁區,再來會把開機的主控權,
移交到開機磁區的BootLoader 系統,再來把BootLoader紀載的系統開機參數,將OS開啟。


以下是安裝Arch Linux的完整步驟,並以VMware 16.0進行安裝系統的範例。

安裝需求:

1. 機器一定要有連外網路
2. 下載Arch Linux最新的映象檔,載點請點我

建立VMWare虛擬機的過程冗長,
所以我以無GUI版本為條件,虛擬機我設定2-cores, 1G Ram, 30G HHD, CD/DVD磁碟指向下載下來的映象檔,
以下是重要的設定內容,其他沒有提到的部分,下一步到底就可以。
1. 虛擬機的作業系統類型:Linux -> Other Linux 5.x and Later Kernel(64-bits)



















2. 硬碟容量與類型:30GB, Store as Single File(將硬碟檔存成同一個檔案)



















3. 設定成UEFI的開機類型




















VMWare虛擬機設定完成之後,將該虛擬機開機,
開完機之後,會進入文字命令模式,接下來就是Key指令安裝的部分,

安裝前準備:

1. 先確認開機類型為UEFI,鍵入
ls /sys/firmware/efi/efivars
如果有顯示類似以下資料,就是UEFI的開機方式。





















2. 確認有連外網路,Key上
ping www.google.com
3. 設定讓系統自動更新日期與時間,鍵入
timedatectl set-ntp true

正式安裝:一切就緒之後,可以開始安裝系統,主要步驟分成幾個,切割磁區與安裝系統以及設定開機磁區。


切割硬碟磁碟區:因為Bootloader需要另外的磁區存放,系統碟也需要存放在另一個磁區存放,一般建議都是切兩個磁碟區。


1. 先檢查系統偵測到的硬碟,鍵入
lsblk
工具會印出目前系統找到的磁碟區,如下圖






一般Linux把硬碟習慣命名為sd開頭,sda即為偵測到的硬碟的第一個。
2. 開始磁碟分割,一般會把偵測到的硬體裝置映射到/dev/*裡面,所以鍵入
gdisk /dev/sda
gdisk是將建立硬碟的分割表的工具,並將表格寫入裝置裡面,如果更動以格式化完成的硬碟分割表,系統將會無法辨識該硬碟的磁區
在gdisk工具裡面,新增Bootloader的磁區,依序鍵入:
n(新增磁區) -> p(主要分割區) -> [start sector, 用預設即可,按Enter] -> [end sector, 鍵入+1G]) -> 鍵入ef00(選擇磁區為EFI類型,如下圖)













3. 新增Linux系統磁區,並且分配其餘空間到此磁區內,依序鍵入:
n(新增磁區) -> p(主要分割區) -> [start sector, 用預設即可,按Enter即可] -> [end sector,按Enter即可,會將剩餘空間分配到這個磁區]) -> [選擇磁區類型,按Enter即可]
4. 在gdisk工具內鍵入w,將磁碟分割表寫入硬碟內。
5. 磁碟分割完成之後就要開始格式化硬碟,BootLoader磁區建議是使用FAT32,(比較通用,Windows & Linux都可以讀到這個格式),在Linux命令行鍵入
mkfs.fat -F32 -n "BOOT" /dev/sda1
其中-F32為FAT32,-n "BOOT"為將磁區命名為"BOOT",/dev/sda1為sda硬碟的第一個磁區。
6. 格式化Linux系統磁區,在命令行鍵入
mkfs.ext4 /dev/sda2
7. 格式化完成之後,再檢查一次磁碟分割區,會發現多了兩個磁區(sda1, sda2),如下圖。







安裝系統:這個步驟主要是將Linux系統安裝到硬碟裡面。

1. 將分割好的Linux系統磁區掛載到目前系統裡,讓安裝軟體可以將系統安裝到磁碟內,鍵入
mount /dev/sda2 /mnt
其中/dev/sda2為磁碟區,/mnt為掛載位置
2. 將Linux系統安裝到/mnt的位置,鍵入
pacstrap /mnt base linux linux-firmware
3. 在安裝過程中,會需要連上網路確認/下載更新包,整個過程大約需要30分鐘。

設定開機磁區:經過安裝系統之後,需要設定開機的參數,才能夠由安裝好系統的硬碟進行開機。

1. 將BOOT磁區掛載到系統裡,鍵入
mount /dev/sda1 /mnt/boot/efi
2. 產生開機硬碟啟動檔,鍵入
genfstab -U /mnt /mnt/boot/efi > /mnt/etc/fstab
3. 進入自行安裝的Linux系統,鍵入
arch-chroot /mnt
4. 設定系統至台灣的時區,鍵入
ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime
5. 下載文字編輯器(vim)以便修改檔案內的參數,鍵入
pacman -Sy vim
6. 設定系統語系,修改/etc/locale.gen,取消zh_tw.UTF-8 UTF8的註解
7. 設定本機名稱,修改/etc/hostname為使用者喜好的名稱(eg: test)
8. 設定連線名稱,新增/etc/hosts的內容,將test的名稱指向本機位置,如下圖








9. 設定root密碼,鍵入
passwd

設定開機磁區參數:

1. 將目前資料夾指向/boot/efi資料夾,鍵入
cd /boot/efi
2. 安裝bootloader,鍵入
bootctl install
3. 依照CPU的廠商,下載CPU微碼,如amd的CPU,鍵入
pacman -Sy amd-ucode
會將CPU微碼的檔案下載至/boot/amd-ucode.img
4. 修改bootloader的參數(/boot/efi/loader/loader.conf)為下圖





其中arch.conf為預設啟動Arch Linux參數檔(檔案路徑在/boot/efi/loader/entries/arch.conf)
timeout 1為bootloader等待一秒無回應時啟動的預設系統,
5. 修改arch.conf啟動參數檔(/boot/efi/loader/entries/arch.conf)為下圖






6. 在/boot/efi/loader/entries/新增arch-loader資料夾,並將/boot/內的檔案複製到/boot/efi/loader/entries/arch-loader,裡面包含Linux的Kernel檔與CPU微碼檔,之後如果更新Linux Kernel,必須手動將檔案複製到該資料夾內。
7. 這樣就安裝完畢了,完畢之後將VMWare的CD退出,理論上可以順利重開機。


參考資料

沒有留言: