在虛擬伺服器 VPS 安裝 ArchLinux

好多提供 VPS SERVER 的公司, 一般都沒有 ArchLinux 選擇 , 但有另一方法做到間接安裝 ArchLinux , 好把現在開始動手做

前提你的SERVER 最少有2G Ram 才可以用這方法 , 因為會用 RAM DISK 來做 BOOT UP 太少 RAM 不能把 ArchLinux 臨時系統方上去

Grml安装

Grml 是一個基於 Debian 的可引導即時系統 (Live-CD),Grml 內置很多適用於系統管理員的 GNU/Linux 軟體,Grml 特別適合於安裝、部署和系統救援等管理任務,而 grml-rescueboot 可以幫你輕鬆完成 GRUB 引導 ISO 的配置,方便隨時引導 Grml Live Linux.

伺服器需要先安裝 Debian 系統,在自己的伺服器雲控制台選擇 Debian12 安裝

登入後安裝 grml-rescueboot

# 可以使用如下命令自動下載最新的 grml iso, 但是這個只能下載 full 版本的 iso update-grml-rescueboot

# 如果機器內存較小, 我們可以手動下載並使用 small 版本的 iso

編輯設定檔, 在這個設定檔裡面我們需要設定 boot live-cd ssh 密碼等一些資訊

vi /etc/default/grml-rescueboot

對於原系統是 debian 的, 並且使用 ifupdown 來管理網路的機器, 可以在啟動選項裡面使用 debnet, 這樣 grml 就會自動將原系統內的 interfaces 設定檔複製到 grml 內使用

修改 CUSTOM_BOOTOPTIONS 內容 ( 選擇合適的情況 )

CUSTOM_BOOTOPTIONS="ssh=password lang=us keyboard=us tz=Asia/Hong_Kong debnet toram"

如果原系統的閘道 ip 不在同一網段, grml 將無法新增預設路由, 在啟動選項裡面加入 services=networking 即可解決

CUSTOM_BOOTOPTIONS="ssh=password lang=us keyboard=us tz=Asia/Hong_Kong services=networking debnet toram"

如果原系統不是 debian, 但只要網路支援 dhcp, 你還可以使用下面的配置

CUSTOM_BOOTOPTIONS="ssh=password lang=us keyboard=us tz=Asia/Hong_Kong toram"

還可以配置使用靜態位址

CUSTOM_BOOTOPTIONS="ssh=password lang=us keyboard=us tz=Asia/Hong_Kong toram ip=192.168.1.100::192.168.1.1:255.255.255.0:myhostname:eth0:off dns=8.8.8.8,8.8.4.4"

更新 grub 配置

update-grub

讓 SERVER 下一次啟動的時候引導 grml

# 使用 full iso 的使用如下命令

grub-reboot "Grml Rescue System (grml-full-2025.08-amd64.iso)" 

# 使用 small iso 的使用如下命令

grub-reboot "Grml Rescue System (grml-small-2025.08-amd64.iso)"

完成後 REBOOT , 最好用 VPS 供應商的 VNC CONSOLE , 可以觀察 BOOT 機情況 , 有時因為其他因數SSH 未別能成功啟動

見到這個畫面你可以按 e 修改 network 訊息

當你完成了這步驟可以試試向外 ping 下, 例如: ping yahoo.com 如果成功的話就可以用 SSH 連接了

Arch安裝

  1. 下面的所有操作步驟都是在 Grml live 系統裡面完成, 確保上述的配置完成, 首先下載 archlinux-bootstrap 並解壓

由於整個 grml live 系統運行在記憶體裡, 解壓完成後務必刪掉壓縮包, 保證記憶體空間充足 ( 所以選擇 small iso 會好一點 )

剛下載的 file 放在 tmp folder , 在 tmp folder 解壓 , 除即 delete 該壓縮檔騰出寶貴的空間做接下來的設定

修改 ArchLinux Source 配置檔

請選擇你的 VPS 所在地國家 , 這樣軟件 update 會快一點 例如: 在香港可選以下的 source , 把開頭的 # 去除

## Hong Kong

Server = https://asia.mirror.pkgbuild.com/$repo/os/$arch
#Server = http://mirror-hk.koddos.net/archlinux/$repo/os/$arch
#Server = https://mirror-hk.koddos.net/archlinux/$repo/os/$arch
#Server = http://hkg.mirror.rackspace.com/archlinux/$repo/os/$arch
#Server = https://hkg.mirror.rackspace.com/archlinux/$repo/os/$arch
#Server = https://arch-mirror.wtako.net/$repo/os/$arch
#Server = http://mirror.xtom.com.hk/archlinux/$repo/os/$arch
#Server = https://mirror.xtom.com.hk/archlinux/$repo/os/$arch

