Выключение внешнего жесткого диска, флэш-накопителя и т. Д. С помощью командной строки в Linux

8

Я всегда думал, что для безопасного удаления смонтированного устройства нужно было использовать umountкоманду, и до недавнего времени, когда я перешел на Ubuntu 12.04 LTS, я заметил, что была возможность безопасно удалить устройство, которое поразило мое любопытство.

Я покопался в нескольких постах и ​​обнаружил, что это, umountочевидно, не означает, что я могу безопасно удалить устройство, потому что оно не выключает устройство. Я знаю, что есть возможность eject. Теперь это мое понимание после чистки интернета. Рекомендации включают в себя:

Затем я наткнулся на статью, но обнаружил, что процесс запутан, и я, наконец, столкнулся с проблемой, когда наткнулся на команду, udisksнапримерudisks --unmount /dev/sdb1 && udisks --detach /dev/sdb

Меня смущает то, что (кроме того, umountозначает ли это, что на самом деле безопасно удалить устройство без потери данных, и нужно ли мне использовать команду syncдо этого, а также то, что устройство выключено, что безопасное удаление, кажется, достигается) Я должен использовать с /dev/sdbпоследующим, --detachв отличие от/dev/sdb1

PeanutsMonkey
источник

Ответы:

6

/dev/sdbэто целое устройство. /dev/sdb1один раздел на этом устройстве.

Хотя вы можете использовать диск без его разбиения, это довольно необычно (за пределами настроек RAID, но затем вы создаете файловые системы на узлах raid-устройств, а не на узлах физических устройств).
На самом деле не имеет смысла пытаться отсоединить (физически удалить) один раздел - вы хотите удалить все устройство (которое может содержать несколько разделов), а не только один раздел этого устройства.

Размонтирование раздела синхронизирует файловую систему, поэтому вызов syncдо этого unmountне требуется.
Вызов udisks --detachустройства проверяет, что у вас нет файловых систем, смонтированных на этом устройстве (вы должны убедиться, что этот вызов действительно выполнен), и выполнит «упорядоченное отключение», которое всегда предпочтительнее, чем «отключить питание», независимо от того, о том, что конкретное устройство делает что-то особенное.

Мат
источник
Я понятия не имел, что просто / dev / sdb представляет все устройство, которое, как я предполагаю, представляет все разделы. Это верно? Чтобы я мог просто запустить команду, как udisks --unmount /dev/sdb && udisks --detach /dev/sdbбудто я хочу размонтировать все разделы? Имеет смысл просто размонтировать один раздел, если существует несколько разделов.
PeanutsMonkey
Как вы также можете убедиться, что вызов udisks --detachпрошел успешно?
PeanutsMonkey
Нет, размонтирование /dev/sdbне будет работать. Вам необходимо размонтировать каждый смонтированный раздел и посмотреть / проанализировать вывод команд.
Мат
Извините, не совсем понимаете, что вы имеете в виду, просматривая или анализируя вывод команд? Разве я не должен размонтировать каждый раздел и затем запустить команду udisks --detach /dev/sdb?
PeanutsMonkey