Slackware 的镜像树、安装介质、软件包系列和文本模式安装程序之间保持着直接对应关系。理解这种结构有助于选择软件包以及诊断安装问题。下面的示例将在 UEFI QEMU 虚拟机中安装 Slackware64 15.0。
Slackware 资源与镜像树 #
主要项目资源包括:
- Slackware Linux:发布公告和项目信息
- Slackware Documentation Project:安装和管理文档
- Slackware Linux Essentials:SlackBook
- Slackware mirrors 和 mirror list:发布文件
镜像根目录包含历史版本、稳定版别名、开发树、ISO 镜像和不受支持的附加内容:
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-onsslackware-current 和 slackware64-current 是开发分支,而不是最新稳定版的别名。版本序列从 4.0 跳到了 7.0;项目将版本号调整为与当时的发行版保持一致时,跳过了 5 和 6。
发布目录同时也是可安装的软件仓库。例如,Slackware64 15.0 包含:
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,并在启动前验证签名:
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 将二进制软件包划分为以下系列:
| Series | Contents |
|---|---|
a | 基础系统;安装程序需要此系列 |
ap | 控制台应用程序及其他非 X 程序 |
d | 编译器、调试器、解释器和开发工具 |
e | GNU Emacs |
f | FAQ、HOWTO 和其他文档 |
k | Linux 内核源代码 |
kde | KDE Plasma 及其应用程序 |
l | 共享库和支持软件 |
n | 网络程序和服务 |
t | TeX 排版软件 |
tcl | Tcl、Tk 及相关工具 |
x | X Window System |
xap | 桌面系列之外的图形应用程序 |
xfce | Xfce 桌面环境 |
y | 文本模式 BSD 游戏 |
这些系列是分类,而不是独立解析依赖关系的软件包组。例如,Slackware64 15.0 将 Vim 放在 ap 中,将其共享库之一 libsodium 放在 l 中。因此,按类别删除整个系列可能会破坏另一个系列中保留的程序。
Slackware64 15.0 HOWTO 估算所有系列需要约 16 GB。32 GiB 的虚拟磁盘可以为已安装系统、软件包更新、日志和工作数据留出空间。如果磁盘空间充足,完整安装是最不容易出错的选择。
创建虚拟机 #
通过主机的软件包管理器安装 QEMU 和 OVMF。OVMF 软件包路径因发行版而异;在运行以下命令前,先定位代码映像和变量存储映像。复制变量存储模板,因为 QEMU 必须写入 UEFI 变量,但不能修改软件包提供的模板。
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=dvirtio 磁盘显示为 /dev/vda,虚拟 CD-ROM 通常显示为 /dev/sr0。省略两个 pflash 驱动器会使 QEMU 使用默认的传统 BIOS 启动;BIOS 安装使用 LILO,而不是 ELILO。
对虚拟磁盘进行分区 #
接受默认的安装程序内核,按需选择键盘映射,然后以无密码的 root 身份登录。修改分区表前检查设备:
lsblk
cgdisk /dev/vda创建包含以下分区的 GPT:
| Partition | Size | GPT type | Purpose |
|---|---|---|---|
/dev/vda1 | 512 MiB | EF00 | EFI System Partition |
/dev/vda2 | 4 GiB | 8200 | Swap |
/dev/vda3 | Remaining space | 8300 | Linux root filesystem |
写入分区表并退出 cgdisk。安装程序稍后会格式化 swap 和 root 分区。Setup 还会检测 EFI System Partition,在需要时将其格式化为 FAT,并将其挂载到 /boot/efi。
运行 Setup #
启动安装程序:
setup标准安装按以下顺序使用 Setup 菜单:
- KEYMAP:如果默认的 US 布局适用,则可以跳过。
- ADDSWAP:检测
/dev/vda2,将其格式化为 swap、启用它,并添加到未来的/etc/fstab中。 - TARGET:选择
/dev/vda3作为/并将其格式化。对于此虚拟机,ext4 是合适的默认选项。 - SOURCE:选择 Install from a Slackware CD or DVD 并扫描介质。连接的 ISO 应被检测为
/dev/sr0。 - SELECT:选择软件包系列。保留
a;完整安装选择所有系列,或者只删除已知其依赖后果的软件包集。 - INSTALL:选择软件包提示模式并复制所选软件包。
- CONFIGURE:安装内核并配置引导加载程序、网络、服务、控制台、时钟、时区和 root 密码。
安装模式控制提示方式,而不是依赖关系解析:
| Mode | Behavior |
|---|---|
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 驱动器,然后让磁盘优先启动虚拟机:
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 中选择一个仓库,并应用稳定版补丁:
slackpkg update gpg
slackpkg update
slackpkg upgrade-all安装后验证 #
使用 adduser 创建非特权账户,并且只授予本地策略要求的管理组访问权限。通过 ls -l /etc/rc.d/ 检查已启用的启动脚本。Slackware 会在对应脚本具有可执行权限时启动服务,因此应通过移除执行权限来禁用未使用的服务,而不是删除软件包提供的文件。
在将磁盘映像视为可复用基础之前,验证已安装系统的启动和网络状态:
findmnt /
swapon --show
ip address
ip route
efibootmgr --verbose
uname -aefibootmgr 需要访问 UEFI 变量,因此只有当客户机通过带有可写变量存储的 OVMF 启动时,才能报告有用的数据。在复制或创建 qcow2 映像快照前,正常关闭客户机。
评论
在 GitHub 上阅读或评论(发表评论需要登录)