Use DD para clonar apenas a partição Linux para uma unidade USB externa?

1

Eu tenho uma unidade interna de 1 TB que tem duas partições de 1/2 TB, uma para o Windows e outra para o Ubuntu 14.04 LTS. A estação se tornou basicamente uma estação Linux e eu nunca mais inicializo no Windows.

Eu queria criar um backup de imagem, então usei o DD para clonar a unidade interna em uma unidade USB externa de 1 TB. Infelizmente, a unidade USB parece estar a apenas alguns gigabytes da unidade interna e a DD terminou com a mensagem de erro "Não há espaço suficiente na unidade". Agora estou vendo algo estranho. Quando ejetei a unidade USB e a conectei de volta, vejo duas partições de 1/2 GB que parecem ser duplicadas. Eles têm GUIDs idênticos e o Nautilus mostra estruturas de diretórios e conteúdo idênticos. Eu estou supondo que algo sobre a cópia incompleta de uma das partições deixou a unidade externa em um estado quebrado.

Como posso usar o DD para apenas clonar a partição Linux na unidade externa? Isso é tudo que eu realmente quero.

    
por Robert Oschler 10.05.2016 / 21:00

3 respostas

2

Como primeiro você precisa descobrir dados sobre o seu disco rígido, você pode fazer isso digitando no terminal:

sudo fdisk -l

Você deve obter uma saída como esta:

Disk /dev/sda: 149,1 GiB, 160041885696 bytes, 312581808 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x06bd4abe

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048 230055935 230053888 109,7G 83 Linux
/dev/sda2       292970494 312580095  19609602   9,4G  5 Extended
/dev/sda3       230055936 292968447  62912512    30G 83 Linux
/dev/sda5       292970496 312580095  19609600   9,4G 82 Linux swap / Solaris

Partition table entries are not in disk order.

Então vamos dizer que / dev / sda3 é a unidade que você quer clonar, então você pode fazer:

dd bs=512 if=/dev/sda of=/dev/sdb1/partition.ddfile seek=230055936 count=$(expr 292968447 - 230055936)

Lembre-o, aqui estão apenas alguns exemplos que você precisa para se adequar à sua situação.

    
por Videonauth 10.05.2016 / 21:31
1

Mais fácil:

  1. sudo fdisk -l como dito por Videonath. Localize a partição que você deseja clonar
  2. dd bs=512 if=/dev/<partition-name> of=/<external-media-path>

por exemplo, dd bs=512 if=/dev/sda2 of=/dev/sdb1

Nota:

  • dd requer que o tamanho do alvo seja maior ou igual ao tamanho da fonte
  • O backup criado dessa maneira (nível de partição) não seria ser inicializável
por Anonymint 11.05.2016 / 07:49
1

Enquanto pergunta sobre dd , recomendo partclone ? É feito para clonar e restaurar uma partição. Ele precisa estar ciente do sistema de arquivos subjacente, a vantagem sobre dd é que ele copia apenas os blocos usados e economiza muito tempo ou espaço, já que é raro que a parte não utilizada de uma partição é compressível (lixo de dados antigo em vez de zeros).

sudo partclone.ext4 -c -b -s /dev/sdaX -o /dev/sdbY 

fará o que você quiser. -c significa clone, -b de dispositivo a dispositivo, -s é origem, -o é alvo. Além disso, desde que você fez um clone, os UUIDs de origem e destino são idênticos. Verifique isso com blkid , use uuidgen para gerar um novo UUID e, em seguida, sudo tune2fs /dev/sdbY -U <uuidgen-generated new UUID> para alterá-lo.

Ter dois UUIDs idênticos na mesma máquina pode até ser a causa raiz dos problemas que você teve com o estado 'quebrado' do dispositivo externo.

Antes de fazer isso, o dispositivo de destino precisa ser configurado com fdisk para que a nova partição não seja menor que a partição antiga. Se for maior, você pode aumentar a partição clonada posteriormente com gparted para o novo tamanho máximo.

    
por emk2203 11.05.2016 / 08:55