[Seek Help] filesystem.squashfs大于4G的ISO启动镜像
Tofloor
poster avatar
酷谷的谷子
deepin
2023-07-16 05:24
Author

这个有点烦人,百度的都不行,制作出来没法引导

有没有大佬给我一个制作好的支持filesystem.squashfs大于4G的ISO启动镜像

有没有谁给一个脚本 以及相关的引导文件

Reply Favorite View the author
All Replies
W2J
deepin
2023-07-16 06:45
#1

Package: casper
Version: 1.340.2

Effect:
filesystem.squashfs cannot be mounted during boot. The system is packed
in iso-image file of type "udf".

This error message is displayed:
"(initramfs) mount: mounting /dev/loop0 on //filesystem.squashfs failed: invalid argument
can not mount /dev/loop0 (...) on //filesystem.squashfs"

Problem:
During start-up, the iso-image file will not be mounted properly.
The file system of the iso-image is "udf". The mount operation is
performed with type "iso9660" instead "udf".

Reason:
The file system of the iso-image is determined with "fstype", located in
/usr/lib/klibc/bin.
Unfortunately, fstype cannot distinguish between iso9660 and udf. The
type "iso9660" is always reported, also if "udf" is the correct file type.
This leads to a wrong mount command.
The iso-image file will be mounted, but all files which are larger
then 4 GB within the image file, cannot be read correctly.

Proposal for solution:
Changes within "/usr/share/initramfs-tools/scripts/casper-helpers":
If fstype detect an iso9660 file type, an additional check is necessary
to distinguish, if it is udf or iso9660.
For this, add following four source lines (marked with "added by.."):
--- /usr/share/initramfs-tools/scripts/casper-helpers ------------------
... snip ...
get_fstype() {
local FSTYPE
local FSSIZE
eval $(fstype < $1)

# added: fstype cannot detect file system of type "udf"

if [ "$FSTYPE" == "iso9660" ]; then # added
/sbin/blkid -s TYPE -o value $1 2>/dev/null # added
return 0 # added
fi # added
if [ "$FSTYPE" != "unknown" ]; then
echo $FSTYPE
return 0
fi
/sbin/blkid -s TYPE -o value $1 2>/dev/null
}
... snip ...

Reply View the author
W2J
deepin
2023-07-16 06:49
#2

也就是说一个boot脚本,在启动时混淆了udf和iso9660,两种ro文件系统格式,把udf当iso9660对待,导致了4G+的读出错误。

修改启动脚本的话,对iso9660情况进行额外检测(脚本打个补丁)。

或者liveCD ro image写入时,强行使用iso9660的fstype,也能避免4G+引导问题。

Reply View the author
酷谷的谷子
deepin
2023-07-16 13:44
#3
W2J

也就是说一个boot脚本,在启动时混淆了udf和iso9660,两种ro文件系统格式,把udf当iso9660对待,导致了4G+的读出错误。

修改启动脚本的话,对iso9660情况进行额外检测(脚本打个补丁)。

或者liveCD ro image写入时,强行使用iso9660的fstype,也能避免4G+引导问题。

看不懂能帮我制作一个吗,制作好

以后去掉大文件,把ISO镜像发一个云盘链接

Reply View the author