Live CD 启动:SQUASHFS 错误:无法读取 xattr id 索引表

Live CD 启动:SQUASHFS 错误:无法读取 xattr id 索引表

我正在创建 Ubuntu 的自定义 squashfs。

目前,我面临这个错误:

[ ... ] squashfs: SQUASHFS error: unable to read xattr id index table

可以通过在 initramfs 中执行来重现

mount /cdrom/casper/filesystem.squashfs /filesystem.squashfs -t squashfs -o loop

没有-o loop也一样。

但是当我在正在运行的 Ubuntu 中运行命令时,一切都正常:

sudo mount /media/USER/UUI/casper/filesystem.squashfs fs-uui -t squashfs -o loop

笔记:

  • 可以找到产生错误的图像这里
  • 为了查看启动时的错误消息,我删除了启动命令中的splash和选项。quiet
  • md5sums 没问题。

如果您对如何调试这个问题或者如何创建使用 efi 启动的自定义 iso 映像有任何建议,请留言。


编辑 1:目前,解决方法是使用以下选项从根文件系统中删除 xattrs -no-xattrs

mksquashfs / "$filesystem_location/filesystem.squashfs" -ef ./exclude.txt -wildcards -no-xattrs

编辑2:错误仍然发生。

答案1

您写道,您可以从完全启动的系统安装 squashfs,但您无法在启动时安装它。这表明您的 initramdrive 中缺少内核模块。

在启动期间,只有 initrd 映像中的模块可用。

在运行的系统中,您可以发出以下命令lsmod来查看已加载模块的列表。挂载 squash 映像时,内核应该被强制加载一些额外的驱动程序模块。在lsmod挂载之前和之后发出以下命令,您应该能够看到挂载期间加载了哪些模块。

输入那些模块/etc/initramfs-tools/modules并使用 重建你的 initrd update-initramfs -u

相关内容