我刚刚将 NAS 升级到 18.04。我有一个脚本,提示用户输入 luks 密码,然后在解密后安装驱动器。这曾经有效:
cryptsetup luksOpen /dev/md0 md0_crypt
udevadm settle --exit-if-exists=/dev/mapper/files--vg-main
mount /dev/mapper/files--vg-main /main
然而,更新到 18.04 后,它停止工作,我得到:mount: /main: special device /dev/mapper/files--vg-main does not exist.
我没有找到解决方案,只是谷歌搜索。我的 LUKS 容器是我的 pv。我把它放在一个名为 files-vg 的卷组中。然后我有一个带有路径的逻辑卷/dev/files-vg/main
。这就是为什么我正在寻找/dev/mapper/files--vg-main
编辑:澄清一下,线路udevadm settle
没有等待足够长的时间让 LV 可用,因此挂载失败。我可以手动调用mount
,然后它就会正常工作。
答案1
这是一个丑陋的解决方法,我没有 LUKS 容器可以进行测试:
udevadm info /dev/mapper/files--vg-main
您正在检查的设备在哪里/dev/mapper/files--vg-main
。 if [ $? -eq 0 ] 则命令成功意味着该设备存在并且您可以安装它。
否则您必须循环并再次检查。
附注:你可以在以下网址找到一些有用的 udev 调试思路:这一页。