很多发行版本(比如 Ubuntu、MX、LinuxMint 等)都提供了数据持久化的支持。这样你就可以在Live环境中保存一些数据,比如用户密码、IP参数等等。这些数据在你下次启动的时候就可以直接使用了,无需再重新配置。正常情况下,我们一般是单独创建一个分区来保存持久化数据,不是非常灵活。
现在 Ventoy 提供了一个新的功能。你无需再单独创建分区、也无需添加 persistent 启动参数,只需要在第一个分区里面放一个数据文件,然后通过json配置和对应ISO关联上就可以了。对于第1个分区的格式没有要求,NTFS/exFAT等都可以。
你可以同时放很多个不同的数据文件,分别关联到不同的ISO文件上。你也可以同一个数据文件关联到不同的ISO文件上,只要ISO内的系统支持就行。甚至你还可以为一个ISO文件同时指定多个数据文件,在启动时 Ventoy会提供一个菜单,你可以选择本次启动是否使用数据文件以及使用哪一个数据文件。
如果你不知道 Ventoy 是什么东西, 请先前往 这里, 学习如何使用 Ventoy 制作启动 U 盘.
有关 persistent 的有关内容, 看 这里
启动 U 盘创建好之后, 我们需要三个步骤来实现:
1. 拷贝 Arch linux ISO 文件到 ISO 目录下.
2. 创建一个适用于当前发布版的 persistent 的映像文件, 我们使用以下命令来创建适合于 arch linux ISO 的持久化映像. (2048 表示容量 2G)
sudo ./CreatePersistentImg.sh -l vtoycow -s 2048
你可以在 这里 下载上面的 CreatePersistentImg 脚本.
3. 需要一个配置文件, 来告诉 Ventory, 那个 ISO 使用那个 persistent 文件, 例如:
{
"persistence": [
{
"image": "/ISO/archlinux-2021.05.01-x86_64.iso",
"backend": "/persistence/arch.dat"
}
]
}
所有以上步骤完成后, Ventoy 分区内容大概是这个样子.
.
└── Ventoy
├── ISO
│ ├── archlinux-2021.05.01-x86_64.iso
│ ├── CentOS-7-x86_64-Minimal-1810.iso
│ ├── clonezilla-live-20210127-groovy-amd64.iso
│ └── LaoMaoTao.iso
├── persistence
│ └── arch.dat
└── ventoy
└── ventoy.json
4 directories, 6 files
配置完之后就可以重启了, 下面是效果图.
在进入一次 Arch 启动盘, 并且配置好 WIFI 信息之后, 再次重启进入启动盘, 可以看到仍旧正确读取保存的 WIFI 信息, 立即可以上网, 见截图.
具体实现原理我不太清楚, 群里有网友说:
leedagee: archiso启动默认是sfs上面挂tmpfs overlay,这个持久化就是你自己给一个块设备或者loop文件,取代那个tmpfs。是整个 / 都持久化了
zw963: 啊? 那是不是还是需要像安装 arch 一样, 全部包都再装一遍?
leedagee: 不需要,archiso默认有的全都有,除非你删了
zw963: 难道我还可以安装个新的 package, 下次还有?
farseerfc: 嗯還有
我们可以稍后专门 mount 上面的那个 persistence/arch.dat, 看看 persistent 的过程, 到底创建了什么.
└── x86_64
├── upperdir
│ ├── etc
│ │ ├── iwd
│ │ ├── ld.so.cache
│ │ ├── machine-id
│ │ ├── pacman.d
│ │ │ └── gnupg
│ │ └── ssh
│ │ ├── ssh_host_dsa_key
│ │ ├── ssh_host_dsa_key.pub
│ │ ├── ssh_host_ecdsa_key
│ │ ├── ssh_host_ecdsa_key.pub
│ │ ├── ssh_host_ed25519_key
│ │ ├── ssh_host_ed25519_key.pub
│ │ ├── ssh_host_rsa_key
│ │ └── ssh_host_rsa_key.pub
│ ├── root
│ └── var
│ ├── cache
│ │ ├── ldconfig
│ │ │ └── aux-cache
│ │ └── reflector
│ ├── lib
│ │ ├── iwd
│ │ │ ├── AC5300_5G-2.psk
│ │ │ └── hotspot
│ │ ├── pacman
│ │ │ └── sync
│ │ │ └── extra.db.part
│ │ └── systemd
│ │ ├── backlight
│ │ │ ├── pci-0000:00:02.0:backlight:intel_backlight
│ │ │ └── platform-lg-laptop:leds:kbd_backlight
│ │ ├── catalog
│ │ │ └── database
│ │ ├── linger
│ │ ├── random-seed
│ │ ├── rfkill
│ │ │ ├── pci-0000:00:14.0-usb-0:10:1.0:bluetooth
│ │ │ └── pci-0000:00:14.3:wlan
│ │ └── timers
│ │ ├── stamp-man-db.timer
│ │ └── stamp-shadow.timer
│ ├── log
│ │ ├── btmp
│ │ ├── lastlog
│ │ ├── pacman.log
│ │ └── wtmp
│ └── tmp
└── workdir
├── index
└── work
28 directories, 25 files
这个功能最大的好处是, 如果做一些简单的工作, 任意一台电脑, 可以直接 U 盘搞定.
是不是可以直接装一个 Xorg + Gnome 进去呢? 还没试过, 欢迎指正.
最近编辑记录 zw963 (2021-05-09 13:29:21)
离线
好耶~
离线
是 Ventoy,不是 Ventory
另外,archiso 里面有 clonezilla
离线
是 Ventoy,不是 Ventory
另外,archiso 里面有 clonezilla
哦, 改了, 竟然有 clonezilla? 不知道, 哈哈
离线
可以,但会很卡,因为 U 盘 IO 瓶颈限制,我目前是装了个 wm,可以勉强运行 firefox
是不是可以直接装一个 Xorg + Gnome 进去呢? 还没试过, 欢迎指正.
探索未知使人迷醉
离线
可以,但会很卡,因为 U 盘 IO 瓶颈限制,我目前是装了个 wm,可以勉强运行 firefox
zw963 说:是不是可以直接装一个 Xorg + Gnome 进去呢? 还没试过, 欢迎指正.
哈哈, 多谢
离线