The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Безопасное извлечение (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, 12:42 , 15-Мрт-13 (1)
    # umount /dev/sdbX;

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

  • Безопасное извлечение (Safely remove) USB-носителей, !*! Aquarius, 15:17 , 16-Мрт-13 (6) –1
    >[оверквотинг удален]
    > Если Вы тоже считаете, что было бы хорошо вернуть в современные версии
    > дистрибутивов безопасное извлечение, каким оно было в 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, 08:49 , 17-Мрт-13 (7)
    Автор всё еще паркует головки?
    И кто ему сказал, что "для этих систем единственный универсальный способ безопасного извлечения" — только udisks?
    eject /dev/sdX
    И способ уже не единственный.

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

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

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

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

      • Безопасное извлечение (Safely remove) USB-носителей, !*! pavlinux, 05:22 , 18-Мрт-13 (9) +1
        >> Автор всё еще паркует головки?
        >> И кто ему сказал, что "для этих систем единственный универсальный способ безопасного
        >> извлечения" — только 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-носителей, !*! Аноним, 19:54 , 24-Мрт-13 (11)
          > НЕ НУЖНО ему команд.

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

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

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

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

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

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

    • Безопасное извлечение (Safely remove) USB-носителей, !*! nrbrtx, 22:09 , 24-Мрт-13 (15)
      > Возьмите 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, 11:41 , 18-Апр-15 (16)
        >[оверквотинг удален]
        > 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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру