Estou fazendo um dd
em duas unidades idênticas com este comando:
dd if=/dev/sda of=/dev/sdb bs=4096
Ambos os discos rígidos são exatamente o mesmo número de modelo e ambos têm 1 TB de espaço de armazenamento. /dev/sda
usa um tamanho de bloco de 4096. /dev/sda
é uma unidade local e /dev/sdb
é um transportador remoto. Talvez eu consiga usar os seguintes protocolos:
- USB2.0 HighSpeed (atualmente o plano)
- Clone Gigabit Over-The-Network (Realmente não quero nem tentar isso)
- USB3.0 (se eu encontrar meu outro caddy de unidade)
- eSATA (se eu encontrar / comprar um cabo)
- SATA (se eu encontrar / comprar um cabo, tenho que amar unidades de CD de laptop)
Existe uma maneira de executar essa cópia da unidade que leva menos de 96 horas? Estou aberto a usar outras ferramentas além de dd
.
Preciso clonar as seguintes partições (incluindo UUIDs)
- Partição EFI Fat32 (*)
- Partição Windows NTFS (*)
- Partição HFS + OSX
- Partição EXT4 Ubuntu (*)
- Partição de troca (*)
*
Apoiado por Clonezilla
Eu tentei o Clonezilla (e foi MUITO mais rápido), mas ele não suporta cópias inteligentes HFS +, o que eu preciso. Talvez a versão mais recente suporte isso?
Quando fiz meu primeiro clone, fiz todas as partições, exceto o HFS +, e foi muito rápido. (Não mais de 3 horas no total)
fonte
dd
copia tudo , incluindo espaço livre. As desvantagens se tornam extremamente aparentes quando você tem discos grandes que não estão completamente cheios.Respostas:
Na minha experiência, não acho que exista algo mais rápido na linha de comando
dd
. Ajustar obs
parâmetro pode aumentar a velocidade, por exemplo, eu tenho 2 HDDs que sei que possuem uma velocidade de leitura / gravação maior que 100 MB / s, então faço isso:Também há
pv
(Precisa ser instalado primeiro) que verifica a velocidade mais rápida em ambas as unidades e depois prossegue na clonagem. Isso deve ser feito, é claro, a partir da raiz:Com PV eu tenho 156 MB / s
O lado bom da
pv
parte da velocidade é que ela mostra o progresso, a velocidade atual, o tempo desde o início e o ETA. Em relação ao HFS + eu não saberia, estou apenas tentando ajudar na parte "velocidade". Compv
ou umbs
parâmetro muito otimizado , você pode executar uma unidade de 4 TB em menos de 7 horas (6 horas e 50 minutos a uma velocidade atual de 150 MB / s).Fiz alguns testes com os tipos de conexão que você estava usando e outros que eu tinha disponível. Eu estava usando o Asus Z87 Pro e o Intel DZ68DP. Esses foram meus resultados, mas primeiro precisamos saber que as velocidades teóricas para muitas taxas de transferência (velocidades brutas) são exatamente isso, teoria . Fazer testes reais revelou que eles estão entre 40% e 80% dessa velocidade bruta. Esses testes podem mudar dependendo do dispositivo usado, tipo de conexão, placa-mãe, tipo de cabo de conexão, tipo de sistema de arquivos e mais. Com isso em mente, é isso que recebi (só testei a velocidade de gravação no dispositivo, a leitura geralmente é maior):
fonte
bs
parâmetro pode serdd
tão rápido quantocat
. Você também pode usarcat
em primeiro lugar.pv
por si só funciona muito, muito bem.dd if=/dev/sda1 | pv | dd of=/dev/sdb1
pv
entredd
s. Nunca soube que poderia ser usado sozinho!Para copiar uma partição por atacado, use em
cat
vez dedd
. Fiz benchmarks há algum tempo, copiando um arquivo grande em vez de uma partição, entre dois discos (no mesmo disco, os tempos relativos são diferentes):A conclusão deste benchmark é que a escolha do tamanho do bloco para
dd
assuntos (mas não tanto) ecat
automaticamente encontra a melhor maneira de fazer uma cópia rápida:dd
só pode atrasá-lo. Com um tamanho pequeno de bloco,dd
perde tempo perdendo pequenas leituras e gravações. Com um tamanho de bloco grande, um disco permanece ocioso enquanto o outro está lendo ou gravando. A taxa ideal é alcançada quando um disco lê enquanto o outro disco grava.Para copiar uma partição, pode ser mais rápido copiar os arquivos
cp -a
. Isso depende de quantos arquivos existem e quanto do sistema de arquivos possui espaço livre. A cópia de arquivos tem uma sobrecarga aproximadamente proporcional ao número de arquivos, mas, por outro lado, a cópia de espaço livre desperdiça tempo.A taxa máxima de dados para USB2 é um pouco abaixo de 50 MB / s, que dura de 6 a 7 horas para transferir 1 TB. Isso pressupõe um disco rígido rápido o suficiente para saturar o barramento USB; Acho que as unidades mais rápidas de 7200 rpm conseguem, mas 5900rpm podem não ser tão rápidas (talvez sejam para gravações lineares?).
Se qualquer um dos discos estiver sendo usado em paralelo, isso poderá diminuir consideravelmente a cópia, pois as cabeças dos discos precisarão se mover.
fonte
cat
ser usado paradd if=ubuntu.iso of=/dev/usb
?dd
A velocidade de fazer isso para USB2 ou USB3 é frustrantemente lenta.cat ubuntu.iso >/dev/usb
é exatamente equivalente. Não há mágicadd
, é apenas uma ferramenta para copiar sua entrada para sua saída.sudo cat linuxmint-17.3-cinnamon-64bit.iso >/dev/disk1
devolver "-bash: / dev / disk1: permissão negada"O problema é o seu tipo de conexão e o tamanho do bloco. Para obter resultados mais rápidos, o tamanho do seu bloco deve ser metade da velocidade de gravação mais baixa que você normalmente recebe. Isso lhe dará uma margem segura, mas ainda permitirá um grande número; é claro que você também precisa ter memória RAM suficiente para armazenar os dados.
O USB 2.0 é de 12 megabits por segundo (Mbps), o USB 2.0 de alta velocidade é de 480 Mbps. Essa é obviamente a velocidade bruta; com 8 bits em um byte e sobrecarga de estrutura, a velocidade utilizável em MB / s geralmente é uma casa decimal. Assim, por exemplo, 480 raw, torna-se 48MBs utilizável. Lembre-se de que este é o melhor em matemática, no mundo real será um pouco menor. Para conexões de alta velocidade USB 2.0, você deve esperar algo em torno de 30 a 35 MBs de velocidade máxima de gravação, desde que o dispositivo de armazenamento real possa igualar ou superar as velocidades de conexão.
fonte
Concordo que a velocidade bruta de um
dd
comando bem sintonizado ('pv') ou 'cat' é difícil de superar, mas se houver algum problema com a cópia (setor defeituoso, falta de energia, erro do usuário, etc.), é necessário iniciar sobre.Gostaria de sugerir o ddrescue - uma ferramenta FOSS que tem toda a velocidade do dd, mas que soluciona erros de disco e é retomada posteriormente, se houver uma falha.
fonte
Estou mudando o Windows 7 de um HD para SSD e encontrei esta e algumas outras respostas ... Algo que aprendi que pode ajudar outras pessoas. No meu caso, a unidade de origem é maior, caso contrário, eu teria trabalhado no nível do dispositivo / dev / sda -> / dev / sdb.
Win7 e suas 3 partições ... Eu usei o Xbuntu 14.04 live cd em um usb. Retirou o DVD do computador da vitória e colocou o SSD em seu lugar. Instalou o partclone e tentou o seguinte:
partclone.ntfs -b -N -s /dev/sda3 -o /dev/sdb3
O Partclone vomitou nos ntfs que precisavam de execução do chkdisk no Windows, portanto, uma solução rápida deixou o partclone satisfeito:
Todos os comandos são executados como raiz. A interface do usuário ncurses da Partclone (a opção -N) disse que a transferência foi de 7 GB / min e terminou em 5 GB / min, o que equivale a 83 MB / s. A grande parte é que o partclone não copia o espaço não utilizado, então isso tornou o clone notavelmente rápido.
Gotchyas potenciais adicionais:
se a unidade para a qual você está transferindo foi usada anteriormente, pode haver restos de uma GPT. As instalações de fábrica do Windows 7 geralmente são tabelas de partição msdos / mbr. Você precisará remover os fragmentos GPT da unidade de destino. Esse controle de qualidade do Unix e Linux me ajudou com isso. Você deve usar
gdisk
no dispositivo, x e z e yes para zap dados de GPT e certifique-se de manter o MBR.E não esqueça que, se você não fizer um dd no nível do dispositivo, será necessário copiar o MBR usando
dd if=/dev/sdb of=/dev/sda bs=446 count=1
onde sdb é a fonte ou a unidade antiga e sda é o destino ou a nova unidade ( origem )
fonte
Recentemente, criei uma imagem da partição de 100GB (HDD) e a grave no novo disco SSD.
Aqui está uma dica que pode acelerar drasticamente o processo :)
Divida o arquivo em partes menores (quanto maior o arquivo, mais lento ele funciona)
Durante o processo, você pode verificar a velocidade usando (em um terminal separado)
Em seguida, quando você tiver um diretório cheio de arquivos de resultados (maindisk.img000, maindisk.img001 e assim por diante ...) use
para 'gravar' a imagem no novo partiton do SSD (a partição deve ter o mesmo tamanho da antiga)
Para mim, funcionou muito mais rápido do que o normal (sem dividir). A velocidade média de criação da imagem foi de ~ 13 MB / s. Quando uso o modo 'normal', ele começa com ~ 15 MB / se depois diminui para 1 MB / s.
fonte
conv=sync
é prejudicial ao desempenho e bastante inútil nesse caso de uso.Para quem encontra esse segmento, é muito mais fácil e rápido usar apenas uma ferramenta projetada para recuperação de dados como o ddrescue . Ele tenta resgatar as partes boas primeiro em caso de erros de leitura. Além disso, você pode interromper o resgate a qualquer momento e retomar mais tarde no mesmo ponto.
Execute-o duas vezes:
Primeira rodada, copie todos os blocos sem erros de leitura e registre os erros em rescue.log.
Segunda rodada, copie apenas os blocos defeituosos e tente 3 vezes a leitura da fonte antes de desistir.
Agora você pode montar a nova unidade e verificar se há danos no sistema de arquivos.
Mais informações:
https://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html
fonte
Eu recomendaria a entrada / leitura - arquivo / disco para estar no SATA para aumentar a velocidade de leitura. A alta velocidade USB 2.0 também é boa, pois estou obtendo velocidades médias de 33816 kb / s com ddrescue em comparação com quando a configuração era USB 2.0 para SATA a 2014 kb / s
fonte
Use um tamanho de bloco diferente. É a quantidade de dados que
dd
lê por vez. Se a leitura for muito pequena, uma parcela maior de tempo será gasta na lógica do programa e, se for lido muito, será gasto muito tempo movimentando os grandes dados.Para medir a velocidade em diferentes tamanhos de bloco, use o seguinte
bash
script:$dev
para o dispositivocbtotal
para ser pelo menos 5x a velocidade de leitura esperadaO resultado pode ser enviesado para um tamanho maior devido à leitura do disco a seguir - é por isso que é importante definir um
cbtotal
tamanho suficiente.fonte