Ubuntu 22.04 停止自动挂载新创建loop设备的实现方法及版本差异疑问
Ubuntu 22.04 停止自动挂载新创建loop设备的实现方法及版本差异疑问
嘿,我来帮你搞定这个问题!针对你遇到的Ubuntu 22.04自动挂载loop设备的情况,以及20.04和22.04的行为差异,我整理了以下解决方案和解释:
一、让22.04创建loop设备时不自动挂载的方法
最简单直接的方式就是在创建loop设备的命令里添加--no-auto-mount参数,这样udisksctl就只会创建设备而不自动挂载它。修改后的命令如下:
udisksctl loop-setup -f <diskimage.img> --offset=<partition offset> --no-auto-mount
执行这个命令后,你只会得到loop设备的路径(比如/dev/loopX),之后就可以用你原来的挂载命令手动挂载,并且能获取到明确的挂载路径输出,完全满足脚本的需求。
二、为什么20.04和22.04行为不同?
这是因为两个版本使用的udisks2服务版本不同:
- Ubuntu 20.04搭载的是udisks2 2.8.x系列,这个版本默认不会自动挂载通过
loop-setup创建的设备,必须手动执行挂载命令。 - Ubuntu 22.04升级到了udisks2 2.9.x系列,官方调整了默认行为,对于包含可识别文件系统(比如你用的ext4)的loop设备,创建后会自动挂载到
/media目录下。
三、控制自动挂载的配置文件
如果你想全局或者针对loop设备调整自动挂载行为,可以修改udisks2的配置文件:
全局禁用所有设备自动挂载:编辑
/etc/udisks2/mount_options.conf,在[defaults]区块中添加或修改:auto_mount=false注意:这个设置会影响所有设备,包括U盘、移动硬盘等外部存储,谨慎使用。
仅针对loop设备禁用自动挂载:同样编辑
/etc/udisks2/mount_options.conf,添加一个[loop]区块并设置:[loop] auto_mount=false这样只会让loop设备不再自动挂载,其他外部存储的自动挂载不受影响。
修改配置后,需要重启udisks2服务才能生效:
systemctl restart udisks2
备注:内容来源于stack exchange,提问作者TSG
相关产品推荐
相关产品推荐

