
Я всегда думал, что для безопасного извлечения смонтированного устройства нужно использовать команду umount
, и до недавнего времени, когда я перешел на Ubuntu 12.04 LTS, я заметил, что есть возможность безопасного извлечения устройства, что поразило мое любопытство.
Я перерыл несколько постов и обнаружил, что, umount
по-видимому, это не означает, что я могу безопасно удалить устройство, потому что это не отключает устройство. Я знаю, что есть возможность eject
. Теперь это мое понимание после прочесанных просторов Интернета. Ссылки включают:
- Дилемма «Отключить», «Извлечь» и «Безопасное извлечение диска»
«извлечь» / «размонтировать» / «безопасно извлечь диск» — что лучше?
- umount отключает только один раздел на устройстве
- безопасное удаление отключает все разделы на устройстве и выключает устройство
- извлечение используется для таких носителей, как CD, DVD и т. д.
Затем я наткнулся настатьяно обнаружил, что процесс запутан, и, кажется, наконец-то наткнулся на золотую жилу, когда наткнулся на команду udisks
egudisks --unmount /dev/sdb1 && udisks --detach /dev/sdb
Что меня смущает (помимо того, umount
действительно ли безопасно извлекать устройство без потери данных и нужно ли мне использовать команду sync
перед этим, а также того, что устройство выключено, чего, по-видимому, и добивается команда безопасного извлечения), так это почему я должен использовать /dev/sdb
после этого --detach
вместо/dev/sdb1
решение1
/dev/sdb
— это все устройство. /dev/sdb1
— это один раздел на этом устройстве.
Хотя вы можете использовать диск без его разбиения на разделы, это довольно необычно (за пределами конфигураций RAID, но тогда вы создаете файловые системы на узлах устройств RAID, а не на узлах физических устройств).
На самом деле не имеет смысла пытаться отсоединить (физически удалить) один раздел – вы хотите удалить все устройство (которое может содержать несколько разделов), а не только один раздел этого устройства.
Размонтирование раздела синхронизирует файловую систему, поэтому вызов sync
до этого unmount
не нужен.
Вызов udisks --detach
на устройстве проверяет, что на этом устройстве нет смонтированных файловых систем (вы должны убедиться, что этот вызов действительно успешен), и выполнит «упорядоченное выключение», что всегда предпочтительнее подхода «выдергивания вилки», независимо от того, делает ли это конкретное устройство что-то особенное.