如何从运行 Grml 的同一个 U 盘加载 config.tbz?

如何从运行 Grml 的同一个 U 盘加载 config.tbz?

我尝试将 a 放入config.tbzUSB 记忆棒的根目录中,但默认情况下它不会解压,也不会记录任何有用的内容/tmp/grml*(即使log添加到内核命令行)。我还添加了一个autoconfig=GRML32-FULL内核行(这是棒分区的标签),这似乎做了一些事情,因为/tmp/grml*现在有一个未找到的投诉config.tbz(即使它位于棒的根目录中)。

有什么想法可以让这样的简单设置发挥作用吗? (grml 的文档是一堆选项和定义/首字母缩略词,如 DCS、GCA 等,但缺乏一个简单的示例。Grml 也不能像大多数其他发行版一样进行环回/文件持久化:它需要一个分区。)

答案1

答案有点简单:您需要config在内核命令行上传递(没有其他参数)才能config.tbz从 USB 根目录加载/解压。extract除非你想,否则不需要缩小范围提取的内容,即如果您不想提取整个存档。当一切正常时,您还会看到正在提取的文件列表,至少如果您也通过了log(也许甚至没有,但我没有尝试过)。至于我是如何想到这一点的:来源,卢克

无论如何,此方法对于添加额外的固件不太有用,因为提取发生在启动过程的后期。例如,即使 grml 的 中没有 b43 驱动程序initrd,但稍后从正常根加载它,这仍然发生在提取 config.tbz 之前,因此(延迟加载的)b43 仍然找不到其固件,例如那。 (给那些认为简单的方法update-initramfs可行的人的建议:事实并非如此,因为 b43 未能指定其固件依赖项:长期存在的“错误”未在上游修复,因为固件不是免费的。)实际上,它甚至可以工作为此,如果您还使用将scripts参数传递给内核。/scripts/grml.sh默认情况下从棒根加载。对于像 b43 这样的东西,您需要放入该脚本modprobe -r b43; modprobe -r ssb; modprobe b43以在固件就位时重新插入它,因为scripts幸运的是只有在config.tbz提取后才会执行。确实,人们也可以通过添加固件等来重建squashfs。

相关内容