LINUX.ORG.RU

Поломался автомаунт флешек в KDE

 ,


1

2

Debian squeeze, KDE 4.4.5, флешки через KDEшный апплет перестали монтироваться. В логах ничего подозрительного, вроде, не обнаружил. Ручками в консоли монтируются нормально. Подозреваю policykit или udisks, но не знаю как проверить. Куда копать?

★★★★★

Последнее исправление: Axon (всего исправлений: 1)
Ответ на: комментарий от AITap

mount ... ..., или udisks --mount /dev/sdXY?

Первое. Второе не пробовал.

В ~/.xsession-errors смотрели?

Да. Ничего интересного.

Axon ★★★★★
() автор топика
Ответ на: комментарий от Axon

Поломался автомаунт флешек

стейбл

плохой стейбл

e1nste1n ★★★★★
()

это

SUBSYSTEM=="block", KERNEL=="sd*", ACTION=="add", RUN+="/bin/mount /dev/sdc1 /mnt/flash/"
SUBSYSTEM=="block", KERNEL=="sd*", ACTION=="remove", RUN+="/bin/umount /mnt/flash"

сюда

/etc/udev/rules.d/10-automount.rules

Dron ★★★★★
()

Проблема только с одной флешкой или со всеми? Такое бывает если на флешке создать партиции.

at ★★
()
Ответ на: комментарий от Dron

это

SUBSYSTEM=="block", KERNEL=="sd*", ACTION=="add", RUN+="/bin/mount /dev/sdc1 /mnt/flash/"
SUBSYSTEM=="block", KERNEL=="sd*", ACTION=="remove", RUN+="/bin/umount /mnt/flash"
сюда

/etc/udev/rules.d/10-automount.rules

Я бы за такое линейкой по рукам бил. Без обид.

Axon ★★★★★
() автор топика
Ответ на: комментарий от Axon

Раньше такие флешки делал systemrescuecd. С версией 3.1.1 повторить не могу, видимо исправили.

udisks на что нибудь ругается? У меня было

[  143.227878] UDF-fs: warning (device sdc1): udf_load_vrs: No VRS found
[  143.227884] UDF-fs: Rescanning with blocksize 2048
[  143.318878] UDF-fs: warning (device sdc1): udf_load_vrs: No VRS found
[  143.318884] UDF-fs: warning (device sdc1): udf_fill_super: No partition found (1)
[  143.385751] ISOFS: Unable to identify CD-ROM format.
Т.е. он считал флешку CD-ROM-ом.

at ★★
()
Ответ на: комментарий от at

Там я смотрел, такого не было.

Axon ★★★★★
() автор топика
Ответ на: комментарий от AITap

Проверьте, что напишет.

Завтра проверю, сейчас тот комп недоступен.

Axon ★★★★★
() автор топика

подобная проблема возникла на рабочей машине,крутится под арчем буду наблюдать за темой

tux-eda
()
Ответ на: комментарий от AITap
user@Prime:~$ udisks --mount /dev/sdb1
Mount failed: Error mounting: mount exited with exit code 1: helper failed with:
mount: mount point /media/usb0 does not exist
user@Prime:~$ sudo mkdir /media/usb0
user@Prime:~$ udisks --mount /dev/sdb1
Mounted /org/freedesktop/UDisks/devices/sdb1 at /media/usb0

Похоже, он почему-то не может создать себе каталог в /media. Any ideas why?

Axon ★★★★★
() автор топика
Ответ на: комментарий от pylin

На какой? На /media их пользователю иметь не положено, а целевые каталоги для монтирования udisks создаёт динамически, и права на них назначает сам.

Axon ★★★★★
() автор топика
Последнее исправление: Axon (всего исправлений: 1)
Ответ на: комментарий от AITap

Можно попробовать strace'ить (с -f) или gdb'нуть udisks-daemon.

Вот трейс: http://pastebin.com/AuJbF8zt. Я там мало что понимаю, но ничего интересного взгляд не выцепил. С gdb дела не имел...

Axon ★★★★★
() автор топика
Ответ на: комментарий от Axon

Не вижу вызова mount или попыток до него достучаться. Может быть, нужно attach'иться (-p <PID>) к существующему процессу?

AITap ★★★★★
()

Посмотрите файл /usr/share/polkit-1/actions/org.freedesktop.udisks.policy на предмет политик «Mount a device» и «Mount a system-internal device»..

klasik
()
Ответ на: комментарий от klasik

Там есть такая секция:

  <action id="org.freedesktop.udisks.filesystem-mount">
    <description>Mount a device</description>
    <description xml:lang="da">Montér en enhed</description>
    <description xml:lang="de">Gerät einhängen</description>
    <message>Authentication is required to mount the device</message>
    <message xml:lang="da">Autorisering er påkrævet for at montere et fil system</message>
    <message xml:lang="de">Zugriffsrechte werden benötigt um das Gerät einzuhängen</message>
    <defaults>
      <allow_any>no</allow_any>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>
Вроде, всё правильно.

Axon ★★★★★
() автор топика
Ответ на: комментарий от AITap

Это в момент попытки монтирования?

Да.

Дети у процесса есть?

init─┬...
    ...
     ├─udisks-daemon─┬─udisks-daemon
     │               └─{udisks-daemon}
    ...
Axon ★★★★★
() автор топика
Ответ на: комментарий от Axon

Похоже на один дочерний процесс и один thread (по крайней мере, у меня pidof возвращает два числа). А если трейсить с -f оба процесса?

AITap ★★★★★
()
Ответ на: комментарий от AITap

