[Решено] Отвалившееся автомонтирование средствами udev (Debian jessie, udev, systemd, ntfs-3g)

Knoppix

Модераторы: Warderer, Модераторы разделов

Аватара пользователя
Dark_Savant
Бывший модератор
Сообщения: 1100
Статус: киборг
ОС: Cyborg OS 0.0.1.3

[Решено] Отвалившееся автомонтирование средствами udev

Сообщение Dark_Savant »

Привет, друзья. Давно я на форум, однако, не захаживал...

Так вот, обновился. Вроде бы, все прошло гладко, за одним исключением: перестали монтироваться usb-hdd ( две штуки их у меня) с файловой системой ntfs.


Код: Выделить всё

->ls $usb/sdb1
ls: невозможно получить доступ к /mnt/usb/sdb1: Конечная точка передачи не подсоединена

->mount|grep sdb1
/dev/sdb1 on /mnt/usb/sdb1 type fuseblk (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096)

->sudo fdisk -l /dev/sdb
isk /dev/sdb: 931,5 GiB, 1000204885504 bytes, 1953525167 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb4612232

Device     Boot Start        End    Sectors   Size Id Type
/dev/sdb1  *     2048 1953521663 1953519616 931,5G  7 HPFS/NTFS/exFAT


->dmesg
...
139229.308093] usb 1-3: new high-speed USB device number 47 using ehci-pci
[139229.443455] usb 1-3: New USB device found, idVendor=0bc2, idProduct=2312
[139229.443467] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[139229.443474] usb 1-3: Product: Expansion
[139229.443480] usb 1-3: Manufacturer: Seagate
[139229.443487] usb 1-3: SerialNumber: NA47EQNA
[139229.444089] usb-storage 1-3:1.0: USB Mass Storage device detected
[139229.446050] scsi56 : usb-storage 1-3:1.0
[139230.445099] scsi 56:0:0:0: Direct-Access     Seagate  Expansion        0636 PQ: 0 ANSI: 6
[139230.445740] sd 56:0:0:0: Attached scsi generic sg1 type 0
[139230.450678] sd 56:0:0:0: [sdb] Spinning up disk...
[139234.584062] .ready
[139234.584857] sd 56:0:0:0: [sdb] 1953525167 512-byte logical blocks: (1.00 TB/931 GiB)
[139234.585572] sd 56:0:0:0: [sdb] Write Protect is off
[139234.585581] sd 56:0:0:0: [sdb] Mode Sense: 2b 00 10 08
[139234.586346] sd 56:0:0:0: [sdb] Write cache: enabled, read cache: enabled, supports DPO and FUA
[139234.615223]  sdb: sdb1
[139234.617929] sd 56:0:0:0: [sdb] Attached SCSI disk



Монтирование производится так:

cat /etc/udev/rules.d/00-personal.rules

Код: Выделить всё

SUBSYSTEM=="block", ACTION=="remove", RUN+="/bin/umount -lf /mnt/usb/$name", RUN+="/bin/rmdir /mnt/usb/$name"

SUBSYSTEM=="block", DRIVERS=="usb-storage", ACTION=="add", RUN+="/etc/udev/scripts/usbmount $name"


cat /etc/udev/scripts/usbmount:

Код: Выделить всё

mkdir /mnt/usb/$1
umount /dev/$1
mount -t vfat -o rw,noexec,uid=1000,quiet,umask=022,flush,dirsync /dev/$1 /mnt/usb/$1 || ntfs-3g -o uid=1000,gid=1000,dmask=022,fmask=133,noauto,locale=ru_RU.UTF-8,force /dev/$1 /mnt/usb/$1


Манипуляции с заменой в правиле udev $name на идентификатор %k ничего не дали. Попытка заменить скрипт на /bin/mount /dev/$name /mnt/test или сменить очередность попыток монтирования - аналогично.

Как видно, опции монтирования, передаваемые скриптом, отличаются от того, что выдает после неудачного монтирования mount.

Вручную скрипт отрабатывает как надо, как и ручное монтирование:

Код: Выделить всё

->sudo /etc/udev/scripts/usbmount sdb1
mkdir: невозможно создать каталог «/mnt/usb/sdb1»: Файл существует
umount: /dev/sdb1: not mounted

