RHEL7.9下Singularity因SquashFS未启用启动容器失败,如何解决?
问题
在RHEL 7.9(Maipo)系统中已安装Singularity 4.1.4-1和squashfs-tools 4.3,运行容器时出现如下报错:
(base) -bash-4.2$ singularity --verbose shell myimage.sif ... VERBOSE: Default mount: /proc:/proc VERBOSE: Default mount: /sys:/sys VERBOSE: Default mount: /dev:/dev VERBOSE: Found 'bind path' = /etc/localtime, /etc/localtime VERBOSE: Found 'bind path' = /etc/hosts, /etc/hosts VERBOSE: Default mount: /etc/resolv.conf:/etc/resolv.conf FATAL: container creation failed: mount /proc/self/fd/9->/var/lib/singularity/mnt/session/rootfs error: while mounting image /proc/self/fd/9: squashfs filesystem seems not enabled and/or supported by your kernel
已确认squashfs-tools已安装,/usr/sbin/mksquashfs命令可用:
(base) -bash-4.2$ sudo ls -l /usr/sbin/mksquashfs -rwxr-xr-x 1 root root 130488 Mar 5 2015 /usr/sbin/mksquashfs
请问如何启用squashfs?
解决方案
报错核心原因是内核未加载squashfs模块,按以下步骤操作:
检查内核是否已支持squashfs:
grep squashfs /proc/filesystems若无输出,说明模块未加载。
手动加载squashfs模块:
sudo modprobe squashfs验证加载结果:
再次执行grep squashfs /proc/filesystems,若输出nodev squashfs,说明加载成功,此时可重新运行Singularity容器命令。设置开机自动加载squashfs模块:
创建并编辑配置文件:sudo vi /etc/modules-load.d/squashfs.conf在文件中添加一行:
squashfs保存退出后,系统重启时会自动加载该模块。
内容的提问来源于stack exchange,提问作者tmoser911
相关产品推荐
相关产品推荐

