Disco duro USB externo, WD Elements, no se apaga solo

Disco duro USB externo, WD Elements, no se apaga solo

Tengo un disco duro externo Seagate Free Agent durante los últimos 4 o 5 años. Después de conectarlo y terminar con las transferencias de archivos, haré clic en el menú "Eliminar con seguridad". Luego se apagará con gracia, dejando de girar el disco en su interior. Puedo sentirlo si me tocan. Además, la luz de encendido también estará apagada.

Recientemente compré un nuevo disco duro externo, WD Elements. Si emito "Quitar con seguridad" para este disco duro, simplemente se desmonta, pero no se apaga solo, y los discos continúan girando, puedo sentir cuando los toco. También probé el botón "Apagar la unidad" en la aplicación "Discos" que viene con Ubuntu. Luego, además, simplemente se desmonta.

Me gustaría ver que el disco duro WD Elements se apague correctamente antes de desconectarlo manualmente. Supongo que desconectar el dispositivo a la fuerza antes de que se detenga puede acortar su vida útil.

¿Existe algún otro comando o programa que me ayude a hacerlo?

Respuesta1

Necesita un paquete adicional que contenga una utilidad para apagar el WD, ya que WD no es compatible con Linux de fábrica:

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

donde Xy Yson las letras correspondientes a tu disco.

Respuesta2

Hasta ahora no he encontrado una alternativa sencilla para "expulsar de forma segura" en el administrador de archivos, así que esta es mi justificación para usar la línea de comando aquí.

Primero, deberá averiguar la identificación del dispositivo de su disco duro externo o la identificación del bloque. Luego puede usar udiskso udisksctlpara desmontar y apagar el dispositivo. He respondidopregunta relacionadaHace algún tiempo, cuando recién comencé con Ubuntu, le sugiero que lo consulte también. Básicamente, uso udisks --unmount /dev/sdb1 && udisks --detach /dev/sdbdonde sdb1 es el punto de montaje y sdb es el disco real.

Puede usarlo lsblke identificarlo por punto de montaje y tamaño; por otro lado, puedes usar udisksctl status. Por ejemplo, tengo una unidad USB Sandisk Cruiser conectada en este momento. La salida de los comandos es la siguiente: ingrese la descripción de la imagen aquí

Como puede ver, ambos informan que mi unidad USB está identificada como /dev/sdc. Cada vez que inicie un dispositivo USB, se identificará con letras diferentes, sdb, sdc, sdf, etc., mientras que sda ​​siempre será su disco duro.

Entonces, en mi caso, expulsaría el USB con udisks --unmount /dev/sdc1 && udisks --detach /dev/sdco alternativamente con lo que sugirió Fabby. Con el resumen que uso, noté que la identificación del dispositivo se conserva, es decir, si expulso el usd y lo vuelvo a conectar, todavía aparece el sdcnombre del dispositivo.

SUGERENCIA: puede utilizar udisksctl status | grep -i wdpara mostrar solo información del disco duro externo.

Ahora, aquí hay algo que he hecho exclusivamente por diversión, pero podría resultarle útil y adaptarlo a sus propias necesidades. ¿Qué pasaría si pudiéramos escribir un script para expulsar la caja fuerte por nosotros?

Necesitaríamos informarle al shell la identificación del bloque de nuestro disco duro externo o USB. ¿Cuál sería el resultado de este comando udisksctl status | grep -i sandisk | xargs echo:? Sería este: SanDisk Cruzer Glide 1.27 2005425573077FA0AA67 sdd, o en otras palabras información sobre el usb, delimitada por espacios, siendo el id del dispositivo el último argumento, o el sexto. Aquí podemos usar el comando cortar para extraerlo así:udisksctl status | grep -i sandisk | xargs echo | cut -d' ' -f6

Por supuesto, para usted, tendría que usar udisksctl status | grep -i wd | xargs echoy contar qué elemento es su ID de bloque, y luego usar el número apropiado encut -d' ' -fx

A continuación, preparé el script remove-usb.sh. Aquí lo tienes:

#!/bin/sh

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


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

Luego, lo coloqué en mi carpeta /home/user/bin, chmod +x /home/user/bin/remove-usb.sh. No olvides tener esa carpeta bin a la que agregartu camino. Ahora también puedes crear un .archivo de escritorioohacer que el script sea ejecutable en el administrador de archivos

Y aquí está el guión en acción. ingrese la descripción de la imagen aquí

Respuesta3

Seguir el script de Shell hace el trabajo por mí.

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

En realidad, es una combinación de ideas de publicaciones de @Serg y @Fabby.

información relacionada