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


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.