Disco rígido USB externo, WD Elements, não desliga sozinho

Disco rígido USB externo, WD Elements, não desliga sozinho

Eu possuo um disco rígido externo Seagate Free Agent nos últimos 4-5 anos. Depois de conectado e concluído a transferência de arquivos, clicarei no menu 'Remover com segurança'. Em seguida, ele se desligará normalmente, parando de girar o disco interno. Eu posso sentir isso se for tocado. Além disso, a luz de energia também estará apagada.

Recentemente comprei um novo disco rígido externo, WD Elements. Se eu emitir 'Remover com segurança' para este disco rígido, ele simplesmente será desmontado, mas não será desligado, e os discos continuarão girando, posso sentir quando tocados. Eu também tentei o botão 'Desligar a unidade' no aplicativo 'Discos' que vem com o Ubuntu. Além disso, ele simplesmente será desmontado.

Gostaria de ver o disco rígido WD Elements se desligar normalmente antes de desconectá-lo manualmente. Presumo que desconectar o dispositivo à força antes que ele pare pode reduzir sua vida útil.

Existe algum outro comando ou programa que me ajude a fazer isso?

Responder1

Você precisa de um pacote adicional que contenha um utilitário para desligar o WD, pois o WD não oferece suporte ao Linux pronto para uso:

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

onde Xe Ysão as letras correspondentes ao seu disco.

Responder2

Até agora não encontrei uma alternativa simples para "ejetar com segurança" no gerenciador de arquivos, então esta é minha justificativa para usar a linha de comando aqui.

Primeiro, você precisa descobrir o ID do dispositivo do seu disco rígido externo ou o ID do bloco. Em seguida, você pode usar udisksou udisksctlpara desmontar e desligar o dispositivo. Eu respondipergunta relacionadahá algum tempo, quando comecei com o Ubuntu, então sugiro que você o consulte também. Basicamente, eu uso udisks --unmount /dev/sdb1 && udisks --detach /dev/sdbonde sdb1 é o ponto de montagem e sdb é o disco real.

Você pode usá- lsblklo e identificá-lo por ponto de montagem e tamanho; por outro lado, você pode usar udisksctl status. Por exemplo, tenho uma unidade USB Sandisk Cruiser conectada agora. A saída dos comandos é a seguinte: insira a descrição da imagem aqui

Como você pode ver, ambos relatam que minha unidade USB está identificada como/dev/sdc. Cada vez que você acessa um dispositivo USB, ele será identificado com letras diferentes, sdb, sdc, sdf e assim por diante, enquanto sda é sempre o seu disco rígido.

Então, no meu caso, eu ejetaria o usb com udisks --unmount /dev/sdc1 && udisks --detach /dev/sdcou alternativamente com o que Fabby sugeriu. Com o one-liner que uso, notei que o id do dispositivo é preservado, ou seja, se eu ejetar o usd e reconectá-lo, ele ainda fornecerá o sdcnome do dispositivo.

DICA: você pode usar udisksctl status | grep -i wdpara mostrar apenas informações do disco rígido externo.

Agora, aqui está algo que fiz apenas por diversão, mas você pode achar útil e adaptar às suas próprias necessidades. E se pudéssemos escrever um script para fazer a ejeção segura para nós?

Precisaríamos informar ao shell o ID do bloco do disco rígido externo ou USB. Qual seria a saída deste comando udisksctl status | grep -i sandisk | xargs echo:? Seria este: SanDisk Cruzer Glide 1.27 2005425573077FA0AA67 sdd, ou seja, informações sobre o usb , delimitadas por espaços, sendo o id do dispositivo o último argumento, ou o 6º. Aqui podemos usar o comando cut para extraí-lo assim:udisksctl status | grep -i sandisk | xargs echo | cut -d' ' -f6

É claro que para você, você teria que usar udisksctl status | grep -i wd | xargs echoe contar qual elemento é o seu ID de bloco e, em seguida, usar o número apropriado emcut -d' ' -fx

A seguir, montei o script remove-usb.sh. Aqui está:

#!/bin/sh

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


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

Em seguida, coloquei-o na minha pasta /home/user/bin, chmod +x /home/user/bin/remove-usb.sh. Não se esqueça de ter aquela pasta bin para ser adicionadaseu caminho. Agora você também pode criar um arquivo .arquivo da área de trabalhooutornar o script executável no gerenciador de arquivos

E aqui está o roteiro em ação insira a descrição da imagem aqui

Responder3

Seguir o script Shell faz o trabalho para mim.

#!/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

Na verdade, é uma combinação de ideias de postagens de @Serg e @Fabby.

informação relacionada