clonagem do cartão SD usando o comando dd - mais perguntas

2

Isso é um pouco de seguimento de outra pergunta de usuários encontrada aqui: clonagem do cartão SD usando o comando dd

Eu usei o comando dd para clonar ou fazer cópias de backup de cartões SD com sucesso limitado. Estes são para projetos de computador de placa única meus, onde é prudente fazer backup do cartão SD agora e então. Digo sucesso limitado porque às vezes consegui fazer uma restauração completa de um sistema (cartão) usando os conselhos encontrados on-line.

Note, entretanto, que em outros momentos isso não tem sido o caso, e eu estou querendo saber se isso tem algo a ver com a montagem (ou idealmente desmontar o cartão, pois há alguma confusão aqui (para mim de qualquer maneira).

Pergunta 1: Quando executo umount (como sugerido na página do fórum acima mencionada), ele informa que o dispositivo não está montado. Isso é porque apenas desmontou o dispositivo, ou porque o dispositivo que eu especifiquei para desmontar não existe para ser desmontado em primeiro lugar?

Para desmontar, eu uso o seguinte comando: sudo umount /dev/sdc

Pergunta 2: No utilitário GUI do Ubuntu 16.04 (Files), o memory stick USB ou cartão SD inserido em USB tem uma pequena seta voltada para cima à direita dele. Se você clicar nisto, efetivamente desconectará o dispositivo e fará com que seja seguro removê-lo. Isso é o mesmo que desmontar no CLI? Não parece ser o caso, como quando eu fiz isso, o comando dd dá um erro que não pode encontrar o meu dispositivo para criar uma imagem de. Se eu desligar o cartão SD (USB) e depois ligá-lo novamente, o cartão SD é mostrado mais uma vez com a pequena seta, e eu posso usar o DD sem problemas para criar a imagem (se a imagem é boa é outra pergunta , como eu ainda não sei se foi ou não desmontado antes da geração da imagem!)

Pergunta 3: Quando executo sudo fdisk -l , vejo meu cartão listado como sdb , mas se eu usar o utilitário de discos, vejo que o cartão SD consiste em pelo menos 3 partições (SDB repetido para 2 do partições, e SDB1 para a partição principal ou principal). Qual partição devo selecionar como parte da operação dd? Não vai se limitar a apenas fazer uma imagem dessa partição, ignorando o resto do cartão SD? Se assim for, não é realmente relevante chamá-lo de ferramenta de imagem de disco como tal ...

Finalmente, este é o comando dd que eu corro para criar uma imagem compactada do cartão SD (Quando eu entendi direito, ele funciona perfeitamente, e Etcher não tem problemas para ler a imagem compactada também)

sudo dd if=/dev/sdc | pv | gzip > FileNameHere.img.gz

Sua ajuda é apreciada por alguém que ainda está aprendendo as coisas com o Linux, mesmo depois de vários anos de uso e experiência até agora.

    
por witenitenz 28.01.2018 / 09:30

2 respostas

3

Ao usar o dd para copiar dispositivos de bloco, precisamos estar cientes do fato de que é uma ferramenta de baixo nível para dados de cópia bit por bit.

Esta ferramenta muito poderosa copia todos os bits da origem para qualquer destino.

  • A parte qualquer destino é decisiva, pois significa que, se você acidentalmente digitar no lugar errado, pode sobrescrever dados lá sem piedade.

  • A parte each and every bit também significa que copiará cada bit em qualquer local. Também copiará bits NULL e conteúdo de lixo. Isso é muito útil para criar uma imagem para recuperação, mas pode não ser o que você precisa para um backup simples.

Como dd também não permite backups incrementais e leva um tempo considerável, sugiro que você dê uma olhada nessas muitas soluções diferentes de backup , temos que encontrar uma que atenda melhor às suas necessidades do que dd .

Para responder ainda às suas perguntas:

  1. Sim, você pode desmontar partições (ou seja, não unidades!) do Nautilus e da linha de comando.
  2. Sim, as partições (por exemplo, /sdb1 ) precisam ser desmontadas para poder copiá-las com dd .
  3. Sim, você pode copiar todo o dispositivo de bloco (no seu caso /sdb ) incluindo todas as partições, tabelas de partição, arquivos excluídos, registros de inicialização, partições excluídas e o que mais pode conter com dd , mas você não pode pule áreas "não usadas".
por Takkat 28.01.2018 / 09:52
1

1. Desmontar

O comando

sudo umount /dev/sdc

desmontaria um sistema de arquivos criado diretamente 'em toda a unidade' como em disquetes antigos. Hoje geralmente criamos partições /dev/sdxn e criar sistemas de arquivos nas partições, em que x é a letra da unidade e n é o número da partição, portanto, um comando mais relevante seria

sudo umount /dev/sdc1

ou para todas as partições em sdc

sudo umount /dev/sdc?

2. O símbolo de ejeção

A 'seta' a que você está se referindo é o símbolo de ejeção, e não será desmonte apenas um pendrive USB ou cartão de memória, mas também desligue o para isso. Você precisa desconectar e reconectar o pendrive ou o cartão para recupere o poder, para que você possa montá-lo novamente (talvez seja automático).

Isso é diferente do que você faz com o comando umount . Eu acho que o udisks software é chamado desse símbolo de ejeção. Veja

man udisksctl

que descreve um utilitário de linha de comando para ele.

3. Qual partição vista pelos Discos ...

Clone uma unidade inteira para clonar todo o sistema operacional. Você deve usar o dispositivo de origem /dev/sdx , caso contrário, você só estará clonando uma partição e ela não conterá todo o sistema. Deve haver uma letra de unidade, mas não há um número de partição. Você também pode usar o Clonezilla ou mkusb para clone de uma maneira mais segura ( dd é perigoso).

Se você quiser usar dd de qualquer maneira, você deve começar desmontando todas as partições na unidade,

sudo umount /dev/sdc?

e depois disso a linha de comando que você mostra na pergunta editada deve fazer o trabalho,

sudo dd if=/dev/sdc | pv | gzip > FileNameHere.img.gz

e, se bem entendi, funciona para você (para criar um arquivo de imagem compactado, que pode ser usado para restaurar o sistema).

  • Ele deve funcionar diretamente com uma linha de comando inversa para criar um sistema em funcionamento se houver uma tabela de partição MSDOS (MBR).

  • Se houver uma tabela de partição GUID (GPT), você deve reparar a tabela de partição de backup no final da unidade (se o tamanho da unidade de destino não for exatamente o mesmo que o da unidade de origem). Isso é feito automaticamente com mkusb e pode ser feito manualmente com gdisk ou com o script gpt-fix .

por sudodus 30.01.2018 / 13:00