之前用的 Arch Linux 不論是在 Banana Pi 或是 Proxmox 上,都是系統已經初步完成了,只要再安裝一些程式就可以使用了,很少自己動手,從安裝光碟來安裝,這一次剛好利用 VMware ESXi 測試系統時,手動來安裝一次,發現它的安裝還是保持了最早 Linux 的安裝方式,一切都要自己動手,一步一步的來,從分割硬碟、設定網路、安裝套件、開機程式…,在今天這種 Linux 都已經朝向簡單易安裝的模式中,非常的特別,和我最早學習的 Slackware Linux 很相近。
個人對於 Arch Linux 有一種偏愛,因為它的系統安裝完成不大,執行速度快,需要什麼套件由自己來安裝,而且它是採用無縫升級,永遠可以更新到最新版本,不像有些系統,有一些固定的支援期,或是每半年就推出一個新版本,大家好像都在當白老鼠,而且還玩的很愉快,我也是其中之一。
參考網頁:
滾動式更新無縫升級 Arch Linux簡介及安裝 – 技術專欄 – 網管人NetAdmin
Linux – 簡易安裝 Arch Linux 教學 | Mr. Opengate
Arch Linux 官方網站:https://www.archlinux.org/
Arch Linux 下載網頁:https://www.archlinux.org/download/
目前下載時最新的版本是 2017.03.01 版
[@more@]
4. 使用 cgdisk 分割硬碟
# cgdisk /dev/sda
7. 分割區的型式,直接按 Enter 鍵即可,內定是 8300
10. 直接按 Enter 鍵,剩下的空間全部拿來做為 SWAP
17. 改用 cfdisk 來分割硬碟
# cfdisk /dev/sda
29. 格式化硬碟及掛載目錄
# mkfs.ext4 /dev/sda1
# mkswap /dev/sda2
# mount /dev/sda1 /mnt
30. 查看網路卡的代號 ens33
# ip addr show
31. 設定網路
# ip addr add 192.168.1.29/24 dev ens33
# ip route add default via 192.168.1.254
33. 設定更新的 Server 以在台灣為優先
# cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.$(date +%F)
# sed -i ‘/^Server/s/Server/#Server/’ /etc/pacman.d/mirrorlist
# sed -i ‘/.tw//s/#Server/Server/’ /etc/pacman.d/mirrorlist
35. 安裝基本系統及 grub
# pacstrap /mnt base grub
36. 建立新系統的 /etc/fstab
# genfstab -U -p /mnt >> mnt/etc/fstab
37. Chroot 到 /mnt 目錄之下
# arch-chroot /mnt
38. 設定主機名稱
# echo arch > /etc/hostname
39. 設定時區
# ln -s /usr/share/zineinfo/Asia/Taipei /etc/localtime
41. 設定支援的語系
# sed -i ‘s/^#en_US.UTF-8/en_US.UTF-8/’ /etc/locale.gen
# sed -i ‘s/^#zh_TW.UTF-8/zh_TW.UTF-8/’ /etc/locale.gen
43. 設定預設的語系
# echo ‘LANG=”en_US.UTF-8″‘ > /etc/locale.conf
44. 將 SWAP 分割區的設定加入到 /etc/fstab
45. 建立開機映像檔
# mkinitcpio -p linux
47. 安裝 grub 到 /dev/sda
# grub-install –target=i386-pc –recheck /dev/sda –force
48. 建立 grub 開機功能表
# grub-mkconfig -o /boot/grub/grub.cfg
49. 退出、卸載分割區、重新開機
# exit;umount /mnt;reboot
55. 設定 DNS 查詢設定
# rm -rf /etc/resolv.conf
# ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
56. 啟動相關服務
# systemctl disable netctl.service
# systemctl enable systemd-networkd.service
# systemctl ensable systemd-resolved.service
# systemctl start systemd-networkd.service
# systemctl start systemd-resolved.service