Sobrescreveu / dev / sda com o comando mv

1

Eu cometi um erro ao escrever meu comando muito rápido e "sobrescrevi" (?) /dev/sda em vez de mover um arquivo no diretório /dev . Como posso recuperá-lo?

Além disso, o que exatamente é /dev/sda ? É o diretório onde o disco rígido / SSD está montado?

    
por Anosen 14.08.2017 / 01:40

1 resposta

1

Quando eu faço (com arquivos regulares):

echo 1 > source
echo 2 > target
cp -l target target2
mv source target
cat target2

então eu recebo 2 . Isso significa que nada é escrito para o target , é apenas desvinculado antes que source seja renomeado, eu acho. Com ls -i -1 , posso verificar que source mantém seu número de inode, mesmo que target existisse antes.

Outro teste é

mv /dev/urandom /dev/sr0

Não envia dados para minha unidade óptica. Em vez disso, depois disso, /dev/sr0 se comporta como /dev/urandom .

A conclusão é: seu /dev/sda foi substituído por alguma outra "entrada" (que também perdeu seu nome original). A reinicialização corrigirá isso, a menos que seu sistema seja antigo (ou incomum) e mantenha esses arquivos de dispositivo como estáticos.

Also what exactly is /dev/sda?

É um arquivo especial que (geralmente) corresponde ao seu HDD ou outro armazenamento. O Unix identifica esses recursos por um número maior e um número menor. Geralmente, o número principal identifica o driver do dispositivo e o número menor identifica um dispositivo específico (possivelmente de muitos) que o driver controla. Para ver esses números, tente ls -l /dev/sda . Minha saída é:

brw-rw---- 1 root disk 8, 0 Jul   8 00:48 /dev/sda

Este 8, 0 fragmento é uma <major>, <minor> tupla aqui.

Eu escrevi que /dev/sda geralmente corresponde ao seu HDD porque no seu caso (depois de mv ) você agora tem outra coisa sob este nome.

Is it the directory where the hard drive/SSD is mounted?

Não. Quando você monta o comando é como

mount /dev/sda /a/directory/to/mount/to/

então essas são duas coisas diferentes.

(Observe que geralmente é /dev/sda1 ou algo assim que é passado para um comando mount , não /dev/sda . Isso porque sda1 corresponde a uma partição enquanto sda corresponde a o todo o HDD .Os sistemas de arquivos geralmente vivem dentro de partições, mas é possível ter um em um dispositivo onde não há partições, então o comando acima pode acontecer.Compare: Usas de configuração de disco de partição única ).

    
por 14.08.2017 / 05:54