在 QEMU 中安裝 Slackware

最後更新: 2025-05-15 00:27:41 +0800 +0800
原文以英文撰寫。您正在閱讀AI翻譯版本。

Slackware 的鏡像樹、安裝媒體、套件系列與文字模式安裝程式之間保持直接的對應關係。了解這種結構有助於選取套件以及診斷安裝問題。以下範例會在 UEFI QEMU 虛擬機器中安裝 Slackware64 15.0。

Slackware 資源與鏡像樹 #

主要專案資源包括:

鏡像根目錄包含歷史版本、穩定版別名、開發樹、ISO 映像檔,以及不受支援的附加內容:

text
slackware/
├── slackware-15.0/          # 32-bit x86 release
├── slackware/               # current stable 32-bit release
├── slackware-current/       # development branch
├── slackware64-15.0/        # 64-bit x86 release
├── slackware64/             # current stable 64-bit release
├── slackware64-current/     # 64-bit development branch
├── slackware-iso/           # release ISO images and verification files
├── slackware-pre-1.0-beta/  # early historical material
└── unsupported/             # contributed boot media, packages, and add-ons

slackware-current 與 slackware64-current 是開發分支,而不是最新穩定版的別名。版本序列從 4.0 跳到 7.0;專案將版本號調整為與當時的發行版一致時,跳過了 5 和 6。

發行目錄同時也是可安裝的套件庫。例如,Slackware64 15.0 包含:

text
slackware64-15.0/
├── ChangeLog.txt
├── CHECKSUMS.md5
├── CHECKSUMS.md5.asc
├── FILELIST.TXT
├── GPG-KEY
├── PACKAGES.TXT
├── README_UEFI.TXT
├── Slackware-HOWTO
├── EFI/
├── extra/
├── isolinux/
├── kernels/
├── patches/
├── slackware64/
├── source/
├── testing/
└── usb-and-pxe-installers/

slackware64/ 包含該發行版的套件系列。patches/ 接收穩定版的安全性與正確性更新,source/ 包含對應的建置材料。PACKAGES.TXT 說明套件,FILELIST.TXT 列出完整的目錄樹。

開機媒體 #

Slackware 最初將套件分割成軟碟大小的磁碟集合,因為下載完整發行版並不實際。軟碟安裝目前已不再支援,但套件系列的組織方式仍然保留。

Slackware64 15.0 的 ISO 目錄提供 slackware64-15.0-install-dvd.iso,以及 MD5 檔案、分離式簽章和包含 ISO 清單的文字檔案。安裝 DVD 包含二進位套件樹,但省略來源樹,讓映像檔能容納於單層 DVD 媒體。鏡像樹也可用於 HTTP、FTP、NFS、PXE 或手動掛載的安裝來源。

安裝程式 ISO 是同時包含 BIOS 與 UEFI 開機資料的混合媒體。QEMU 可以直接將它連接為虛擬 CD-ROM,因此不需要將它寫入實體媒體。

從相同的發行目錄下載映像檔及其簽章,匯入專案的 GPG-KEY,並在開機前驗證簽章:

sh
curl -O https://mirrors.slackware.com/slackware/slackware-iso/slackware64-15.0-iso/slackware64-15.0-install-dvd.iso
curl -O https://mirrors.slackware.com/slackware/slackware-iso/slackware64-15.0-iso/slackware64-15.0-install-dvd.iso.asc
curl -O https://mirrors.slackware.com/slackware/slackware-iso/slackware64-15.0/GPG-KEY

gpg --import GPG-KEY
gpg --verify slackware64-15.0-install-dvd.iso.asc \
  slackware64-15.0-install-dvd.iso

套件系列 #

Slackware64 15.0 將二進位套件分為以下系列:

SeriesContents
a基礎系統;安裝程式需要此系列
ap主控台應用程式及其他非 X 程式
d編譯器、除錯器、直譯器與開發工具
eGNU Emacs
fFAQ、HOWTO 與其他文件
kLinux 核心原始碼
kdeKDE Plasma 及其應用程式
l共用函式庫與支援軟體
n網路程式與服務
tTeX 排版軟體
tclTcl、Tk 與相關工具
xX Window System
xap桌面系列以外的圖形應用程式
xfceXfce 桌面環境
y文字模式 BSD 遊戲

這些系列是分類,而不是獨立解析相依性的套件群組。例如,Slackware64 15.0 將 Vim 放在 ap,並將其共用函式庫之一 libsodium 放在 l。因此,按分類移除整個系列可能會破壞另一個系列中保留的程式。

Slackware64 15.0 HOWTO 估算所有系列需要約 16 GB。32 GiB 的虛擬磁碟可為已安裝系統、套件更新、日誌與工作資料保留空間。磁碟空間充足時,完整安裝是最不容易出錯的選擇。

建立虛擬機器 #

透過主機的套件管理器安裝 QEMU 與 OVMF。OVMF 套件路徑會因發行版而異;執行以下命令前,先定位程式碼映像檔與變數儲存映像檔。複製變數儲存範本,因為 QEMU 必須寫入 UEFI 變數,但不能修改套件提供的範本。