Похоже на один дочерний процесс и один thread (по крайней мере, у меня pidof возвращает два числа). А если трейсить с -f оба процесса?

В ps -ef видно только один процесс.

Axon ★★★★★
() автор топика
Ответ на: комментарий от klasik

Выставьте временно параметры «allow_any» и «allow_inactive» в «yes»..

Несекурно, вроде... Должно работать и так, юзер-то active.

Axon ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Вполне. У меня самого Debian squeeze и KDE.

Тогда почему udisks-daemon стартует при попытке смонтировать флешку, и выдаёт в точности ту же ошибку, которую я вижу в гуе?

Axon ★★★★★
() автор топика
Ответ на: комментарий от klasik

1)Секции «Mount a system-internal device» нету?

Есть.

  <action id="org.freedesktop.udisks.filesystem-mount-system-internal">
    <description>Mount a system-internal device</description>
    <description xml:lang="da">Montér en intern enhed</description>
    <description xml:lang="de">Eingebautes Gerät einhängen</description>
    <message>Authentication is required to mount the device</message>
    <message xml:lang="da">Autorisering er påkrævet for at montere et fil system</me$
    <message xml:lang="de">Zugriffsrechte werden benötigt um das Gerät einzuhängen</$
    <defaults>
      <allow_any>no</allow_any>
      <allow_inactive>no</allow_inactive>
      <allow_active>auth_admin_keep</allow_active>
    </defaults>
  </action>

2) Вы можете для пробы хотя бы временно изменить эти параметры?

Сейчас попробую.

Axon ★★★★★
() автор топика
Ответ на: комментарий от klasik

Привёл секцию в такой вид:

  <action id="org.freedesktop.udisks.filesystem-mount-system-internal">
    <description>Mount a system-internal device</description>
    <description xml:lang="da">Montér en intern enhed</description>
    <description xml:lang="de">Eingebautes Gerät einhängen</description>
    <message>Authentication is required to mount the device</message>
    <message xml:lang="da">Autorisering er påkrævet for at montere et fil system</me$
    <message xml:lang="de">Zugriffsrechte werden benötigt um das Gerät einzuhängen</$
    <defaults>
      <allow_any>yes</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>
Ничего не поменялось.

Axon ★★★★★
() автор топика
Ответ на: комментарий от Axon

Тогда почему udisks-daemon стартует при попытке смонтировать флешку, и выдаёт в точности ту же ошибку, которую я вижу в гуе?

GUI чего? Можно снимок экрана или окна?

Лично у меня udisks, хоть и установлен, не используется. Если запустить вручную - работает. При монтировании средствами KDE никаких похожих процессов не возникает.

Опиши подробнее, что ты используешь для автомонтирования, и что как настроено.

anonymous
()
Ответ на: комментарий от anonymous

GUI чего? Можно снимок экрана или окна?

Тьфу, наврал. Там просто «не удалось подключить диск». Тыкаю в апплет «Подключаемые устройства» в KDE.

Опиши подробнее, что ты используешь для автомонтирования, и что как настроено.

Да всё по дефолту было, ничего сам не трогал. Установил KDE, запустил - работает. Работало-работало, и перестало.

Axon ★★★★★
() автор топика
Ответ на: комментарий от Axon

Для секции «Mount a device» попробуйте сделать так же. То есть разрешите монтирование одновременно в двух этих секциях.

klasik
()
Ответ на: комментарий от Axon

Значит, нужно разбираться с HAL.

Выполни:

# invoke-rc.d hal stop
# hald --daemon=no --verbose=yes 2>&1 | tee hald_log
- подожди, пока не перестанут появляться новые строки, затем вставь флешку и попробуй её смонтировать.

Содержимое hald_log после всего вышеперечисленного выложи куда-нибудь и дай ссылку.

Сам HAL потом можно запустить в прежнем виде: Ctrl+C в окне консоли, а затем:

# invoke-rc.d hal start

anonymous
()
Ответ на: комментарий от Axon

Только после попытки смонтировать флешку в него ничего не добавилось.

Это странно. Попробуем вручную.

  1. Вставь флешку.
  2. Определи UUID и тип ФС её тома:
    # blkid /dev/том
  3. Найди строку тома вида /org/freedesktop/Hal/devices/volume_uuid_UUID_тома в выводе
    $ qdbus --system org.freedesktop.Hal
  4. Попробуй смонтировать том:
    $ qdbus --system org.freedesktop.Hal строка_тома org.freedesktop.Hal.Device.Volume.Mount test ФС_тома ""

Если устройство не смонтируется в /media/test, проведём трассировку процесса монтирования HAL.

  1. Замени вспомогательную программу HAL:
    # cd /usr/lib/hal
    # mv hal-storage-mount{,~}
    # printf "#\x21/bin/bash\nstrace %s/hal-storage-mount~ \"\$@\" &> /tmp/hal-storage-mount_trace" $PWD > hal-storage-mount
    # chmod +x hal-storage-mount
  2. Попробуй смонтировать флешку.
  3. Выложи содержимое /tmp/hal-storage-mount_trace.
anonymous
()
Ответ на: комментарий от anonymous

Попробовал выполнить все эти действия, и на этапе попытки монтирования обнаружил, что оно обламывается из-за того, что /deb/sdb1 вписана в fstab. Блджад, я понятия не имею, как там оказалась эта строчка. Спасибо огромное, пойду разобью себе голову об стену.

Axon ★★★★★
() автор топика
8 февраля 2013 г.
Ответ на: комментарий от Axon

+1

Спасибо огромное за подсказку, аналогичная проблема закоментил fstab сразу заработало , а то был готов уже монтировать в ручную как лет 10 назад

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.