Émi*_*ien 5 usb-drive lvm automount udisks external-hdd
我有一个外部硬盘驱动器,其中一个逻辑卷完美运行,可以挂载:
udisksctl mount -b /dev/mapper/wd0hdd-wd0
它将创建一个新目录,在/media/username/wd该目录下是预期的行为,因为wd我的磁盘标签是我wd0的逻辑卷的名称和username我的用户名。
但是,我希望在插入外部硬盘时可以自动挂载此逻辑卷(无需键入此命令),就像 udisks2 通常使用标准 linux 分区(非 lvm)所做的那样。[问题1]
此外,我注意到/media/username/wd属于 root:root 的 755 权限这是有问题的,因为我无法以普通用户身份在分区的根目录下创建文件/目录。对于标准linux分区,创建的目录属于username预期[问题2]
最后,Nautilus 不会像往常一样在标准 linux 分区的左侧窗格中显示卷,而是在Other Locations. 但是,gnome-extension正确地在我的其他驱动器下方Place Status Indicator列出了新的wd。[问题3]
找到一种方法来告诉 udisks2 考虑将给定的逻辑卷自动安装为可移动媒体。
使用单个逻辑分区设置外部驱动器:
sudo lvmdiskscan # Suppose sdc is the candidate
sudo pvcreate /dev/sdc
sudo vgcreate wd0hdd /dev/sdc1
sudo lvcreate -l 100%FREE -n wd0 wd0hdd
sudo mkfs.ext4 /dev/wd0hdd/wd0
Run Code Online (Sandbox Code Playgroud)
【兼】使用Gnome-Disk 将磁盘标签改为 wd
重新启动Ubuntu和看到鹦鹉螺和会发生什么/media/username时
告诉我什么在这里有用。
我试图在日志中找到一些有用的东西来帮助跟踪问题,journactl 没有显示任何相关内容,但是由于udisksctl monitor在我安装设备后的权利,可能会有一些关于出了什么问题的提示udisksctl mount -b /dev/mapper/wd0hdd/wd0
17:49:54.019: Added /org/freedesktop/UDisks2/jobs/2
org.freedesktop.UDisks2.Job:
Bytes: 0
Cancelable: true
ExpectedEndTime: 0
Objects: ['/org/freedesktop/UDisks2/block_devices/dm_2d5']
Operation: filesystem-mount
Progress: 0.0
ProgressValid: false
Rate: 0
StartTime: 1553186994019094
StartedByUID: 0
17:49:54.095: /org/freedesktop/UDisks2/jobs/2: org.freedesktop.UDisks2.Job::Completed (true, '')
17:49:54.095: Removed /org/freedesktop/UDisks2/jobs/2
17:49:54.140: /org/freedesktop/UDisks2/block_devices/dm_2d5: org.freedesktop.UDisks2.Filesystem: Properties Changed
MountPoints: /media/mil/wd1
17:49:54.141: /org/freedesktop/UDisks2/block_devices/dm_2d5: org.freedesktop.UDisks2.Block: Properties Changed
UserspaceMountOptions: uhelper=udisks2
17:49:54.141: /org/freedesktop/UDisks2/block_devices/sdd: org.freedesktop.UDisks2.PartitionTable: Properties Changed
Partitions: ['/org/freedesktop/UDisks2/block_devices/sdd1']
Run Code Online (Sandbox Code Playgroud)
UserspaceMountOptions: uhelper=udisks2如果我设法更改这些安装选项,我不知道这是否对我有帮助。
HintAuto物业和udisks2HintAuto由于UDISKS_AUTOudisks2 ,这是一个可以被覆盖的属性。我发现物理分区udisksctl info -b /dev/sdc1 | grep HintAuto-> HintAuto: true. 但是,HintAuto对于逻辑设备是假的udisksctl info -b /dev/mapper/wd0hdd-wd0 | grep HintAuto->HintAuto: false
由于使用 udev 规则和 udisks2udisks2自动挂载LVM 逻辑卷中讨论的 udev 规则,我设法覆盖了逻辑卷的 HintAuto 值,但是它没有解决我的问题,因为仍然没有自动挂载分区。
使用/etc/fstab在启动时或者通过直接编辑或使用GNOME的磁盘工具,它只是解决了问题自动安装但如果我插入磁盘后者。此外,它不能解决问题 2 和问题 3(我认为 x-gvfs-show 可以解决但没有),据我所知/etc/fstab是用于静态驱动器,而 udisks2 用于所有类型的可移动驱动器,所以我更喜欢 udisks2解决方案。
使用一些守护进程启动的很棒的 shell 脚本来检测磁盘何时插入。Huum 好吧,如果我别无选择,但我没有找到任何解决上述所有三个问题的脚本。此外,我仍然相信这项工作可以由 udisks2 完成。
告诉 udisks2 自动挂载所有逻辑卷。这是不受欢迎的,因为我的一些逻辑卷是其他 linux 系统。无论如何,我没有找到任何方法来做到这一点。
人们可能会问:
- 为什么在整个磁盘上使用单个 LVM 分区而不是单个标准分区?吻!
- 你是对的 !然而,我在这里尝试实现的只是我最终想要实现的一个更简单的场景。我有另一个磁盘,我在其中安装了一个小的 ESP 分区以在 EFI 模式下进行多重引导,另一个 LVM 物理卷包含两个具有两个不同 linux 的逻辑卷和一个用于媒体数据存储的第三个巨大的逻辑卷。大多数时候这个磁盘只是插在我的个人电脑上,所以我只使用媒体数据存储分区来备份和音乐,但有时我没有电脑去其他地方只带我的磁盘,因此我可以用自己的启动linux、emacs 和音乐播放器按我喜欢的方式配置并开始在愉快的环境中工作。在这种情况下,LVM 对于此设置非常有用,可以轻松调整大小和管理加密。
最后,经过多次尝试,我发现自动挂载逻辑卷的最佳且唯一可行的解决方案是使用 SystemD。\n在下创建您的<path-to-mount-folder>.mount和文件<path-to-mount-folder>.automount/etc/systemd/system/
媒体用户名-wd.mount
\n\n[Unit]\nDescription=Western Digital external drive mount in media\n\n[Mount]\nWhat=/dev/wdhdd0/wd0\nWhere=/media/username/wd\nType=ext4\nOptions=defaults\n\n[Install]\nWantedBy=multi-user.target\nRun Code Online (Sandbox Code Playgroud)\n\n媒体用户名-wd.automount
\n\n[Unit]\nDescription=Western Digital external drive automount in media\n\n[Automount]\nWhere=/media/username/wd\n\n[Install]\nWantedBy=multi-user.target\nRun Code Online (Sandbox Code Playgroud)\n\n安装这些新服务
\n\nsystemctl daemon-reload\nsystemctl disable media-mil-wd.mount\nsystemctl enable media-mil-wd.automount\nRun Code Online (Sandbox Code Playgroud)\n\n该服务.mount被禁用,并且仅.automount有意启用。\n前者是本着 fstab 的精神在启动时挂载分区,\n后者是在检测到时自动挂载分区(插入外部驱动器)。\n尽管存在.mount文件对于每个.automount创建的\n文件都是必需的,但不强制启用该服务。
检查状态
\n\nsystemctl start media-mil-wd.automount\nsystemctl status media-mil-wd.automount\nRun Code Online (Sandbox Code Playgroud)\n\n我要感谢 Tom\xc3\xa1\xc5\xa1 Tome\xc4\x8dek 的不可估量的Automount with SystemD帖子,如果我早点发现它的话,它可以节省我几个小时的 udev 手动阅读时间。
\n\n最后,这个解决方案现在对我来说已经足够好了,它解决了我的主要问题[问题1]和[问题2],这很好。然而它并没有解决[问题3],但我现在可以忍受。
\n\n我仍然愿意接受任何建议,特别是如果它们更简单或允许解决在 Nautilus 中完美集成的 [Problem3]。
\n| 归档时间: |
|
| 查看次数: |
2571 次 |
| 最近记录: |