在 VirtualBox 安裝 Arch Linux

Posted by blueskyson on September 16, 2021

摘要

以下安中步驟主要參考自 youtube,我只是將安裝過程的指令和螢幕截圖下來,如果聽英文沒問題可以直接看影片。對分割、掛載磁碟、設定 Linux 環境很熟悉的人可以直接按照以下摘要的指令安裝:

# setfont ter-224b.psf.gz
# ping google.com
^C
# ls /sys/firmware/efi/efivars
# timedatectl set-ntp true
# timedatectl status
# cfdisk

gpt
New
512M
Type
EFI System
New
<Enter>
Write
yes
Quit

# lsblk
# mkfs.fat -F32 /dev/sda1
# mkfs.ext4 /dev/sda2
# mkdir /mnt/efi
# mount /dev/sda1 /mnt/efi
# mount /dev/sda2 /mnt
# lsblk
# pacstrap /mnt base linux linux-firmware vim nano
# genfstab -U /mnt >> /mnt/etc/fstab
# cat /mnt/etc/fstab
# arch-chroot /mnt
# ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime
# hwclock --systohc

# vim /etc/locale.gen
取消註解 en_US.UTF-8 UTF-8
取消註解 zh_TW.UTF-8 UTF-8
<Esc>:wq

# vim /etc/locale.conf
LANG=en_US.UTF-8
<Esc>:wq

# locale-gen
# vim /etc/hostname
鍵入 hostname
<Esc>:wq

# vim /etc/hosts
127.0.0.1   localhost
::1         localhost
127.0.1.1   hostname.localdomain    hostname
<Esc>:wq

# passwd
# useradd -G wheel,audio,video -m username
# passwd username
# pacman -Syu netctl dhcpcd sudo

# EDITOR=vim visudo
取消註解 %wheel ALL=(ALL) ALL
<Esc>:wq

# pacman -Syu grub efibootmgr
# grub-install --target=x86_64-efi --efi-directory=/efi/ --bootloader-id=Arch
# grub-mkconfig -o /boot/grub/grub.cfg
# exit
# shutdown now

移除映像檔,重開虛擬機

# cd /etc/netctl
# sudo cp examples/ethernet-dhcp .
# ip a
查看虛擬網卡

# sudo vim ethernet-dhcp
Interface=虛擬網卡
取消註解 DHCPClient=dhcpcd
<Esc>:wq

# sudo systemctl enable dhcpcd
# sudo systemctl start dhcpcd
# ping www.google.com
^C

Step 1: 創建虛擬機

  1. 去 Arch Linux 的鏡像站下載 iso 檔,在台灣最穩定更新的應該屬交大資工計算機中心

  2. 安裝 VirtualBox,會點進來看的人應該都已經安裝了。

  3. 創建虛擬機,儲存空間建議至少要 8 GB,會點進來看的人應該都很熟 VirtualBox 的設定選項了,但還是附一張截圖。 建議處理器可以分配 2 至 4 顆,可能會安裝比較快。

  4. 接下來這一步就很重要了,請點選系統->主機板->啟用 EFI,這樣才能在安裝完畢後由 grub 引導進入系統。

  5. 請插入 Arch Linux iso 到虛擬機中,或是開機時 VirtualBox 也會提示要不要插入光碟鏡像。

做完以上步驟就可以按下啟動,進到裝系統環節啦。

Step 2: 設定字體、時間

  1. 開機畫面必須長這樣,如果你發現開機畫面有一張漂亮的淺藍色底圖,代表沒有進到 EFI 模式,請回去設定系統->主機板->啟用 EFI

  2. 首先進到終端機介面,最令人頭痛的就是預設字體實在小到不行,我們可以透過以下指令列出字體設定檔。
    # ls /usr/share/kbd/consolefonts/
    

    從列表中的字體包一個一個試自己看得舒服的字體,我是按照影片使用 ter-224b.psf.gz

    # setfont ter-224b.psf.gz
    

    如果終端機畫面太小,印不出目錄中所有檔案,可以用 less 查看:

    # ls /usr/share/kbd/consolefonts/ | less
    
  3. 調整完字體後,測試是否連上網路,照理來說是可以連上的,連不上請去其他網站找解決方法。
    # ping google.com
    

  4. 再次檢查 EFI 是否已啟用,如果列出來是空的或是 no such directory,也請移駕他處尋求解答。
    # ls /sys/firmware/efi/efivars
    

  5. 透過 ntp 進行網路校時,並確認時間是否同步。
    # timedatectl set-ntp true
    # timedatectl status
    

接下來開始分割磁區。

