Внешний жесткий диск USB, WD Elements, не отключается самостоятельно

У меня есть внешний жесткий диск Seagate Free Agent последние 4-5 лет. После подключения и завершения передачи файлов я нажму меню «Безопасное удаление». Тогда он изящно отключится, остановив вращение диска внутри. Я чувствую это, если коснуться. Кроме того, индикатор питания также будет выключен.

Недавно я купил новый внешний жесткий диск WD Elements. Если я выдаю «Безопасное извлечение» для этого жесткого диска, он просто отключается, но не выключается сам, также диски продолжают вращаться, я чувствую при прикосновении. Я также попробовал кнопку «Отключить диск» в приложении «Диски», поставляемом с Ubuntu. Кроме того, он только размонтируется.

Я хотел бы, чтобы жесткий диск WD Elements изящно отключился, прежде чем вручную отключить его. Я предполагаю, что принудительное отключение устройства перед его остановкой может сократить срок его службы.

Есть ли какая-либо другая команда или программа, которая поможет мне это сделать?

2
задан 17 March 2015 в 09:06

3 ответа

Следующий сценарий оболочки делает задание для меня.

#!/bin/sh

DEVICE=$(udisksctl status | grep -i "WD Elements" | xargs echo | cut -d' ' -f6)

udisks --unmount /dev/$(echo $DEVICE)1
sudo udisksctl power-off --block-device /dev/$DEVICE

Это - на самом деле комбинация идей из сообщений и @Serg и @Fabby.

0
ответ дан 17 March 2015 в 19:06

Вам нужен дополнительный пакет, который содержит утилиту для фактического выключения WD, поскольку WD не поддерживает Linux из поля:

sudo apt-get install usdisks2
sudo udisksctl power-off --block-device /dev/XdY

, где X и Y буквы, соответствующие Вашему диску.

1
ответ дан 17 March 2015 в 09:06

До сих пор я не нашел, что простая альтернатива "безопасно извлекается" в файловом менеджере, таким образом, это - мое выравнивание для использования командной строки здесь.

Во-первых, необходимо было бы узнать идентификатор устройства внешних жестких дисков или идентификатор блока. Затем можно использовать также udisks или udisksctl размонтировать и на самом деле выключить устройство. Я ответил на связанный вопрос некоторое время назад, когда просто начато с человечностью, таким образом, я предлагаю, чтобы Вы обратились к нему также. В основном я использую udisks --unmount /dev/sdb1 && udisks --detach /dev/sdb где sdb1 является точкой монтирования, и sdb является фактической дисковой емкостью.

Можно использовать lsblk и определите его точкой монтирования и размером; с другой стороны, можно использовать udisksctl status. Например, у меня есть карта памяти Крейсера SanDisk, подключенная прямо сейчас. Вывод команд следующий: enter image description here

Поскольку Вы видите оба отчета, что моя карта памяти идентифицируется как/dev/sdc. Каждый раз Вы pugin USB-устройство это будет отождествлено с различными буквами, sdb, sdc, sdf и т.д, в то время как sda всегда является Вашим жестким диском.

Таким образом в моем случае, я извлек бы usb с udisks --unmount /dev/sdc1 && udisks --detach /dev/sdc или альтернативно с какой предложенный Fabby. С остротой я использую, я заметил, что идентификатор устройства сохраняется, т.е., если я извлекаю доллар США и повторно подключаю его, это все еще дает устройство sdc имя.

ПОДСКАЗКА: можно использовать udisksctl status | grep -i wd показать только информацию для внешнего жесткого диска.

Теперь, вот что-то, что я сделал просто для забавы, но Вы могли найти это полезным и адаптироваться к Вашим собственным потребностям. Что, если мы могли бы записать сценарий, чтобы сделать безопасное извлечение для нас?

Мы должны были бы позволить оболочке знать идентификатор блока внешнего HDD или usb. Что было бы выводом этой команды: udisksctl status | grep -i sandisk | xargs echo ? Это было бы это: SanDisk Cruzer Glide 1.27 2005425573077FA0AA67 sdd, или другими словами информация о usb, разграниченном пробелами, при этом идентификатор устройства является последним аргументом или 6-м. Здесь мы можем использовать команду сокращения для извлечения его как так: udisksctl status | grep -i sandisk | xargs echo | cut -d' ' -f6

Конечно, для Вас, необходимо было бы использовать udisksctl status | grep -i wd | xargs echo и количество, какой элемент является Вашим идентификатором блока, и затем используйте соответствующее число на cut -d' ' -fx

Затем, я соединил сценарий, удаляют-usb.sh.Вот:

#!/bin/sh

DEVICE=$( udisksctl status | grep -i sandisk | xargs echo | cut -d' ' -f6 )


udisks --unmount /dev/$(echo $DEVICE)1 && udisks --detach /dev/$DEVICE

Затем, помещенный это в мою/home/user/bin папку, chmod +x/home/user/bin/remove-usb.sh. Не забывайте иметь ту папку мусорного ведра, которая будет добавлена к Вашему пути. Теперь можно также создать .desktop файл или сделать исполняемый файл сценария в файловом менеджере

И вот сценарий в действии enter image description here

1
ответ дан 17 March 2015 в 09:06

Другие вопросы по тегам:

Похожие вопросы: