Desligando o disco rígido externo, a unidade flash etc. usando a linha de comando no Linux

8

Eu sempre pensei que remover com segurança um dispositivo que havia sido montado era usar o umountcomando e, até recentemente, quando mudei para o Ubuntu 12.04 LTS, notei que havia a capacidade de remover com segurança o dispositivo que impressionou minha curiosidade.

Pesquisei várias postagens e descobri que, umountaparentemente, não significa que posso remover o dispositivo com segurança porque não o desliga. Eu sei que existe a opção eject. Agora, este é o meu entendimento depois de vasculhar a Internet. As referências incluem:

Eu então me deparei com um artigo, mas achei o processo complicado e acho que finalmente cheguei ao pagamento quando me deparei com o comando, udiskspor exemploudisks --unmount /dev/sdb1 && udisks --detach /dev/sdb

O que me confunde é (além de saber se umountrealmente significa que é seguro remover o dispositivo sem perda de dados e se eu preciso usar o comando syncanterior a ele, bem como se o dispositivo foi desligado e que a remoção segura parece conseguir) é por que Eu tenho que usar /dev/sdbseguido por --detachem oposição a/dev/sdb1

AmendoimMacaco
fonte

Respostas:

6

/dev/sdbé o dispositivo inteiro. /dev/sdb1é uma partição nesse dispositivo.

Embora você possa usar um disco sem particioná-lo, isso é incomum (fora das configurações de RAID, mas você cria os sistemas de arquivos nos nós dos dispositivos raid, não nos nós dos dispositivos físicos).
Realmente não faz sentido tentar desanexar (remover fisicamente) uma única partição - você deseja remover o dispositivo inteiro (que pode conter várias partições), não apenas uma partição desse dispositivo.

Desmontar uma partição sincronizará o sistema de arquivos, portanto, a chamada syncanterior unmountnão é necessária.
A chamada udisks --detachno dispositivo verifica se você não possui sistemas de arquivos montados nesse dispositivo (você deve garantir que essa chamada seja bem-sucedida) e realizará um "desligamento ordenado", que é sempre preferível a uma abordagem "puxe o plug", independentemente se esse dispositivo em particular faz algo especial.

Esteira
fonte
Eu não tinha ideia de que apenas / dev / sdb representa todo o dispositivo que eu presumo que representa todas as partições. Isso está correto? Para que eu pudesse executar o comando como udisks --unmount /dev/sdb && udisks --detach /dev/sdbse quisesse desmontar todas as partições? Faz sentido desmontar uma partição apenas se existir várias partições.
PeanutsMonkey
Como você também garante que a chamada udisks --detachseja bem-sucedida?
PeanutsMonkey
Não, a desmontagem /dev/sdbnão funciona. Você precisa desmontar cada partição montada e analisar / analisar a saída dos comandos.
Mat
Desculpe, não siga o que você quer dizer com olhe ou analise a saída dos comandos? Não devo desmontar cada partição e executar o comando udisks --detach /dev/sdb?
PeanutsMonkey