Linux (Ubuntu): безопасно извлекайте флешку через командную строку

45

Было бы здорово, если ваша оболочка script поможет вам безопасно удалить флеш-диск после завершения работы. Я сделал много домашних заданий, прежде чем отправлять вопрос с просьбой о решении, которое, как ожидается, удовлетворит следующие потребности:

  • Предположим, что флеш-диск установлен как /media/A вместе со многими другими флэш-дисками, и код может выборочно удалять /media/A, не мешая другим дискам. Например, я могу передать /media/A в качестве аргумента.
  • Световой раствор. Установка другого пакета размером 100 МБ для завершения задачи приводит к безумию.
  • Я знаю несколько команд вроде hdparm, за исключением того, что их документы трудно читать. Если можно предложить мне решение, я надеюсь, что он может предложить также объяснение параметров и т.д.
  • Лучше всего, если код может обрабатывать все типы флеш-дисков (например, мой старый, купленный в 2003 году с 32 Мб) (и портативные диски необязательно).
  • Он должен добиться точного эффекта, щелкнув правой кнопкой мыши на диске → щелкнув "безопасно удалить диск". Угроза безопасности будет преобладать, иначе можно просто отключить диск, который обычно не повредит.
  • 5
    Что-то не так с umount ? Как в, umount /media/A Команда может быть немного скрыта (возможно, /sbin вместо /bin ), но это фундаментальная команда, которая может быть в одной из этих двух (или, возможно, /usr/sbin ).
  • 2
    После размонтирования флэш-диск все еще не готов к удалению. Эта ссылка - лучшее объяснение, которое я когда-либо видел: askubuntu.com/questions/5845/… Мне кажется, что это из-за блока питания USB. Таким образом, диск исчезает из nautilus, но его удаление просто не "безопасно".
Показать ещё 3 комментария
Теги:
usb

1 ответ

45
Лучший ответ

Вы можете сделать это с помощью udisks. он не установлен по умолчанию, но достаточно прост для установки (пакет устанавливается как размер мега-размера после установки)...

sudo apt-get install udisks

После установки вы можете отсоединить USB-накопитель со следующими командами...

sudo udisks --unmount /dev/sdb1
sudo udisks --detach /dev/sdb

Первая строка отключает его. Как и любой другой раздел, вы все еще можете его перемонтировать на этом этапе. Вторая линия отделяет его. После этого он отключается, и вам нужно удалить/повторно вставить его для повторного подключения.

Для уточнения sdb является устройство, а sdb1/2/3/etc - это разделы на устройстве. Кроме того, перед попыткой отсоединить устройство необходимо отключить все точки монтирования. Обычно с USB-накопителем/накопителем есть только один, но это предупреждение, о котором вы должны знать, тем не менее.

Получение имени устройства из точки монтирования потребует, чтобы вы вытащили его из mount или что-то в этом роде.

  • 1
    Я нашел это все еще работает без sudo . Другой вопрос, если не считать, что я предполагаю, что второе местоположение /dev/sdb всегда можно получить, отбросив последнее число из первого местоположения: /dev/sdb1 ?
  • 0
    Да, sdb - это устройство, а sdb1 - это раздел устройства. Следует помнить, что если на одном устройстве установлено несколько разделов, второй шаг, вероятно, завершится неудачей.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню