Извлечь / безопасно удалить против Umount

44

Я использую Ubuntu 12.04, и когда я щелкаю правой кнопкой мыши по значку моей флешки (в левой панели Unity), я получаю две опции, которые меня смущают: извлечь и безопасно удалить .
Чем ближе я подошел к ответу, тем была эта ветка форума , которая заключает, что (для флешки) они оба равны и также эквивалентны использованию umountкоманды. Однако это последнее утверждение представляется ложным.
Если я использую umountконсоль для размонтирования своего флэш-погружения, а затем использую команду lsblk, я все еще вижу свое устройство (конечно, в MOUNTPOINT ничего нет). С другой стороны, если я извлечь или безопасно удалить мой флэш - диск, lsblkне перечислить его больше.

Итак, мой вопрос: какие команды / команды консоли действительно воспроизводят поведение eject и безопасно удаляют ?

LGenzelis
источник
3
Возможно, вы сможете найти файл .desktop для значка под /usr/share/applications/или что-то в этом роде. Если вы откроете его в текстовом редакторе, поле Exec = ... соответствует команде, которая запускается при нажатии на нее.
spelufo

Ответы:

65

Если вы используете, systemdиспользуйте udisksctlутилиту с power-offопцией:

выключить

Обеспечивает безопасное извлечение и отключение привода. Со стороны ОС это включает в себя обеспечение того, что ни один процесс не использует диск, а затем запрос, чтобы буферы и кэши в полете фиксировались для стабильного хранения.

Я бы рекомендовал сначала размонтировать все файловые системы на этом USB. Это можно сделать также с помощью следующих udisksctlшагов:

udisksctl unmount -b /dev/sda1
udisksctl power-off -b /dev/sda

Если вы не используете, systemdто старый добрый udisksдолжен работать:

udisks --unmount /dev/sda1
udisks --detach /dev/sda
jimmij
источник
О, чувак, я только сейчас понял, что вопрос заключается в том, как сделать это из командной строки, а не в том, в чем разница между одним и другим. я не удаляю свой ответ, потому что я думаю, что он предлагает некоторую перспективу - но ваш - правильный ответ для систем Linux, я думаю (даже не знаю, является ли это вопросом, относящимся к BSD в любом случае ...) .
mikeserv
4
udisksctl power-offПохоже, что не эквивалентно «безопасно удалить» в моем случае. Когда во внутреннем устройстве чтения карт памяти есть устройство micro-SD, устройство /dev/sddотсутствует, а файловые системы отсутствуют, когда я использую эту команду udisksctl power-off -b /dev/sdd, светодиод считывателя выключается, но тогда все устройство становится неработоспособным, я полагаю, потому что оно буквально полностью отключается. Я должен перезагрузить систему, чтобы она снова стала работоспособной.
извед
1
Для @ack: вы можете отключить / включить (возможно, внутренний) концентратор, к которому подключен ридер. Поскольку это концентратор, он также отбрасывает, а затем повторно перечисляет все, включая отсутствующее устройство. Надеюсь, что вы можете прочитать этот пример: udisksctl power-off -b /dev/mmcblk0mmc0: карта aaaa удалена USB 3-1.8: USB-разъединитель, номер устройства 41 cd /sys/bus/usb/devices/usb3/3-1 echo 0 > authorized echo 1 > authorizedконцентратор 3-1: 1.0: USB-концентратор найден USB 3-1: авторизован для подключения USB 3-1.8: найдено новое USB-устройство , idVendor = 0bda, idProduct = 0129 mmc0: новая сверхскоростная SDHC-карта SDR50 по адресу aaaa
AB
14

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

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

lsblk -f /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0
NAME   FSTYPE LABEL   UUID                                 MOUNTPOINT
sdd                                                        
├─sdd1 vfat   USBESP  3AD6-C7CC                            
└─sdd2 ext4   USBROOT 5afbfe93-6955-44ec-8c4f-cf381f8ef174 

Вот его путь USB-автобус ...

cat /sys/bus/usb/devices/5-3/manufacturer 
SanDisk

Хотя я почти никогда не монтирую его, он подключен и долго мигает, я думаю ...

cat /sys/bus/usb/devices/5-3/power/{level,connected_duration}
on
1777877440

Я должен сделать что-то с этим:

echo 1 | sudo tee /sys/bus/usb/devices/5-3/remove                                      

Теперь я посмотрю на это снова ...

cat /sys/bus/usb/devices/5-3/power/level                            
cat: /sys/bus/usb/devices/5-3/power/level: No such file or directory

Хммм ...

lsblk -f /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0
lsblk: /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0: not a block device
mikeserv
источник
1
Спасибо. После umountвнешнего жесткого диска, безопасно ли удалить внешний жесткий диск с компьютера?
Тим
1
Я не думаю, что umountэто эквивалентно «безопасно удалить», и нет udisksctl power-off, пожалуйста, смотрите мой комментарий на другой ответ. Сравните с поведением в Windows например. Я предполагаю, что Windows делает больше, чем просто «размонтирует» файловые системы на устройстве. Я наблюдал это спиннинг вниз внешние жесткие диски, выключая светодиоды на чтения карт памяти ( без впоследствии делает устройство непригодным для использования , если не клеммного блока или система перезагружается) и т.д.
извед
2
@ack - при чем тут Windows? и почему ты угадаешь? и вам не нужно перезагружаться, чтобы он снова стал пригодным для использования. Вы umountэто. затем вы выключаете его. и я никогда не предлагал ничего относительно udiskctlтого или иного.
mikeserv
1
@mikeserv «Безопасное удаление оборудования» - это выражение, используемое в Windows. Вполне вероятно, что другие системы скопировали эту фразу из-за знакомства с пользователем. Важно отличить его от простой размонтирования файловой системы. Примером того, где это имеет большое значение, является ситуация, когда ОС не уверена в кэшировании записи устройства хранения. Я лично испытал довольно значительную потерю данных (поврежденный суперблок и файлы) после простого отключения и отключения внешнего жесткого диска. Позже я узнал, что Linux предупреждал об этом: «Страница режима кэширования не найдена», «Предполагается, что кэш диска: запись через».
извед
1
@ack - нет, это не важно. ваша проблема, вероятно, ваш acpi. он не имеет ничего общего с операционной системой - просто ваш производитель плат писал драйверы только для одной операционной системы. эти маленькие мультикарты требуют достаточно низкого уровня доступа к цели карты - они должны уметь делать что-то вроде eye-fi. они не блочные устройства - это символьные устройства. они совсем не похожи на USB-диски. Правление должно обрабатывать их отдельно, и если ваш поставщик плохо их поддерживает (это не редкость - попробуйте загрузиться с одного), вам не повезло. но это не проблема Linux.
mikeserv