零基础用户寻求将自用Arch Linux纯文本写作系统打包为ISO的最简方案
兄弟,我完全懂你折腾出一套顺手的纯文本写作环境后,想打包成ISO分享给同好的心情——毕竟从Arch从零搭起只专注写作的系统,每一步都是心血!你之前试了一堆工具没搞定,大概率是没抓对Arch官方工具archiso的简化姿势,我给你捋个零基础也能跟着走的最简流程,完美解决非官方包、自定义配置和容量的问题:
一、回到最靠谱的官方工具:archiso
别再折腾第三方工具了,archiso是Arch官方专门用来定制ISO的工具,只要摸透基础模板的修改逻辑,完全能搞定你的需求。
步骤1:在现有系统安装archiso
打开终端,先装工具:
sudo pacman -S archiso
步骤2:复制官方精简模板
官方有个releng模板是用来做可安装ISO的,我们拿它来改:
cp -r /usr/share/archiso/configs/releng/ ~/archiso-writer
然后进入这个目录:
cd ~/archiso-writer
步骤3:精简并定制软件包
编辑packages.x86_64文件,删掉里面所有默认的包,只留你需要的(包括非官方包):
base linux linux-firmware grub plymouth ly focuswriter light udiskie awesome qt6ct # 如果有不在官方repo的包,把包名也列在这里,后面我们会放本地包文件
如果有非官方的包(比如你自己编译的或者AUR下载的),把对应的.pkg.tar.zst文件复制到packages/x86_64/目录下,mkarchiso会自动识别并安装。
步骤4:迁移你的自定义配置
这一步是关键,把你现有系统里的个性化配置全部复制到模板的airootfs目录(相当于ISO里的系统根目录):
- 系统级配置(比如grub、plymouth、qt6ct的全局设置):
sudo cp -a /etc/grub.d/ ~/archiso-writer/airootfs/etc/ sudo cp -a /etc/plymouth/ ~/archiso-writer/airootfs/etc/ sudo cp -a /etc/qt6ct/ ~/archiso-writer/airootfs/etc/ - 用户级默认配置(比如awesome WM的设置):把你
~/.config/awesome/复制到airootfs/etc/skel/.config/,这样新用户登录就会自动继承这个配置:sudo cp -a ~/.config/awesome/ ~/archiso-writer/airootfs/etc/skel/.config/
注意用cp -a保留文件权限和属性,避免后续出问题。
步骤5:生成ISO
一切配置好后,运行命令生成ISO:
sudo mkarchiso -v .
生成的ISO文件会在out/目录下,名字大概是archlinux-xxxxxx-x86_64.iso,体积应该很小(毕竟只装了写作相关的软件),完全不用担心目标设备容量问题。
步骤6:测试ISO
先在虚拟机里测试能不能正常启动、登录、打开focuswriter:
qemu-system-x86_64 -cdrom ~/archiso-writer/out/archlinux-xxxxxx-x86_64.iso -m 2G
没问题的话,再用dd或者Etcher烧到U盘就能给别人用了!
二、为什么之前的方法踩坑?
- Clonezilla:它是整盘克隆,所以会带原设备的容量信息,小容量设备确实可能用不了,而且步骤繁琐;
- Cubic/NixOS:这些工具要么是为Ubuntu定制的,要么是有自己的包管理逻辑,和你的Arch系统适配性差;
- 之前用
archiso失败:大概率是没处理非官方包的安装,或者没正确迁移自定义配置,导致生成的ISO和你的现有系统不一致。
三、额外小贴士
- 如果生成ISO时遇到依赖问题,检查
packages.x86_64里的包名是否正确,本地包是否放在指定目录; - 可以删掉模板里的
airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf(如果有的话),避免自动登录,保持你原来的手动登录逻辑; - 要是觉得
releng模板还是有多余内容,可以试试baseline模板,更精简,适合做轻量系统。
放心,跟着这个流程走,你折腾好的写作系统肯定能完美打包成ISO,比Clonezilla方便太多!
备注:内容来源于stack exchange,提问作者Deven

