解决KDE磁盘分区开机无法自动挂载
解决KDE磁盘分区开机无法自动挂载
现象
系统环境为Manjaro+KDE,此前在系统设置中开启登入时和插入时自动挂载磁盘设备,以便使用。
某次滚动更新后除系统分区外的其他分区无法自动挂载,dolphin中可以看到分区为未挂载状态,手动挂载时会弹出polkit权限认证窗口要求输入密码,来源为udisks2。
使用journalctl --boot --unit udisks2.service
查看日志,没有报错,但在手动挂载时有日志记录。
分析与尝试
linux下要实现磁盘自动挂载,有如下几种方式:
- 编辑
/etc/fstab
- systemd auto mount
- udisks2
fstab
查看当前fstab,其中只包含系统主分区和tmpfs,因此只有主分区可以自动挂载。对前述问题,一种解决方法是将其他分区也写入fstab。但如果fstab配置错误,会存在无法启动的风险; 且此前在不使用fstab时能够实现自动挂载,因此不考虑修改fstab。
systemd auto mount
详见文档,但本次不向该方案探索,原因见后。
udisks2
考虑到是在滚动更新后出现的问题,且手动挂载时权限弹窗来自udisks2,可推断出KDE系统设置中的自动挂载选项使用的就是udisks2。
以下部分为失败尝试记录,若需节省时间请跳转解决方案
根据该issue,可能存在问题的是其2.10版本。使用downgrade工具将其降级为2.9.4版本,手动使用udisksctl mount -b /dev/sda1
时报错error looking up object for device /dev/sda1
。使用journalctl查看日志,报错无法找到liblockdev.so.2,推断是依赖没有跟随降级。再次使用downgrade将libblockdev降级到2.x.x版本,udisks2可以正常使用,但前述问题没有解决。
当前尝试失败,因此问题与udisks2版本无关。
恢复环境:将其与libblockdev都升级回最新版本并取消降级时在/etc/pacman.conf
中追加的ignorePkg项。
解决方案:修改polkit规则
重新回顾现象,推测可能在开机执行udisks2挂载时缺少权限而失败。
解决方案来源: Superuser | Mounting partitions without a password using Udisks2
在/etc/polkit-1/rules.d/
目录下增加一条polkit规则文件10-udisks2.rules
,以允许udisks2挂载时无需申请权限:
|
|
保存后重启,各分区均已自动挂载,问题解决。