sh
qemu-img create -f qcow2 slackware64-15.0.qcow2 32G
cp /usr/share/OVMF/OVMF_VARS.fd ./OVMF_VARS.fd

qemu-system-x86_64 \
  -machine q35 \
  -m 4G \
  -smp 4 \
  -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE.fd \
  -drive if=pflash,format=raw,file=OVMF_VARS.fd \
  -drive file=slackware64-15.0.qcow2,format=qcow2,if=virtio \
  -drive file=slackware64-15.0-install-dvd.iso,media=cdrom,readonly=on \
  -nic user,model=virtio-net-pci \
  -boot order=d

virtio 磁碟會顯示為 /dev/vda,虛擬 CD-ROM 通常會顯示為 /dev/sr0。省略兩個 pflash 磁碟會使 QEMU 使用預設的傳統 BIOS 啟動;BIOS 安裝會使用 LILO,而不是 ELILO。

對虛擬磁碟分割 #

接受預設安裝程式核心,必要時選取鍵盤配置,然後以無密碼的 root 身分登入。變更分割表前先檢查裝置:

sh
lsblk
cgdisk /dev/vda

建立包含以下分割區的 GPT:

PartitionSizeGPT typePurpose
/dev/vda1512 MiBEF00EFI System Partition
/dev/vda24 GiB8200Swap
/dev/vda3Remaining space8300Linux root filesystem

寫入分割表並結束 cgdisk。安裝程式稍後會格式化 swap 與 root 分割區。Setup 也會偵測 EFI System Partition,必要時將其格式化為 FAT,並掛載到 /boot/efi。

執行 Setup #

啟動安裝程式:

sh
setup

標準安裝會依下列順序使用 Setup 選單:

  1. KEYMAP:如果預設的 US 配置適用,可以跳過。
  2. ADDSWAP:偵測 /dev/vda2,將其格式化為 swap、啟用它,並加入未來的 /etc/fstab。
  3. TARGET:選取 /dev/vda3 作為 / 並將其格式化。對此虛擬機器而言,ext4 是合適的預設值。
  4. SOURCE:選取 Install from a Slackware CD or DVD 並掃描媒體。連接的 ISO 應會被偵測為 /dev/sr0。
  5. SELECT:選取套件系列。保留 a;完整安裝選取所有系列,或只移除已知其相依性後果的集合。
  6. INSTALL:選擇套件提示模式並複製選取的套件。
  7. CONFIGURE:安裝核心並設定開機載入程式、網路、服務、主控台、時鐘、時區與 root 密碼。

安裝模式控制提示方式,而不是相依性解析:

ModeBehavior
full安裝每個選取系列中的所有套件
terse使用單行進度執行與 full 相同的安裝
menu or expert顯示每個系列的套件核取清單
newbie逐一提示未標記為必要的套件
custom or tagpath套用管理員提供的 tagfile

使用 full 或 terse 可避免跨系列相依性造成的遺漏。在多台機器上重現相同的套件選擇時,tagfile 很有用。

安裝套件時,Alt+F2 會開啟另一個安裝程式主控台。接著可以執行 df -hT 等命令監控目標檔案系統。Alt+F1 會返回 Setup。也可以從第二個主控台檢查已掛載的安裝樹,通常位於 /mnt/cdrom 下。

設定 UEFI 開機 #

由於虛擬機器是透過 OVMF 開機安裝程式,Setup 會偵測到 UEFI 安裝。出現提示時略過 LILO、安裝 ELILO,並允許 Setup 建立 Slackware 韌體項目。ELILO 會將檔案放在 /boot/efi/EFI/Slackware 下。

完成剩餘的設定畫面並設定 root 密碼。結束 Setup、關閉客體系統、從 QEMU 命令中移除 ISO 磁碟,然後讓磁碟優先啟動虛擬機器:

sh
qemu-system-x86_64 \
  -machine q35 \
  -m 4G \
  -smp 4 \
  -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE.fd \
  -drive if=pflash,format=raw,file=OVMF_VARS.fd \
  -drive file=slackware64-15.0.qcow2,format=qcow2,if=virtio \
  -nic user,model=virtio-net-pci \
  -boot order=c

第一次開機後,在 /etc/slackpkg/mirrors 中選取一個套件庫,並套用穩定版修補程式:

sh
slackpkg update gpg
slackpkg update
slackpkg upgrade-all

安裝後驗證 #

使用 adduser 建立非特權帳戶,並只授予本機原則要求的管理群組存取權。透過 ls -l /etc/rc.d/ 檢查已啟用的啟動腳本。Slackware 會在對應腳本具有可執行權限時啟動服務,因此應移除執行權限來停用未使用的服務,而不是刪除套件提供的檔案。

在將磁碟映像檔視為可重複使用的基礎之前,驗證已安裝系統的開機與網路狀態:

sh
findmnt /
swapon --show
ip address
ip route
efibootmgr --verbose
uname -a

efibootmgr 需要存取 UEFI 變數,因此只有在客體系統透過具有可寫入變數儲存的 OVMF 開機時,才會回報有用的資料。複製或建立 qcow2 映像檔快照前,請正常關閉客體系統。

評論

在 GitHub 上閱讀或評論(發表評論需要登入)