避免 chroot 後提示硬碟空間不足 , 所以用 small image 會穩妥一點

chroot

初始化key

更新系統並安裝分區需要用到的工具

分區 , 我的 VPS SERVER 是 bios 引導 ,所以我會用 # bios 的分割硬碟

# 首先將磁碟轉換為 gpt 類型, 這裡假設比如你想安裝的磁碟名稱為 vda, 如果你使用 NVME 的固態硬碟, 你看到的磁碟名稱可能為 nvme0n1
lsblk # 顯示分區情況 找到你想安裝的磁碟名稱
parted /dev/vda # 執行 parted,進入互動式命令行,進行磁碟類型變更
(parted)mktable # 輸入 mktable
New disk label type? gpt # 輸入 gpt 將磁碟類型轉換為 gpt 如磁碟有數據會警告, 輸入 yes 即可
quit # 最後 quit 退出 parted 命令列互動
cfdisk /dev/vda # 來執行分區操作, 分配各個分區大小, 類型
# bios 引導需要分 BIOS boot, Linux Swap, Linux filesystem
# uefi 引導需要分 EFI System, Linux Swap, Linux filesystem
fdisk -l # 分區結束後, 复查磁碟情況

記得要 type 修改每個分區的 format , 頭 1M 是 bios 引導用 , 2G 是 swap , 其他是系統空間

格式化 , 如果不是 UEFI 引導就不用理會那些註明 uefi 的

mkfs.ext4 /dev/vda3 # 格式化根目錄
mkfs.vfat /dev/vda1 # 格式化 efi 分區, 僅 uefi 引導需要mkswap /dev/vda2 # 初始化 swap 分區
mount /dev/vda3 /mnt # 挂載分區
swapon /dev/vda2 # 啟用 swap
# 僅 uefi 分區需要
mount --mkdir /dev/vda1 /mnt/efi

安裝基本套件

生成 fstab 設定檔

執行 退出 chroot 環境

重新進入 chroot , 現在的 chroot 是指向剛格式化及安裝了基本套件的硬碟

時區配置

設定語言環境, 放開 en_US. UTF-8 所在行以及 zh_HK. UTF-8 所在行的註釋符號

用如下命令生成locale

向 /etc/locale.conf 導入內容

設置主機名

# 加入你想為主機取的主機名,例如: ArchLinux
vim /etc/hostname

# 同時在 /etc/hosts 設置與其匹配的條目
vim /etc/hosts

# 加入如下内容
127.0.0.1 localhost
::1 localhost
127.0.1.1 ArchLinux

設置網路, ip 位址可使用 列出當前ip資訊作參考 ip addr

沒有 ipv6 的就把 ipv6 address and route delete

[Match]
Name=eth0

[Network]
Address=xx.xx.xx.xx/24
Address=xxx:xxx:xxx:xxx:xxx:xxx:xxx:xxx/80
IPv6AcceptRA=no

[Route]
Gateway=x.xx.xx.1
GatewayOnLink=yes

[Route]
Gateway=xxx:xxx:xxx::1/80
GatewayOnLink=yes

如果網路支援dhcp, systemd-networkd的 dhcp 配置可如下配置

[Match]
Name=eth0

[Network]
DHCP=yes

設置 systemd-networkd 開機自啟

配置 dns

nameserver 8.8.8.8
nameserver 1.1.1.1
nameserver 8.8.4.4
nameserver 1.1.4.4

設置 root 用戶名密碼

設置 ssh 服務

PermitRootLogin yes  #允許root用戶使用密碼登錄

設置sshd開機自啟

安裝 grub

用 bios 引導的如下

pacman -S grub
grub-install --target=i386-pc /dev/vda

用 UEFI 引導的如下

pacman -S grub
如果使用 uefi 引導, 則還需要安裝 efibootmgr
pacman -S efibootmgr
# 然後使用下面的命令安裝 grub
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB

編輯grub配置檔案

去掉 GRUB_CMDLINE_LINUX_DEFAULT 參數的 quit# 添加 net.ifnames=0(避免機器重啟後, 網卡介面名稱無法與 systemd-networkd 內配置的介面名稱相匹配, 從而導致機器失聯)

重新生成grub主配置檔案

退出 chroot 環境並重啟

完成後 , 你就擁有一個滾動更新的LINUX系統