我在 USB 闪存盘上安装了 Slitaz。但是我不知道如何让它自动持久化。不同的来源告诉我不同的持久化方法。
有人告诉我要添加slitaz home=usb
到系统Linux配置文件文件如下:
append initrd=/boot/rootfs.gz rw root=/dev/null vga=normal autologin slitaz home=usb
但它对我不起作用。
手册给出了一个如何手动执行的示例,但我没有尝试过,而且我也希望它能够自动完成。
有一篇较旧的文章这也解释了如何使 USB 持久,但我不想尝试它,因为它看起来已经过时了(从 2008 年开始)。
有人知道让 USB 自动持久的最佳方法吗?
答案1
我刚刚遇到了同样的事情,所以我想在这里发布一些笔记:
- 下载了http://mirror.slitaz.org/iso/4.0/slitaz-4.0.iso
- 通过提取 iso 内容
sudo mount slitaz-4.0.iso /tmp/iso -o loop
- 将 .iso 内容保存在 U 盘上;已启动
首次启动时,系统会自动以用户身份登录tux
;问题是:
tux
用户显然是“自动生成的”- 当保存更改以保留时,显然,自动生成的
tux
用户的主文件夹不会被保存
无论如何,在这里我尝试xvkbd
通过包管理器(Tazpanel - 包)安装一些程序(如);并且为了使它们持久,首先:
- 右键单击桌面,Slitaz Live,TazUSB Writefs (gzip)
这将保存一个rootfs.gz
文件/
- 你必须复制这个文件手动到 USB 闪存驱动器,其他的(rootfs1.gz、rootfs2.gz)都在/boot
USB 拇指驱动器上!
那么你必须还手动添加此文件syslinux.cfg
!这里还有另一个问题 - 如果 USB 拇指驱动器是 FAT 格式的,则用户的自动登录命令tux
将失败 - 您将获得登录提示/窗口;在那里你不能登录为tux
(默认情况下密码为空,否则);您只能以 身份登录root
。
值得庆幸的是,有一种方法可以解决这个问题 - 首先注意,默认条目syslinux.cfg
将是这样的:
LABEL sli
KERNEL /boot/bzImage
append initrd=/boot/rootfs4.gz,/boot/rootfs3.gz,/boot/rootfs2.gz,/boot/rootfs1.gz rw root=/dev/null vga=normal autologin
请注意,该行也可以用于home=
持久性 - 但不能用于 FAT32 USB 拇指(登录问题)。
然后,你可以复制rootfs.gz
由 Writefs 生成的先前内容/boot/rootfsA.gz
;现在如果你尝试
append initrd=/boot/rootfsA.gz rw root=/dev/null vga=normal autologin
...然后您再次遇到登录问题(尽管如果您以 root 身份登录,您会看到已安装的程序在那里)。
很酷的是,你可以rootfsA.gz
和行中的其他人一起添加append
;如果它被添加到最后,那么它就和单独添加一样(登录问题) - 但如果你前置它——也就是说,先添加它:
append initrd=/boot/rootfsA.gz,/boot/rootfs4.gz,/boot/rootfs3.gz,/boot/rootfs2.gz,/boot/rootfs1.gz rw root=/dev/null noswap vga=normal lang=en kmap=us autologin
... 然后两个已安装的程序都将可用(具有一定的持久性) - 但下一个文件系统将覆盖设置;并将创建实时用户tux
并继续在该帐户中自动登录。因此,无法保存桌面图标等 - 但至少已安装的程序在那里。添加lang=en kmap=us
以避免启动时出现问题(因此它直接进入自动登录;编辑 - 它会在 上抛出一条消息lang=en
;所以它可能是lang=en_US
) - 我还尝试添加noswap
以停用交换;但它仍然找到我本地 HD 的交换,并执行“激活交换内存...”(我宁愿它不这样做)。
不管怎样,很高兴可以用这种方式进行破解 - 虽然每次我更改一行配置左右时都必须生成一个新图像并进行复制,这有点麻烦......
希望这对某人有帮助,
干杯!
答案2
将其添加到引导行时,删除“slitaz”,因为它已经被调用。“home=usb”
答案3
有一个菜单选项可以指导您。
您需要一个 ext3 格式的 usb。分区表必须是 msdos 而不是 gpt。usb 必须有 2 个分区,一个用于 /,另一个用于 home。
答案4
@sdaau @Derek @Yuri Herrera 你的笔记帮助我弄清楚了如何建立真正的持久性。方法如下。
首先,您必须在 USB 驱动器中添加第二个分区。此分区必须是 ext3,而不是 NTFS 或 FAT32。我使用 Gparted 格式化 ext3 分区。
然后编辑 syslinux.cfg(在 slitaz 的新版本中现在称为 isolinux.cfg)。我使用的 slitaz 版本是 slitaz 的烹饪版。
在 isolinux.cfg 中,您需要添加 home=sdb2,其中 sdb2 是您在 USB 驱动器上创建的第二个分区。home=sdb2 直接位于 append 之后但在 initrd= 之前
它看起来像这样
append home=sdb2 initrd=/boot/rootfs4.gz,/boot/rootfs3.gz,/boot/rootfs2.gz,/boot/rootfs1.gz rw root=/dev/null vga=normal lang=en_US kmap=us autologin
或者
append home=sdb2 initrd=/boot/rootfsA.gz rw root=/dev/null vga=normal lang=en_US kmap=us autologin