->ls -l $usb/sdb1
итого 68K
drwxr-xr-x 1 user user 8,0K янв 10  2014 1/
drwxr-xr-x 1 user user 4,0K ноя 17 16:33 2/
drwxr-xr-x 1 user user 4,0K янв 10  2014 3/
drwxr-xr-x 1 user user    0 янв 10  2014 4/
drwxr-xr-x 1 user user 4,0K янв 11  2014 5/
drwxr-xr-x 1 user user  48K мар 29 22:24 6/

->mount |grep sdb1
/dev/sdb1 on /mnt/usb/sdb1 type fuseblk (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096)


Вопрос: кто виноват и что с этим делать? Ах да, флешка с vfat успешно монтируется в автоматическом режиме.
I'm a tragic hero
In this game called life
My chances go to zero
But I always will survive
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21413
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [Решено] Отвалившееся автомонтирование средствами udev

Сообщение Bizdelnick »

udevadm monitor что говорит?
Если перенаправить вывод команды монтирования (stdout и stderr) в файл, что там будет?
Да, почему скрипт без shebang?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Dark_Savant
Бывший модератор
Сообщения: 1100
Статус: киборг
ОС: Cyborg OS 0.0.1.3

Re: [Решено] Отвалившееся автомонтирование средствами udev

Сообщение Dark_Savant »

udevadm monitor говорит следующее:

Код: Выделить всё

monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[142175.153858] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3 (usb)
KERNEL[142175.154950] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0 (usb)
KERNEL[142175.156465] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61 (scsi)
KERNEL[142175.156507] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61/scsi_host/host61 (scsi_host)
UDEV  [142175.165116] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3 (usb)
UDEV  [142175.166425] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0 (usb)
UDEV  [142175.167133] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61 (scsi)
UDEV  [142175.168085] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61/scsi_host/host61 (scsi_host)
KERNEL[142176.157222] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61/target61:0:0 (scsi)
KERNEL[142176.157868] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61/target61:0:0/61:0:0:0 (scsi)
KERNEL[142176.157908] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61/target61:0:0/61:0:0:0/scsi_disk/61:0:0:0 (scsi_disk)
KERNEL[142176.157940] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61/target61:0:0/61:0:0:0/scsi_device/61:0:0:0 (scsi_device)
KERNEL[142176.158249] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61/target61:0:0/61:0:0:0/scsi_generic/sg1 (scsi_generic)
KERNEL[142176.158432] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61/target61:0:0/61:0:0:0/bsg/61:0:0:0 (bsg)
UDEV  [142176.158594] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61/target61:0:0 (scsi)
UDEV  [142176.161913] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61/target61:0:0/61:0:0:0 (scsi)
UDEV  [142176.162880] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61/target61:0:0/61:0:0:0/scsi_disk/61:0:0:0 (scsi_disk)
KERNEL[142176.163188] add      /devices/virtual/bdi/8:16 (bdi)
UDEV  [142176.164969] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61/target61:0:0/61:0:0:0/bsg/61:0:0:0 (bsg)
UDEV  [142176.165227] add      /devices/virtual/bdi/8:16 (bdi)
UDEV  [142176.166422] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61/target61:0:0/61:0:0:0/scsi_device/61:0:0:0 (scsi_device)
UDEV  [142176.166743] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61/target61:0:0/61:0:0:0/scsi_generic/sg1 (scsi_generic)
KERNEL[142176.212911] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61/target61:0:0/61:0:0:0/block/sdb (block)
KERNEL[142176.212949] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61/target61:0:0/61:0:0:0/block/sdb/sdb1 (block)
UDEV  [142176.408136] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61/target61:0:0/61:0:0:0/block/sdb (block)
KERNEL[142177.756976] add      /devices/virtual/bdi/8:17-fuseblk (bdi)
UDEV  [142177.758931] add      /devices/virtual/bdi/8:17-fuseblk (bdi)
UDEV  [142177.766224] add      /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61/target61:0:0/61:0:0:0/block/sdb/sdb1 (block)
KERNEL[142180.774980] change   /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61/target61:0:0/61:0:0:0/block/sdb/sdb1 (block)
UDEV  [142180.821403] change   /devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0/host61/target61:0:0/61:0:0:0/block/sdb/sdb1 (block)


Если перенаправить вывод команды в файл, в файле, ожидаемо, будет перенаправленная команда:

Код: Выделить всё

->cat /etc/udev/scripts/usbmount|sed '/^#/d'
mkdir /mnt/usb/$1
umount /dev/$1
echo "ntfs-3g -o uid=1000,gid=1000,dmask=022,fmask=133,noauto,locale=ru_RU.UTF-8,force /dev/$1 /mnt/usb/$1" >>/1.log

