LinuxForum.Fans
Тема

Безопасное извлечение (Safely remove) USB-носителей в совр. GNU/Linux

Автор: nrbrtx 19 сообщений 5884 просмотров
#309668

Привет, LinuxForum!

Столкнулся с интересным поведением современных дистрибутивов GNU/Linux при работе с USB-flash и USB-HDD, касающимся пресловутого безопасного извлечения таких носителей.


В следующих системах после безопасного извлечения (из Nautilus) на USB-flash гасится светодиод, а на USB-HDD останавливается шпиндель и устройство исчезает из системы полностью (его нет в lsusb, fdisk -l, в файловой системе /dev):

  • Gentoo stable (GNOME с Nautilus 2.32), стоит на USB-HDD
  • Ubuntu 12.04.2 LTS (GNOME с Nautilus 3.4.2, Unity 5.18), стоит на ПК, ноутбуке и USB-flash

В этих системах функция безопасного извлечения отсутствует в Nautilus (заменена либо на Eject, либо на Unmount):

  • Ubuntu 12.10
  • Ubuntu 13.04 (скоро выйдет)
  • OpenSuSe 12.3
  • Fedora 18
  • Sabayon 11 Gnome

для этих систем единственный универсальный способ безопасного извлечения:

text

udisks --unmount /dev/sdXN
udisks --detach /dev/sdX

для Ubuntu пользователем с ником fenrrir подготовлен на GitHub Indicator-applet bdin, работающий с системой UDisks через DBus.



Многим не нравится такая ситуация с безопасным извлечением, поэтому существуют следующие баг-репорты:

Мне не нравится выдергивать крутящийся жесткий диск и флешку под напряжением.
В случае с флешкой после отмонтирования с данными скорее всего ничего не произойдет, а с жестким диском остается надеяться на механизмы автоматической парковки головок при пропадании питания.

Если Вы тоже считаете, что было бы хорошо вернуть в современные версии дистрибутивов безопасное извлечение, каким оно было в Gnome 3.4 (например, в Ubuntu 12.04) и Gnome 2.3x (например, в Gentoo и наверное, в Debian, CentOs, RedHat, SLED, Alt), пожалуйста, отпишитесь в баг-трекерах. Если в Ваших системах из списка выше светодиод флешки гасится и шпиндель останавливается или проблема существует и в других актуальных дистрибутивах, которые у Вас стоят, отпишитесь. Системы с KDE я не тестировал.

Я поместил в общий доступ таблицу на Google Docs - можете добавлять свои результаты тестирования безопасного извлечения - кому интересно. Лично я проверил 4 флешки и 1 внешний HDD на 4-х разных компьютерах на 8 дистрибутивах.


Цель этого поста - не решение конкретно моих проблем, а поиск единомышленников для заполнения багтрекеров (ссылки выше).
Мне не нравится, что из-за изменений архитектуры udisks (или чего-то там еще) страдают дистрибутивы и конечные пользователи. Не все знают и умеют пользоваться консолью, компиляторами и т.п.
В Ubuntu 12.04 LTS и Gentoo stable (как написано выше) гасится светодиод флешки и останавливается шпиндель внешнего диска. Такое поведение мне нравится, кажется логичным и понятным.
Так, как сделано сейчас в новых дистрибутивах (Unmount или Eject), мне не нравится.

Лично я найду способ безопасно извлечь флешку или жесткий диск (чтоб он не крутился при этом - хотя бы hdparm -y или -Y).
За новыми версиями дистрибутивов я не гонюсь. А что будет с начинающими пользователями?

Поэтому я предлагаю репортить в апстрим и на багтрекеры дистрибутивов.

Этой темой я обращаю внимание на проблему (раньше было хорошо, а сейчас все сломано), поэтому, пожалуйста, воздержитесь от ответов типа:

  • "выдергивай так, не парься"
  • "отмонтируй и выдергивай"
  • "выключи компьютер и выдергивай"
  • "поставь систему название-супер-мега-ОС, там всё работает"
#309673

Так я не понял, это Гномозавимо или как?

#309675

@karl_muenhgausen
Системы с KDE я не тестировал. Но судя по этому багу Dolphin, там тоже не все хорошо.

#309682
nrbrtx написал:
@karl_muenhgausen
Системы с KDE я не тестировал. Но судя по этому багу Dolphin, там тоже не все хорошо.

Скажите пожалуйста точно и ясно как для совсем тупого пошагово что я должен сделать и какой результат должен или не должен быть. По крайней мере KDE и XFCE проверю.

#309688

@karl_muenhgausen
Спасибо, что откликнулись.

Для начала нужно вставить в USB-порт флешку или внешний USB-HDD. После этого система обрадуется новому носителю.
KDE 4 я мало тестировал, но тем не менее, предположим следующее.


Как должно быть - светодиод флешки погашен / USB-HDD не вращается:
В KDE 4 (Dolphin или Device Notifier рядом с треем) в меню/выпадающем списке нового носителя должна быть опция "Safely remove drive" (или похожая), после нажатия на которую светодиод на флешке гасится, а USB-HDD останавливается. После чего возможно появится сообщение, что устройство может быть отключено (вынуто из USB-разъема).

Как не должно быть- светодиод флешки остается гореть / USB-HDD продолжает вращаться:

  • В KDE 4 (Dolphin или Device Notifier рядом с треем) в меню/выпадающем списке нового носителя вместо "Safely remove drive" (или похожей) есть только опция "Eject" или "Unmount", после выбора которой светодиод на флешке продолжает гореть, но сама флешка из списка устройств в Dolphin или Device Notifier исчезает (или остается, но отмонтируется) и возможно появляется сообщение, что устройство может быть отключено от USB-порта.
    При этом если явно видно, что диск отмонтировался - флешку вынимать в принципе безопасно, даже если горит светодиод (данные то уже записаны).
  • В случае USB-HDD вместо "Safely remove drive" (или похожей) скорее всего будет опция "Unmount", после выбора которой диск продолжит вращаться.
    Если разделы диска отмонтированы, получится, что с точки зрения безопасности данных все вроде бы хорошо, но выдергивание USB-кабеля приведет к в принципе аварийной остановке шпинделя и непонятному положению головок (могут не успеть запарковаться) в связи с пропаданием питания.

Про KDE 3 и XFCE я не знаю, давно не пользовался, не на чем попробовать.

#309690

XFCE. Флэшка. При подключении появляется на рабочем столе, появляется в файлменеджерах (Thunar и Nautilus), при нажатии кнопки извлечь, не исчезает из системы полностью, светодиод горит.
USB-HDD - появляется также, при извлечении остаётся в файлменеджере якобы не подключённым, не останавливается, из системы не исчезает. Ubuntu 12.10 XFCE 4.10.0

KDE. Флэшка. При подключении появляется в виджете Плазмы "Подключаемые устройства", который предлагает доступные действия. Выбираем "Открыть в диспетчере файлов". Открывается в диспетчере файлов. В том же виджете нажимаем "Извлечь" - исчезает из фалменеджера (Dolphin), остатся в системе, светодиод не гаснет.
USB-HDD При подключении появляется в виджете Плазмы "Подключаемые устройства", который предлагает доступные действия. Выбираем "Открыть в диспетчере файлов". Открывается в диспетчере файлов. В том же виджете нажимаем "Извлечь" - не останавливается, ни откуда не исчезает, светодиод горит. Mageia 2 KDE 4.8.5

[console]
$ udisks --detach /dev/sdX[/console]

Естественно решает проблему.

В целом - да, как-то некрасиво выходит... Может это мы чего-то не понимаем?...

#309709

Спасибо за отчет :)
При желании можете добавить строчки в табличку на Google Docs - она доступна для редактирования.
В поле Reporter ника будет достаточно.

