Привет, 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).
# umount /dev/sdbX;Как отработает можно вынимать.
> # umount /dev/sdbX;
> Как отработает можно вынимать.Спасибо, консоли я не боюсь. Про это знаю.
> # 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
>> # 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 (как написано выше) гасится светодиод флешки и останавливается шпиндель внешнего диска. Такое поведение мне, так сказать, нравится, кажется логичным и понятным. Так, как сделано сейчас в новых дистрибутивах мне не нравится.Лично я найду способ безопасно извлечь флешку или жесткий диск (чтоб он не крутился при этом). За новыми версиями дистрибутивов я не гонюсь. А что будет с начинающими пользователями? Поэтому я и предлагаю репортить в апстрим и на багтрекеры дистрибутивов.
> Лично я найду способ безопасно извлечь флешку или жесткий дискВсё питание USB устройствами делается USB хабом, поэтому,
устройству ваааще фиолетово: если ты его программно выключишь или выдернешь руками.
> устройству ваааще фиолетово: если ты его программно выключишь или выдернешь руками.Только если его заранее оповестили о таком раскладе. Иначе девайс может потерять некие данные.
>[оверквотинг удален]
> Если Вы тоже считаете, что было бы хорошо вернуть в современные версии
> дистрибутивов безопасное извлечение, каким оно было в 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).Кто здесь?
Автор всё еще паркует головки?
И кто ему сказал, что "для этих систем единственный универсальный способ безопасного извлечения" — только udisks?
eject /dev/sdX
И способ уже не единственный.Только вот не всегда это нужно.
> Автор всё еще паркует головки?
> И кто ему сказал, что "для этих систем единственный универсальный способ безопасного
> извлечения" — только udisks?
> eject /dev/sdX
> И способ уже не единственный.
> Только вот не всегда это нужно.Да, только udisks --detach, так как eject не выключает питание на usb-порте в случае usb-flash и не останавливает шпиндель в случае hdd. Отдельно для последнего есть hdparm -y или -Y.
По поводу Вашего IMHO - оно меня не интересует - см. http://www.opennet.me/openforum/vsluhforumID15/4005.html#4
Раньше было хорошо, а сейчас все сломано.
>> Автор всё еще паркует головки?
>> И кто ему сказал, что "для этих систем единственный универсальный способ безопасного
>> извлечения" — только 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
> НЕ НУЖНО ему команд.А в интеловских SSD прямо такой счетчик ведется: unsafe shutdown count называется. Показывает сколько было внеплановых слетов питания без присылки системой последней командой по интерфейсу команды на шатдаун. Показывает число потенциальных потерь данных когда накопитель мог пахать делая в фоне GC а ему питание сняли. Так что не все так просто как кажется. Ты как-то совершенно не учитываешь что у фирмвары может быть какая-то своя линия поведения.
Да, допустим. Как он отличает внеплановый "слёт" питания от планового? Да никак, я подозреваю. Потому и счётчик этот для других целей, я подозреваю. Во всяком случае из твоего текста можно сделать именно такой вывод.Я - "Солженицина не читал", (с) Жизнь Совейская. Так что поправьте пруф линком, если что.
Возьмите SpaceFM для исследований. Там две отдельных команды, имеющих отношение к отмонтированию....О горячем отключении питания и специальном устройстве разъёма есть статьи. Обратите внимание, на SATA, на USB разъёмах контактные дорожки разной длины....
Картридеры бывают глючные. Даже в брендовых ноутбуках. Ты им даёшь все команды, а они их не делают. А это как отсекать в исследованиях....
> Возьмите 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. Если тоже видите эту проблему - пишите багрепорты, ссылки выше.
>[оверквотинг удален]
> 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
> Решил проблему заменив 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 трей как теперь выезжает?