->cat /1.log
ntfs-3g -o uid=1000,gid=1000,dmask=022,fmask=133,noauto,locale=ru_RU.UTF-8,force /dev/sdb /mnt/usb/sdb
ntfs-3g -o uid=1000,gid=1000,dmask=022,fmask=133,noauto,locale=ru_RU.UTF-8,force /dev/sdb1 /mnt/usb/sdb1


То есть попытка смонтировать устройство sdb, разумеется, неудачная, после чего попытка смонтировать sdb1.
I'm a tragic hero
In this game called life
My chances go to zero
But I always will survive
Спасибо сказали:
Аватара пользователя
Dark_Savant
Бывший модератор
Сообщения: 1100
Статус: киборг
ОС: Cyborg OS 0.0.1.3

Re: [Решено] Отвалившееся автомонтирование средствами udev

Сообщение Dark_Savant »

Обнаружился интересный эфект: запустил watch -t -n1 'ls /mnt/usb/sdb1', обнаружил, что раздел корректно монтируется, после чего, буквально, через пару секунд становится недоступен:

ls: cannot access /mnt/usb/sdb1: Transport endpoint is not connected

Оченна странно это все.
I'm a tragic hero
In this game called life
My chances go to zero
But I always will survive
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21413
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [Решено] Отвалившееся автомонтирование средствами udev

Сообщение Bizdelnick »

Может ещё что-то пытается его примонтировать? udisksctl monitor что покажет?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Dark_Savant
Бывший модератор
Сообщения: 1100
Статус: киборг
ОС: Cyborg OS 0.0.1.3

Re: [Решено] Отвалившееся автомонтирование средствами udev

Сообщение Dark_Savant »

Обратил внимание, что возникае эвент "change" при попытке примонтировать средствами udev. Монтирование руками эвента не вызвает.

Вывод udisksctl monitor:

Код: Выделить всё

Monitoring the udisks daemon. Press Ctrl+C to exit.
15:01:54.912: The udisks-daemon is running (name-owner :1.61).
15:02:08.017: Added /org/freedesktop/UDisks2/drives/ST1000LM024_HN_M101MBB_S2ZPJ9HDA04076
  org.freedesktop.UDisks2.Drive:
    CanPowerOff:                true
    Configuration:              {}
    ConnectionBus:              usb
    Ejectable:                  false
    Id:                         ST1000LM024-HN-M101MBB-S2ZPJ9HDA04076
    Media:
    MediaAvailable:             true
    MediaChangeDetected:        true
    MediaCompatibility:
    MediaRemovable:             false
    Model:                      ST1000LM024 HN-M101MBB
    Optical:                    false
    OpticalBlank:               false
    OpticalNumAudioTracks:      0
    OpticalNumDataTracks:       0
    OpticalNumSessions:         0
    OpticalNumTracks:           0
    Removable:                  true
    Revision:                   2AR20003
    RotationRate:               5400
    Seat:                       seat0
    Serial:                     S2ZPJ9HDA04076
    SiblingId:                  /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3:1.0
    Size:                       1000204885504
    SortKey:                    01hotplug/1430481727932045
    TimeDetected:               1430481727932045
    TimeMediaDetected:          1430481727932045
    Vendor:
    WWN:                        0x50004cf20b522b8a
  org.freedesktop.UDisks2.Drive.Ata:
    AamEnabled:                                 false
    AamSupported:                               true
    AamVendorRecommendedValue:                  254
    ApmEnabled:                                 false
    ApmSupported:                               true
    PmEnabled:                                  true
    PmSupported:                                true
    SecurityEnhancedEraseUnitMinutes:           216
    SecurityEraseUnitMinutes:                   216
    SecurityFrozen:                             false
    SmartEnabled:                               true
    SmartFailing:                               false
    SmartNumAttributesFailedInThePast:          -1
    SmartNumAttributesFailing:                  -1
    SmartNumBadSectors:                         1
    SmartPowerOnSeconds:                        0
    SmartSelftestPercentRemaining:              -1
    SmartSelftestStatus:
    SmartSupported:                             true
    SmartTemperature:                           0.0
    SmartUpdated:                               0
    WriteCacheEnabled:                          true
    WriteCacheSupported:                        true
15:02:08.018: Added /org/freedesktop/UDisks2/block_devices/sdb
  org.freedesktop.UDisks2.Block:
    Configuration:              []
    CryptoBackingDevice:        '/'
    Device:                     /dev/sdb
    DeviceNumber:               2064
    Drive:                      '/org/freedesktop/UDisks2/drives/ST1000LM024_HN_M101MBB_S2ZPJ9HDA04076'
    HintAuto:                   true
    HintIconName:
    HintIgnore:                 false
    HintName:
    HintPartitionable:          true
    HintSymbolicIconName:
    HintSystem:                 false
    Id:                         by-id-ata-ST1000LM024_HN-M101MBB_S2ZPJ9HDA04076
    IdLabel:
    IdType:
    IdUUID:
    IdUsage:
    IdVersion:
    MDRaid:                     '/'
    MDRaidMember:               '/'
    PreferredDevice:            /dev/sdb
    ReadOnly:                   false
    Size:                       1000204885504
    Symlinks:                   /dev/disk/by-id/ata-ST1000LM024_HN-M101MBB_S2ZPJ9HDA04076
                                /dev/disk/by-id/wwn-0x50004cf20b522b8a
                                /dev/disk/by-path/pci-0000:00:1a.7-usb-0:3:1.0-scsi-0:0:0:0
  org.freedesktop.UDisks2.PartitionTable:
    Type:               dos
15:02:08.360: /org/freedesktop/UDisks2/drives/ST1000LM024_HN_M101MBB_S2ZPJ9HDA04076: org.freedesktop.UDisks2.Drive.Ata: Properties Changed
  SmartSelftestPercentRemaining:                0
  SmartSelftestStatus:                          success
  SmartNumBadSectors:                           0
  SmartNumAttributesFailedInThePast:            0
  SmartNumAttributesFailing:                    0
  SmartPowerOnSeconds:                          7236000
  SmartTemperature:                             298.15000000000003
  SmartUpdated:                                 1430481728
15:02:09.394: Added /org/freedesktop/UDisks2/block_devices/sdb1
  org.freedesktop.UDisks2.Block:
    Configuration:              []
    CryptoBackingDevice:        '/'
    Device:                     /dev/sdb1
    DeviceNumber:               2065
    Drive:                      '/org/freedesktop/UDisks2/drives/ST1000LM024_HN_M101MBB_S2ZPJ9HDA04076'
    HintAuto:                   true
    HintIconName:
    HintIgnore:                 false
    HintName:
    HintPartitionable:          true
    HintSymbolicIconName:
    HintSystem:                 false
    Id:                         by-id-ata-ST1000LM024_HN-M101MBB_S2ZPJ9HDA04076-part1
    IdLabel:                    Seagate Expansion Drive
    IdType:                     ntfs
    IdUUID:                     443069DC3069D608
    IdUsage:                    filesystem
    IdVersion:
    MDRaid:                     '/'
    MDRaidMember:               '/'
    PreferredDevice:            /dev/sdb1
    ReadOnly:                   false
    Size:                       1000202043392
    Symlinks:                   /dev/disk/by-id/ata-ST1000LM024_HN-M101MBB_S2ZPJ9HDA04076-part1
                                /dev/disk/by-id/wwn-0x50004cf20b522b8a-part1
                                /dev/disk/by-label/Seagate\x20Expansion\x20Drive
                                /dev/disk/by-path/pci-0000:00:1a.7-usb-0:3:1.0-scsi-0:0:0:0-part1
                                /dev/disk/by-uuid/443069DC3069D608
  org.freedesktop.UDisks2.Filesystem:
    MountPoints:        /mnt/usb/sdb1
  org.freedesktop.UDisks2.Partition:
    Flags:              128
    IsContained:        false
    IsContainer:        false
    Name:
    Number:             1
    Offset:             1048576
    Size:               1000202043392
    Table:              '/org/freedesktop/UDisks2/block_devices/sdb'
    Type:               0x07
    UUID:               b4612232-01


ЗЫ: попытка запрета еще каких-либо RUN, тоже обернулась ничем.
I'm a tragic hero
In this game called life
My chances go to zero
But I always will survive
Спасибо сказали:
Аватара пользователя
Dark_Savant
Бывший модератор
Сообщения: 1100
Статус: киборг
ОС: Cyborg OS 0.0.1.3

Re: [Решено] Отвалившееся автомонтирование средствами udev

Сообщение Dark_Savant »

На лоре подсказали:
Summary of changes from v177 to v178
....

udevd: kill hanging event processes after 30 seconds
...


Настроил через udevil+devmon. Такие дела.
I'm a tragic hero
In this game called life
My chances go to zero
But I always will survive
Спасибо сказали: