AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1127511
Accepted
Émilien
Émilien
Asked: 2019-03-22 04:33:06 +0800 CST2019-03-22 04:33:06 +0800 CST 2019-03-22 04:33:06 +0800 CST

在外部磁盘驱动器上自动挂载逻辑卷 LVM 分区

  • 772

问题

我有一个外部硬盘驱动器,其中一个逻辑卷可以正常工作,可以挂载:
udisksctl mount -b /dev/mapper/wd0hdd-wd0
它将创建一个新目录,在该目录下/media/username/wd是预期的行为,因为wd我的磁盘标签是我wd0的逻辑卷的名称和username我的用户名。

但是,我希望当我插入外部 HDD 时,这个逻辑卷可以自动挂载(无需输入此命令),就像 udisks2 通常使用标准 linux 分区(非 lvm)一样。[问题1]

此外,我注意到它/media/username/wd属于具有 755 权限的 root:root,这是有问题的,因为我无法以普通用户的身份在分区的根目录创建文件/目录。对于标准的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

【随性】使用 Gnome-Disk 将磁盘的标签更改为wd

重新启动 Ubuntu 并查看 nautilus 中发生了什么以及/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']

UserspaceMountOptions: uhelper=udisks2如果我设法更改这些安装选项,我不知道这是否对我有帮助。


失败的尝试

该HintAuto物业和udisks2

由于在 udisks2 中,这HintAuto是一个可以被覆盖的属性。UDISKS_AUTO我发现物理分区udisksctl info -b /dev/sdc1 | grep HintAuto-> HintAuto: true。但是,HintAuto对于逻辑设备是错误的udisksctl info -b /dev/mapper/wd0hdd-wd0 | grep HintAuto->HintAuto: false

由于使用 udev 规则和 udisks2 自动挂载 LVM 逻辑卷中讨论的 udev 规则,我设法覆盖了逻辑卷的 HintAuto 的值,但是它并没有解决我的问题,因为它udisks2仍然没有自动挂载分区。

不满意的解决方案

通过/etc/fstab直接编辑或使用 gnome-disk-utility 来使用,它只是解决了启动时自动挂载的问题,但如果我插入磁盘则不能。此外,它既不能解决问题 2 也不能解决问题 3(我认为 x-gvfs-show 会解决,但没有),据我所知/etc/fstab,它适用于静态驱动器,而 udisks2 适用于所有类型的可移动驱动器,所以我更喜欢 udisks2解决方案。

使用由某个守护进程启动的很棒的 shell 脚本来检测磁盘何时插入。嗯,也许如果我别无选择,但我没有找到解决上述所有三个问题的任何脚本。此外,我仍然相信这项工作可以由 udisks2 完成。

告诉 udisks2 自动挂载所有逻辑卷。这是不希望的,因为我的一些逻辑卷是其他 linux 系统。无论如何,我没有找到任何方法来做到这一点。


动机

人们可能会问:
- 为什么在整个磁盘上使用单个 LVM 分区而不是单个标准分区?亲!
- 是的你是对的 !然而,我在这里尝试实现的只是我最终想要实现的一个更简单的场景。我有另一个磁盘,我在其上安装了一个小型 ESP 分区以在 EFI 模式下进行多重引导,另一个 LVM 物理卷包含两个具有两个不同 linux 的逻辑卷和一个用于媒体数据存储的第三个巨大逻辑卷。大多数时候这个磁盘只是插在我的个人电脑上,所以我只使用媒体数据存储分区进行备份和音乐,但有时我没有电脑去其他地方,只带我的磁盘,所以我可以自己启动linux、emacs 和音乐播放器按我喜欢的方式配置,并在愉快的环境中开始工作。在这种情况下,LVM 对于此设置非常有用,可以轻松调整大小和管理加密。

usb-drive lvm automount udisks external-hdd
  • 1 1 个回答
  • 3514 Views

1 个回答

  • Voted
  1. Best Answer
    Émilien
    2019-03-30T05:33:58+08:002019-03-30T05:33:58+08:00

    最后经过这么多尝试,我发现自动挂载逻辑卷的最佳且唯一可行的解​​决方案是使用 SystemD。在下创建您的<path-to-mount-folder>.mount和<path-to-mount-folder>.automount文件/etc/systemd/system/

    媒体用户名 wd.mount

    [Unit]
    Description=Western Digital external drive mount in media
    
    [Mount]
    What=/dev/wdhdd0/wd0
    Where=/media/username/wd
    Type=ext4
    Options=defaults
    
    [Install]
    WantedBy=multi-user.target
    

    媒体用户名 wd.automount

    [Unit]
    Description=Western Digital external drive automount in media
    
    [Automount]
    Where=/media/username/wd
    
    [Install]
    WantedBy=multi-user.target
    

    安装这些新服务

    systemctl daemon-reload
    systemctl disable media-mil-wd.mount
    systemctl enable media-mil-wd.automount
    

    该服务.mount被禁用,只有.automount故意启用。前者用于 fstab 的精神,用于在启动时挂载分区,后者用于在检测到(插入外部驱动器)时自动挂载分区。尽管创建.mount的每个文件都需要存在一个文件.automount ,但启用该服务并不是必须的。

    检查状态

    systemctl start media-mil-wd.automount
    systemctl status media-mil-wd.automount
    

    我要感谢 Tomáš Tomeček 提供的用 SystemD进行 Automount 的不可估量的帖子,如果我能早点发现它,它本可以为我节省数小时的 udev 手动阅读时间。

    最后,这个解决方案现在对我来说已经足够好了,它解决了我的主要问题 [Problem1] 和 [Problem2],这很好。但是它不能解决 [Problem3] 但我现在可以忍受。

    我仍然愿意接受任何建议,特别是如果它们更简单或允许解决在 Nautilus 中完美集成的 [Problem3]。

    • 4

相关问题

  • 将 VM 映像转换或复制到 lvm 的最佳方法是什么?

  • 为什么 xfs_check 不运行?[关闭]

  • 将 USB 磁盘挂载到永久位置

  • 如何检查/修改预装系统上的 LVM 状态?

  • 如何使文件夹与外部 USB 硬盘保持同步?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve