URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID15
Нить номер: 4005
[ Назад ]

Исходное сообщение
" Безопасное извлечение (Safely remove) USB-носителей"

Отправлено nrbrtx , 15-Мрт-13 12:23 
Привет, Opennet!

Столкнулся с интересным поведением современных дистрибутивов 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

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

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

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

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

    Gnome/Nautilus #693946 (https://bugzilla.gnome.org/show_bug.cgi?id=693946)
    Ubuntu #1067876 (http://launchpad.net/bugs/1067876)
    Fedora #919194 (https://bugzilla.redhat.com/show_bug.cgi?id=919194)
    OpenSuSe #808447 (https://bugzilla.novell.com/show_bug.cgi?id=808447)
    Sabayon #4072 (http://bugs.sabayon.org/show_bug.cgi?id=4072)

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

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

Я поместил в общий доступ таблицу на Google Docs (https://docs.google.com/spreadsheet/ccc?key=0Ao5e713Ig9g_dEt...) - можете добавлять свои результаты тестирования безопасного извлечения - кому интересно.

P.S. Аналогичная тема открыта и не ЛОРе (https://www.linux.org.ru/forum/linux-hardware/8958167).


Содержание

Сообщения в этом обсуждении
" Безопасное извлечение (Safely remove) USB-носителей"
Отправлено pavlinux , 15-Мрт-13 12:42 
# umount /dev/sdbX;

Как отработает можно вынимать.  


" Безопасное извлечение (Safely remove) USB-носителей"
Отправлено nrbrtx , 15-Мрт-13 12:47 
> # umount /dev/sdbX;
> Как отработает можно вынимать.

Спасибо, консоли я не боюсь. Про это знаю.


" Безопасное извлечение (Safely remove) USB-носителей"
Отправлено pavlinux , 15-Мрт-13 12:53 
> # umount /dev/sdbX;
> Как отработает можно вынимать.
> Мне не нравится выдергивать крутящийся жесткий диск и флешку под напряжением.

На тебе програмку, допиши парсер превращающий /dev/sdX в USB:[BUS:PORT]

http://marc.info/?l=linux-usb&m=127162615232234&q=p3
http://marc.info/?l=linux-usb&m=127162615232234&w=2


" Безопасное извлечение (Safely remove) USB-носителей"
Отправлено nrbrtx , 15-Мрт-13 13:05 
>> # umount /dev/sdbX;
>> Как отработает можно вынимать.
>> Мне не нравится выдергивать крутящийся жесткий диск и флешку под напряжением.
> На тебе програмку, допиши парсер превращающий /dev/sdX в USB:[BUS:PORT]
> http://marc.info/?l=linux-usb&m=127162615232234&q=p3
> http://marc.info/?l=linux-usb&m=127162615232234&w=2

Спасибо.

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

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


" Безопасное извлечение (Safely remove) USB-носителей"
Отправлено pavlinux , 15-Мрт-13 13:14 
> Лично я найду способ безопасно извлечь флешку или жесткий диск

Всё питание USB устройствами делается USB хабом, поэтому,
устройству ваааще фиолетово: если ты его программно выключишь или выдернешь руками.


" Безопасное извлечение (Safely remove) USB-носителей"
Отправлено Аноним , 24-Мрт-13 19:51 
> устройству ваааще фиолетово: если ты его программно выключишь или выдернешь руками.

Только если его заранее оповестили о таком раскладе. Иначе девайс может потерять некие данные.


" Безопасное извлечение (Safely remove) USB-носителей"
Отправлено Aquarius , 16-Мрт-13 15:17 
>[оверквотинг удален]
> Если Вы тоже считаете, что было бы хорошо вернуть в современные версии
> дистрибутивов безопасное извлечение, каким оно было в Gnome 3.4 (например, в
> Ubuntu 12.04) и Gnome 2.3x (например, в Gentoo и наверное, в
> Debian, CentOs, RedHat, SLED, Alt), пожалуйста, отпишитесь в баг-трекерах. Если в
> Ваших системах из списка выше светодиод флешки гасится и шпиндель останавливается
> или проблема существует и в других актуальных дистрибутивах, которые у Вас
> стоят, отпишитесь. Системы с KDE я не тестировал.
> Я поместил в общий доступ таблицу на Google Docs (https://docs.google.com/spreadsheet/ccc?key=0Ao5e713Ig9g_dEt...)
> - можете добавлять свои результаты тестирования безопасного извлечения - кому интересно.
> P.S. Аналогичная тема открыта и не ЛОРе (https://www.linux.org.ru/forum/linux-hardware/8958167).

Кто здесь?


" Безопасное извлечение (Safely remove) USB-носителей"
Отправлено ABATAPA , 17-Мрт-13 08:49 
Автор всё еще паркует головки?
И кто ему сказал, что "для этих систем единственный универсальный способ безопасного извлечения" — только udisks?
eject /dev/sdX
И способ уже не единственный.

Только вот не всегда это нужно.


" Безопасное извлечение (Safely remove) USB-носителей"
Отправлено nrbrtx , 17-Мрт-13 12:26 
> Автор всё еще паркует головки?
> И кто ему сказал, что "для этих систем единственный универсальный способ безопасного
> извлечения" — только udisks?
> eject /dev/sdX
> И способ уже не единственный.
> Только вот не всегда это нужно.

Да, только udisks --detach, так как eject не выключает питание на usb-порте в случае usb-flash и не останавливает шпиндель в случае hdd. Отдельно для последнего есть hdparm -y или -Y.

По поводу Вашего IMHO - оно меня не интересует - см. http://www.opennet.me/openforum/vsluhforumID15/4005.html#4
Раньше было хорошо, а сейчас все сломано.


" Безопасное извлечение (Safely remove) USB-носителей"
Отправлено pavlinux , 18-Мрт-13 05:22 
>> Автор всё еще паркует головки?
>> И кто ему сказал, что "для этих систем единственный универсальный способ безопасного
>> извлечения" — только udisks?
>> eject /dev/sdX
>> И способ уже не единственный.
>> Только вот не всегда это нужно.
> Да, только udisks --detach, так как eject не выключает питание на usb-порте
> в случае usb-flash и не останавливает шпиндель в случае hdd. Отдельно
> для последнего есть hdparm -y или -Y.

На HDD шпындель сам правильно стопарится  при потери питания, уже лет 25 точно,
НЕ НУЖНО ему команд.  Про ЮСБ я уже писал - он создан для Хот-Свапа! (SATA тоже).

Вот так Поттеринги и появляются.
  
Короча, как прочтёшь все эти доки приходи обратно.
http://www.usb.org/developers/docs/
http://www.serialata.org/developers/technical_library.asp



" Безопасное извлечение (Safely remove) USB-носителей"
Отправлено Аноним , 24-Мрт-13 19:54 
> НЕ НУЖНО ему команд.

А в интеловских SSD прямо такой счетчик ведется: unsafe shutdown count называется. Показывает сколько было внеплановых слетов питания без присылки системой последней командой по интерфейсу команды на шатдаун. Показывает число потенциальных потерь данных когда накопитель мог пахать делая в фоне GC а ему питание сняли. Так что не все так просто как кажется. Ты как-то совершенно не учитываешь что у фирмвары может быть какая-то своя линия поведения.


" Безопасное извлечение (Safely remove) USB-носителей"
Отправлено AV , 24-Мрт-13 21:22 
Да, допустим. Как он отличает внеплановый "слёт" питания от планового? Да никак, я подозреваю. Потому и счётчик этот для других целей, я подозреваю. Во всяком случае из твоего текста можно сделать именно такой вывод.

Я - "Солженицина не читал", (с) Жизнь Совейская. Так что поправьте пруф линком, если что.


" Безопасное извлечение (Safely remove) USB-носителей"
Отправлено AV , 24-Мрт-13 21:29 
Возьмите SpaceFM для исследований. Там две отдельных команды, имеющих отношение к отмонтированию....

О горячем отключении питания и специальном устройстве разъёма есть статьи. Обратите внимание, на SATA, на USB разъёмах контактные дорожки разной длины....

Картридеры бывают глючные. Даже в брендовых ноутбуках. Ты им даёшь все команды, а они их не делают. А это как отсекать в исследованиях....


" Безопасное извлечение (Safely remove) USB-носителей"
Отправлено nrbrtx , 24-Мрт-13 22:09 
> Возьмите SpaceFM для исследований. Там две отдельных команды, имеющих отношение к отмонтированию....
> О горячем отключении питания и специальном устройстве разъёма есть статьи. Обратите внимание,
> на SATA, на USB разъёмах контактные дорожки разной длины....
> Картридеры бывают глючные. Даже в брендовых ноутбуках. Ты им даёшь все команды,
> а они их не делают. А это как отсекать в исследованиях....

Спасибо за размышления.

В системах  с UDisks-1.0 питание порта выключалось, сейчас из-за изменения архитектуры UDisks (выхода второй версии) не отключается.

Сейчас дошло до того, что даже новейший GNOME 3.8 не останавливает шпиндель и не гасит питание флешки. Хоть разделы отмонтирует и то спасибо.
И я в курсе, что механика должна вернуть головки жесткого диска в зону парковки.

С извлечением всего кардридера (пусть китайского Orient) я и сам сталкивался.
А самое смешное, что эту проблему гномеры усугубили - у меня есть флешка Kingston Data Traveller G2 16 Gb, она отображается в Nautilus 3.8 почему-то как кардридер, для неё в новом GNOME есть опция Safely remove, НО она оставляет устройство в системе (например в palimsest / gnome-disks) после физического отключения от порта. В старом Nautilus 3.4.2 она отображалась обычном диском и после безопасного отключения исчезала из системы полностью.

Короче, я считаю, что это проблема разработчиков UDisks. Они придумали новую функциональность, но не достаточно протестировали её. А создатели дистрибутивов скомпилировали их исходники в пакеты и теперь эта проблема есть во всех новейших дистрибутивах, включая Fedora 19. Если тоже видите эту проблему - пишите багрепорты, ссылки выше.


" Безопасное извлечение (Safely remove) USB-носителей"
Отправлено owner , 18-Апр-15 11:41 
>[оверквотинг удален]
> 3.8 почему-то как кардридер, для неё в новом GNOME есть опция
> Safely remove, НО она оставляет устройство в системе (например в palimsest
> / gnome-disks) после физического отключения от порта. В старом Nautilus 3.4.2
> она отображалась обычном диском и после безопасного отключения исчезала из системы
> полностью.
> Короче, я считаю, что это проблема разработчиков UDisks. Они придумали новую функциональность,
> но не достаточно протестировали её. А создатели дистрибутивов скомпилировали их исходники
> в пакеты и теперь эта проблема есть во всех новейших дистрибутивах,
> включая Fedora 19. Если тоже видите эту проблему - пишите багрепорты,
> ссылки выше.

Решил проблему заменив eject в /usr/bin на скрипт:

#!/bin/bash
POS1="$1"
udisks --unmount ${1}1
udisks --unmount ${1}2
udisks --unmount ${1}3
udisks --detach $1
notify-send "USB Ejector" "Девайс успешно извлечен" -i gtk-info


" Безопасное извлечение (Safely remove) USB-носителей"
Отправлено name , 20-Апр-15 00:34 

> Решил проблему заменив eject в /usr/bin на скрипт:
> #!/bin/bash
> POS1="$1"
> udisks --unmount ${1}1
> udisks --unmount ${1}2
> udisks --unmount ${1}3
> udisks --detach $1
> notify-send "USB Ejector" "Девайс успешно извлечен" -i gtk-info

А cd/DVD трей как теперь выезжает?