Access Devices from Terminal

0

Eu tenho uma unidade flash que não quero montada. Em vez disso, eu só quero usá-lo para transferir arquivos entre meus computadores.

Existe uma maneira de acessar minha unidade flash a partir do terminal através do diretório Devices? Ou é a única maneira de acessar uma unidade flash a partir do terminal para montá-lo primeiro e, em seguida, acessar o ponto de montagem?

    
por Kaz Wolfe 31.12.2016 / 22:42

1 resposta

2

Você não pode acessar nenhuma forma de mídia de armazenamento sem montar a unidade primeiro. No entanto, você pode fazer todo este processo a partir do seu terminal.

Primeiro, você precisa do ID da partição ( /dev/sdXY ). Você pode usar o comando lsblk para encontrar isso. Depois de ter esse ID, você pode executar sudo mount /dev/sdXY /mnt . O sistema de arquivos do seu pendrive agora estará disponível em /mnt e pode ser usado a partir do terminal.

Os dispositivos em /dev são conhecidos como dispositivos de bloco e são representações brutas dos sistemas de arquivos contidos nesses dispositivos (quando aplicável). Embora você possa ler e gravar diretamente desses dispositivos, muitas vezes é uma má ideia, porque você está ignorando uma grande camada de abstração e proteção do sistema de arquivos.

Para a maioria dos casos de uso, a única vez que você estaria lendo / gravando nos dispositivos de bloco brutos seria para operações de clonagem ou muito de baixo nível. O sistema de arquivos fornece uma enorme camada de abstração, verificação de erros e segurança de arquivos.

% bl0ck_qu0te%

Com esse aviso sendo dito, e se você não se importa com o conteúdo da sua unidade flash, é teoricamente possível ler e gravar dados de / para a unidade flash usando operações de blocos brutos.

Na sua forma mais simples, você escreveria um arquivo (digamos files.zip ) na unidade flash usando este comando:

dd if=files.zip of=/dev/sdd bs=1024

Isso copiará o zipfile para o bloco raw da sua unidade flash, mas também (provavelmente) corromperá qualquer partição ou dados relacionados atualmente na unidade. Ele também fará um registro de quantos "blocos" foram gravados na unidade - anote isso. Para este exemplo, vou dizer que 1234 blocos foram copiados.

Quando você quiser ler o arquivo da unidade flash em outro computador, você pode fazer isso com o comando inverso:

dd if=/dev/sdd of=files.zip count=1234 bs=1024

Isso irá puxar os dados brutos do bloco da unidade (contendo um arquivo ZIP) para os primeiros 1234 blocos e gravá-los em files.zip em seu computador no diretório atual. Observe também que este arquivo ZIP pode não ser legível devido a dados corrompidos / lixo no final do arquivo ou similar. Certifique-se de anotar isso, se necessário. Você pode usar o comando head para aparar o arquivo ZIP de volta, se necessário.

Quando você terminar, provavelmente precisará formatar o pen-drive e reparticioná-lo, o que torna isso muito inviável para grandes operações. Apenas use o sistema de arquivos.

    
por Kaz Wolfe 31.12.2016 / 22:48