С Ubuntu в явном виде получается bug #1067876. Можете добавиться в список пользователей, заметивших его ("This bug affects XX person. Does this bug affect you?" -> "Does this bug affect you? -> Yes, it affects me").
Для Mageia придется создать сообщение об ошибке в их BugZilla. Сможете - сделайте, пожалуйста, не сможете - я позже сделаю, тем более дистрибутив я скачал, но не попробовал.
Еще можно добавить комментарии к багам в апстириме (Gnome/Nautilus #693946, например).

В целом - да, как-то некрасиво выходит... Может это мы чего-то не понимаем?...

Мое мнение такое - разработчики UDisks выпустили вторую версию своей программы, а разработчики рабочих столов не адаптировались к этому изменению.
С другой стороны UDisks первой версии продолжает быть доступным для установки практически в любом дистрибутиве и остается работоспособным (но это не через GUI, а через консоль).
Это подтверждается тем, что проблема оказывается дистрибутиво-независимой и тем, что системы с udisks-1.0 не подвержены проблеме (в моей таблице это Ubuntu 12.04 LTS, Gentoo stable).

#309719

Завтра к вечеру займусь документами этими. Спасибо, занятный вопрос выдался. Надо будет с Mageia 3 beta посмотреть, может успеют исправить? Если не поленюсь и вспомню как USB разрешается в ВиртуалБоксе, то попробую на Debian 6 IceWM...

#309749

Завтра к вечеру займусь документами этими. Спасибо, занятный вопрос выдался. Надо будет с Mageia 3 beta посмотреть, может успеют исправить? Если не поленюсь и вспомню как USB разрешается в ВиртуалБоксе, то попробую на Debian 6 IceWM...

Понял, спасибо.
Еще есть вариант поставить тот или иной дистрибутив на флешку - я так свои эксперименты провожу - при этом загрузчик GRUB ставится на неё же.
Я пока Mageia попробую.

#309909

По стандарту USB не регламентировано отключать напряжение после безопасного отключения или нет, так что горящий светодиод флешки это вполне нормально и безопасно.

#309957

Спасибо за информацию, Vascom.

Посмотрел рекомендации производителей жестких дисков на счет горячего подключения и отключения (hot-plug или hot-swap) - Seagate и
Western Digital слова Safely remove hardware пишут, WD явно пишет, что они не поддерживают Linux и отсылают пользователей к "man mount".
В документе по дискам Samsung/Seagate Momentus в описании работы диска написано следующее:
"5.1.7 Load/Unload Mechanism
Portable computer is exposed to heavy handling environment comparing with desk top computer. Load/Unload mechanism provides to protect data loss caused by head hitting to disk due to the abnormal shock and vibration in the transportation and handling. When power is shut down, head will move to parking position on the ramp."

Из этой документации получается, что если разделы диска отмонтированы, можно его отключать сразу.
Однако вопрос об исчезновении опции Safely remove все равно остается.

#309958

Ну это уже вопрос к конкретному ДЕ. В КДЕ ,например, всё остаётся.

#310111

В Mageia 3 beta 3 (Clarendon) с Gnome и Nautilus 3.6.3 тоже не работает. Создал баг-репорт и обновил первый пост.

#386821

Вроде бы проблема решена в версии Udisks 2.1.3
Нужна проверка.

#386967

ArchLinux 3.15.5-1 x86_64 на USB-HDD шпиндель не останавливается

text
local/udisks2 2.1.3-1
    Disk Management Service, version 2

хотя он и на win7 тож не останавливается

#386972
verg написал:
Вроде бы проблема решена в версии Udisks 2.1.3
Нужна проверка.

Видимо моя проблема с CD/DVD из этой же серии.

#386973
"nrbrtx" написал:
Как должно быть - светодиод флешки погашен / USB-HDD не вращается:

Светодиод либо показывает наличие питания, либо обращения к диску.
Поэтому если при работе светодиод моргает, то после программного извлечения должен либо погаснуть, либо перестать моргать.
Главное чтобы во время извлечения не было обращений к диску.
Раз программно извлечено, физическое извлечение дело техники.
Другое дело если вы извлекаете, а устройство остается где-то смонтировано в системе - вот это проблема.
Всё остальное при наличии аппаратного Паркинга не более чем косметические плюшки.

#386974
"mozgfx" написал:
Видимо моя проблема с CD/DVD из этой же серии.

Не только ваша =)

Войдите или зарегистрируйтесь, чтобы ответить.