arch on zfs 在 zfs 上安装 archlinux
第一部分:准备安装介质 安装archiso工具 sudo pacman -S archiso 复制并自定义配置 # 复制官方配置 cp -r /usr/share/archiso/configs/releng/ ~/archlive cd ~/archlive 修改包列表 # 删除不需要的包并添加新包 sed -i '/^linux$/d; /^linux-headers$/d; /^broadcom-wl$/d' packages.x86_64 echo -e "linux-lts\nlinux-lts-headers\nzfs-utils\nzfs-dkms" >> packages.x86_64 echo "packages.x86_64 文件已更新完成" 配置pacman源 # 在文件末尾添加archzfs仓库 cat >> pacman.conf << 'EOF' [archzfs] SigLevel = TrustAll Optional Server = http://archzfs.com/$repo/$arch EOF pacman-key --recv-keys DDF7DB817396A49B2A2723F7403BD972F75D9D76 pacman-key --lsign-key DDF7DB817396A49B2A2723F7403BD972F75D9D76 # 更新包数据库 pacman -Sy echo "pacman.conf 已自动配置archzfs仓库" 更新启动配置文件 # 定义需要修改的文件列表 config_files=( "airootfs/etc/mkinitcpio.d/linux.preset" "efiboot/loader/entries/01-archiso-x86_64-linux.conf" "efiboot/loader/entries/02-archiso-x86_64-speech-linux.conf" "syslinux/archiso_pxe-linux.cfg" "syslinux/archiso_sys-linux.cfg" "grub/loopback.cfg" ) # 批量处理所有配置文件 for file in "${config_files[@]}"; do if [[ -f "$file" ]]; then echo "正在更新 $file" sed -i 's/vmlinuz-linux\([^-]\|$\)/vmlinuz-linux-lts\1/g; s/initramfs-linux/initramfs-linux-lts/g' "$file" echo "✓ $file 已更新" else echo "⚠ 警告: $file 不存在,跳过" fi done echo "所有启动配置文件已更新完成" 构建ISO mkdir -p ~/isobuild sudo mkarchiso -v -r -w /tmp/archiso-tmp -o ~/isobuild ~/archlive 构建完成后,ISO文件将位于 ~/isobuild 目录中。 ...