Step 3: 分割磁碟

  1. 有若干個分割磁碟的工具如 fdisk、gdisk、cfdisk、cgdisk,我這裡使用 cfdisk。
    # cfdisk
    

    選擇 gpt 選擇 New,我們首先要分割 EFI 分區,影片中是分割 1 G,我這次則是給它 512 MB 接下來選取 Type 選擇最上面的 EFI System 然後按下 <Enter> 選取剩餘的磁碟按下 New 把剩下空間全部劃為檔案系統。有些教學會再多劃分一個 swap 分區,但是我的硬碟空間很小,而起記憶體夠大,所以就不劃分 swap 了。 選擇 Write 把目前配置寫入磁碟。 選擇 Quit

  2. 接下來用 mkfs 格式化磁碟區,EFI 用的是類似 USB 的 FAT,而 Linux 系統通常用 ext4。建議可以先用 lsblk 查看分區大小及編號是否正確,通常命名為 sda1、sda2。
    # lsblk
    # mkfs.fat -F32 /dev/sda1
    # mkfs.ext4 /dev/sda2
    

  3. 掛載磁區,首先建立 EFI 掛載點 /mnt/efi,然後依序掛載 EFI 和系統磁區。
    # mkdir /mnt/efi
    # mount /dev/sda1 /mnt/efi
    # mount /dev/sda2 /mnt
    # lsblk
    

  4. 接下來終於要透過 pacstrap 將 Linux 系統安裝到掛載點了,必須要安裝 base、linux、linuxfirmware,以及你常用的編輯器 vim 或 nano 等。需要花一些時間等它下載安裝。
    # pacstrap /mnt base linux linux-firmware vim nano
    

  5. genfstab 產生開機自動掛載的配置檔案。注意 /dev/sda1 和 /dev/sda2 都要有,如果不見了,請先刪除 /mnt/etc/fstab,回到 3. 重新 mount 一次,然後再試一次 genfstab
    # genfstab -U /mnt >> /mnt/etc/fstab
    # cat /mnt/etc/fstab
    

Step 4: 設定系統環境

  1. 透過 arch-chroot 進入新系統的根目錄。
    # arch-chroot /mnt
    
  2. 設定 timezone 以及系統時間。
    # ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime
    # hwclock --systohc
    

  3. 設定系統語言,取消註解 en_US.UTF-8 以及 zh_TW.UTF-8,保存退出。
    # vim /etc/locale.gen
    

    影片中沒有執行以下兩個動作。動作一:

    # locale-gen
    

    動作二:

    # vim /etc/locale.conf
    LANG=en_US.UTF-8
    <Esc>:wq
    

    這兩個動作其實也可以等到裝完系統後再處理。

  4. 設定 etc/hostname 與 /etc/hosts,注意以 tab 分隔 IP 和 hostname,不是用空白鍵分隔。
    # vim /etc/hostname
    

    # vim /etc/hosts
    

  5. 設定 root 密碼、新增 user (我新增的 user 叫 lin)。
    # passwd
    # useradd -G wheel,audio,video -m lin
    # passwd lin
    

  6. 下載網路和套件和 sudo。
    # pacman -Syu netctl
    # pacman -Syu dhcpcd
    # pacman -Syu sudo
    
  7. 給予 wheel 群組系統權限,即給予剛剛創建的使用者 (lin) 系統權限。
    # EDITOR=vim visudo
    

    取消註解 %wheel ALL=(ALL) ALL

  8. 安裝 grub 和 efi 套件。
    # pacman -Syu grub efibootmgr
    # grub-install --target=x86_64-efi --efi-directory=/efi/ --bootloader-id=Arch
    # grub-mkconfig -o /boot/grub/grub.cfg
    

至此終於安裝完 Arch Linux 了,可以退出 arch-chroot,關閉電腦。

# exit
# shutdown now

Step 5: 重開虛擬機、啟動 dhcpcd 服務

  1. 回到 VirtualBox 的 存放裝置,退出開機光碟。

  2. 重新啟動虛擬機,用剛剛註冊的 user (lin) 登入。此時我們會發現無法連上網路,這是因為 dhcpcd 尚未啟用,透過以下指令啟用 dhcpcd。
    # cd /etc/netctl
    # sudo cp examples/ethernet-dhcp .
    # ip a
    

    記住虛擬網卡的名子叫 enp0s3,要把網卡寫進設定檔中,並取消註解 DHCPClient=dhcpcd

    # sudo vim ethernet-dhcp
    

    啟用並開始執行 dhcpcd 服務。

    # sudo systemctl enable dhcpcd
    # sudo systemctl start dhcpcd
    
  3. 測試網路是否成功連接,如果這裡出問題也請自行搜尋解法。
    # ping www.google.com
    

Step 6: 大功告成

下載 neofetch 並截圖跟親朋好友分享你的喜悅吧!

# sudo pacman -Syu neofetch
# neofetch

如果這篇網誌成功幫助到您,不妨動動小手幫這個網站點顆星星 https://github.com/blueskyson/blueskyson.github.io

安裝完 Arch Linux 可以參考這一篇設定系統:Arch Linux 基本設定