Até agora eu não encontrei uma alternativa simples para "ejetar com segurança" no gerenciador de arquivos, então esta é a minha justificativa para usar a linha de comando aqui.
Primeiro, você precisa descobrir o ID do seu dispositivo de disco rígido externo ou o ID do bloco. Em seguida, você pode usar udisks
ou udisksctl
para desmontar e, na verdade, desligar o dispositivo. Eu respondi a questão relacionada há algum tempo, quando comecei com o Ubuntu, então eu sugiro que você também se refira a ele. Basicamente, eu uso udisks --unmount /dev/sdb1 && udisks --detach /dev/sdb
onde sdb1 é o ponto de montagem e sdb é o disco real.
Você pode usar lsblk
e identificá-lo por ponto de montagem e tamanho; Por outro lado, você pode usar udisksctl status
. Por exemplo, eu tenho um drive usb Sandisk Cruiser conectado agora. A saída dos comandos é a seguinte:
Como você pode ver, ambos relatam que minha unidade usb está identificada como / dev / sdc. Cada vez que você pugin 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/sdc
ou alternativamente com o que Fabby sugeriu. Com o one-liner que eu uso, notei que o ID do dispositivo é preservado, ou seja, se eu ejetar o usd e reconectá-lo, ele ainda dá o dispositivo sdc
name.
DICA: você pode usar udisksctl status | grep -i wd
para mostrar apenas informações para o disco rígido externo.
Agora, aqui está algo que fiz puramente por diversão, mas você pode achá-lo útil e adaptar-se às suas próprias necessidades. E se pudéssemos escrever um script para fazer o ejetor seguro para nós?
Precisamos deixar o shell saber o id do bloco do disco rígido externo ou do 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 em outras palavras, informações sobre o usb, delimitadas por espaços, com o id do dispositivo sendo o último argumento ou o sexto. Aqui podemos usar o comando cut para extraí-lo da seguinte forma: udisksctl status | grep -i sandisk | xargs echo | cut -d' ' -f6
É claro que para você, você teria que usar udisksctl status | grep -i wd | xargs echo
e contar qual elemento é o seu id de bloco e, em seguida, usar o número apropriado em cut -d' ' -fx
Em seguida, eu juntei 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, coloque-o na minha pasta / home / user / bin, chmod + x /home/user/bin/remove-usb.sh. Não se esqueça de ter essa pasta bin a ser adicionada ao seu caminho . Agora você também pode criar um arquivo de área de trabalho ou torna o script executável no gerenciador de arquivos
E aqui está o roteiro em ação