首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Debian下面用自定义的固定挂载点覆盖udisks2 /media/$USER/挂载

在Debian下面用自定义的固定挂载点覆盖udisks2 /media/$USER/挂载
EN

Unix & Linux用户
提问于 2021-02-04 19:41:59
回答 1查看 1.3K关注 0票数 0

我正在使用Debian ( 10.7 ),我对udev/ udisks2 2/systemd相对来说还是比较新的,并且一直在努力更好地了解它们,并且学到了很多东西,尽管我似乎无法弄清楚如何既防止udisks2自动将特定的卷( SD卡)安装为/media/$USER/foo,又将其安装为/data

以下是我到目前为止尝试过的:

代码语言:javascript
复制
$ grep /data /etc/fstab
UUID="3537-3761"      /data     exfat-fuse    defaults,nofail,x-systemd.device-timeout=2ms  0       0

$ cat /etc/systemd/system/data-sdcard-mount.service   
[Unit]
Description=Mount Data SD Card on /data
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/mount /data
ExecStop=/bin/umount /data

$ cat /etc/udev/rules.d/99-data-sdcard.rules
ACTION=="add", \
    SUBSYSTEM=="block", \
    ENV{DEVTYPE}=="partition", \
    ENV{ID_DRIVE_MEDIA_FLASH_SD}=="1", \
    ENV{ID_NAME}=="SF256", \
    ENV{ID_SERIAL}=="0x3db0a775", \
    RUN+="/bin/systemctl start data-sdcard-mount", \
    ENV{UDISKS_IGNORE}="1", \
    OPTIONS="last_rule"

ACTION=="remove", \
    SUBSYSTEM=="block", \
    ENV{DEVTYPE}=="partition", \
    ENV{ID_DRIVE_MEDIA_FLASH_SD}=="1", \
    ENV{ID_NAME}=="SF256", \
    ENV{ID_SERIAL}=="0x3db0a775", \
    RUN+="/bin/systemctl stop data-sdcard-mount", \
    OPTIONS="last_rule"

下面是我在另一个终端窗口中看到的syslog,当卡被插入时(尽管是在登录到MATE之后):

代码语言:javascript
复制
Feb  4 13:25:51 localhost kernel: [508706.027711] mmc3: new high speed SDXC card at address aaaa
Feb  4 13:25:51 localhost kernel: [508706.044472] mmcblk3: mmc3:aaaa SF256 238 GiB 
Feb  4 13:25:51 localhost kernel: [508706.058372]  mmcblk3: p1
Feb  4 13:25:51 localhost systemd[1]: Starting Mount Data SD Card on /data...
Feb  4 13:25:51 localhost mount[1734]: FUSE exfat 1.3.0
Feb  4 13:25:51 localhost mount[1734]: WARN: volume was not unmounted cleanly.
Feb  4 13:25:51 localhost mount.exfat-fuse: volume was not unmounted cleanly
Feb  4 13:25:51 localhost systemd[1]: data.mount: Unit is bound to inactive unit dev-disk-by\x2duuid-3537\x2d3761.device. Stopping, too.
Feb  4 13:25:51 localhost systemd[1]: Started Mount Data SD Card on /data.
Feb  4 13:25:51 localhost systemd[1]: Unmounting /data...
Feb  4 13:25:51 localhost systemd[14720]: data.mount: Succeeded.
Feb  4 13:25:51 localhost systemd[2920]: data.mount: Succeeded.
Feb  4 13:25:51 localhost systemd[1]: data.mount: Succeeded.
Feb  4 13:25:51 localhost systemd[1]: Unmounted /data.
Feb  4 13:25:52 localhost systemd[1]: Started Clean the /media/vanfan/Data mount point.
Feb  4 13:25:52 localhost udisksd[2010]: Mounted /dev/mmcblk3p1 at /media/vanfan/Data on behalf of uid 1000

它看起来像挂载到/data,但由于某种原因被卸载。

下面是out of udisksctl info -b /dev/mmcblk3p1

代码语言:javascript
复制
$ udisksctl info -b /dev/mmcblk3p1
/org/freedesktop/UDisks2/block_devices/mmcblk3p1:
  org.freedesktop.UDisks2.Block:
    Configuration:              []
    CryptoBackingDevice:        '/'
    Device:                     /dev/mmcblk3p1
    DeviceNumber:               45825
    Drive:                      '/org/freedesktop/UDisks2/drives/SF256_0x3db0a775'
    HintAuto:                   true
    HintIconName:               
    HintIgnore:                 false
    HintName:                   
    HintPartitionable:          true
    HintSymbolicIconName:       
    HintSystem:                 false
    Id:                         by-uuid-3537-3761
    IdLabel:                    Data
    IdType:                     exfat
    IdUUID:                     3537-3761
    IdUsage:                    filesystem
    IdVersion:                  1.0
    MDRaid:                     '/'
    MDRaidMember:               '/'
    PreferredDevice:            /dev/mmcblk3p1
    ReadOnly:                   false
    Size:                       255835766784
    Symlinks:                   /dev/disk/by-id/mmc-SF256_0x3db0a775-part1
                                /dev/disk/by-label/Data
                                /dev/disk/by-path/platform-4809c000.mmc-part1
                                /dev/disk/by-uuid/3537-3761
    UserspaceMountOptions:      uhelper=udisks2
  org.freedesktop.UDisks2.Filesystem:
    MountPoints:        /media/vanfan/Data
    Size:               0
  org.freedesktop.UDisks2.Partition:
    Flags:              0
    IsContained:        false
    IsContainer:        false
    Name:               
    Number:             1
    Offset:             33554432
    Size:               255835766784
    Table:              '/org/freedesktop/UDisks2/block_devices/mmcblk3'
    Type:               0x07
    UUID: 

我可能遗漏了什么吗?有没有更好的方法来解决这个问题?我曾经尝试过研究这个话题,在尝试让它发挥作用的同时,我真的不明白为什么这不起作用。

EN

回答 1

Unix & Linux用户

发布于 2021-02-05 07:04:02

看来我找到了为什么UDisks忽略您的fstab条目-- UDisks不能解析您的fstab

代码语言:javascript
复制
UUID="3537-3761"      /data     exfat-fuse    defaults,nofail,x-systemd.device-timeout=2ms  0       0

UUID="3537-3761"中的引号导致了这个问题。对我的系统进行快速测试:

加上引号:

代码语言:javascript
复制
$ udisksctl mount -b /dev/sdb1
Mounted /dev/sdb1 at /run/media/vojta/E2FC-EAE3

没有:

代码语言:javascript
复制
$ udisksctl mount -b /dev/sdb1
Mounted /dev/sdb1 at /mnt/test

我不确定这是否有效,所有示例(包括man fstab)都说将UUID的条目指定为UUID=,因此没有引号,但是mount确实有效,因此UDisks可能也应该这样做,因此您可能会考虑将其报告为UDisks错误。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/632681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档