Como passar de uma unidade para outra de tamanho diferente?

21

Eu já me deparei com esse cenário há algum tempo: preciso substituir uma unidade porque preciso de mais espaço, está tendo problemas, passando para uma nova caixa etc.

Qual é a melhor maneira de copiar dados de um tamanho de partição para outro (presumindo que o destino tenha espaço suficiente)?

E se for um sistema de arquivos diferente (como o ReiserFS para ext4)?

Se for apenas uma nova unidade em um sistema existente, como posso garantir que não preciso reinstalar para que tudo funcione?

Atualização - muitas das opções são altamente viáveis, e eu mudei esta pergunta para wiki da comunidade porque acho que não há uma resposta "certa".

warren
fonte
1
superuser.com/questions/32164/... foi convidado para unidades do Windows / partições
Warren

Respostas:

10

Clone a unidade usando o CloneZilla e use gparted para redimensioná-la. Mantenha o seu antigo, se der errado :-)

A propósito, este caminho é gratuito.

craigmoliver
fonte
2
Eu gosto da parte livre aqui, embora nada bate software funcionando bem que faz tudo (em vez de 3 freewares juntos)
Ivo Flipse
1
São apenas dois freewares e é bastante indolor. ISOs inicializar sem problemas.
22940 craigmoliver
Eu posso confirmar que isso funciona. Mudei com êxito minha unidade secundária com o Windows 7 de uma unidade de 160 GB para uma unidade de 1 TB. Clonou no meu disco linux com o Clonezilla. Restaurado no novo disco e redimensionado com a ferramenta Gerenciamento de disco do Windows 7. Isso foi de um NTFS para um NTFS embora.
23420 Thomas Watnedal
você diz 'clonar a unidade', embora ele tenha perguntado a clonar a partição. Ele também disse que um sistema de arquivos diferente.
barlop
5

A solução que eu usei no passado é tar. Se as partições tiverem exatamente o mesmo tamanho e tipo, você poderá usar dd.

Aqui está a minha resposta ao dilema:

  1. inicialize usando uma distribuição de CD ao vivo, como o Slax
  2. verifique se as partições desejadas estão na nova unidade
  3. verifique se as unidades antiga e nova estão montadas, por exemplo, /tmp/driveolde / tmp / drivenew '
  4. execute a partir de um terminal o seguinte tarcomando:

    (tar cp --xattrs /tmp/driveold/path) | (tar x /tmp/drivenew/path)

  5. repita para cada partição que você precisa copiar

Isso funciona para todas as partições que já experimentei (excluindo /boot, para as quais garanto que as partições são idênticas e usadas dd).

Warren
fonte
2
Gosto dessa solução porque é muito simples, mas acho que você precisaria de algumas opções extras, como p (preservar permissões), para obter todos os metadados.
Jay Conrod 23/07/2009
1
você está certo sobre o p - Eu adicionei que :)
Warren
2
Falando em metadados, a --xattrsopção (armazenar ACLs e informações do SELinux) também deve ser usada.
Cristian Ciupitu 08/09/09
Os 2 alcatrões conectados a um tubo podem ser substituídos por cpio --pass-through.
Cristian Ciupitu 08/09/09
1
Qual versão do tartem uma --xattrsopção? Não é meu. Eu sugiro usar rsyncou simples cp: serverfault.com/questions/306538/…
Teddy
2

Essa é uma das razões pelas quais eu gosto do LVM. Basta adicionar o novo disco ao grupo de volumes, pvmoveos volumes lógicos do disco antigo para o novo, remover o disco antigo do grupo de volumes e, em seguida, do sistema. Se for o seu disco de inicialização que você está substituindo, também precisará atualizar o seu carregador de inicialização.

pgs
fonte
Essa é uma ótima idéia - exceto se você não estiver executando o LVM, é um pouco doloroso :) Obrigado pela sugestão!
Warren
Algo a considerar próxima vez que você instalar :-)
pgs
2

+1 para warren e usar tar.

No entanto, eu normalmente tento restaurar dos meus backups. E passar de um disco para um novo parece ser uma boa oportunidade para ver se o seu plano de backup está funcionando.

Se você simular uma falha no disco (retire a energia do disco antigo), comece a recuperar para o novo disco. E quando terminar, você inicia o disco antigo e difere-os para ver se você possui todos os arquivos.

Se eles forem idênticos, ambos moveram todos os seus dados e você sabe que seu plano de backup é válido e está funcionando.

Johan
fonte
boa idéia - embora para aqueles entre nós (<whistle mode = "innocent" />) que não têm uma solução de "backup", esse também seja um bom momento para criar uma :) :)
warren
1
:)
Johan
2

Outra opção seria inicializar a partir de um liveCD e montar a unidade antiga como somente leitura. Isso evita que o livecd o altere durante a cópia. Então rsync -avz /mnt/olddisk/ /mnt/newdisk(a barra após o disco antigo é necessária). Como os outros mencionaram, se este for o disco de inicialização que está sendo expandido, você precisará executar novamente grub-install <new device>antes que possa ser inicializável.

Shoan
fonte
há um que eu não thoguht de :)
Warren
1

A maioria dos utilitários de clonagem de disco pode fazer isso. Eu gosto de usar o g4u de um livecd. O fantasma é legal, mas eu prefiro usar um grátis.

calafrios42
fonte
1

Também encontrei o Disk Copy , que não parece estar na lista da Wikipedia, mas nunca o usou.

Warren
fonte
1
A cópia em disco é boa.
craigmoliver
Infelizmente, é apenas para Windows, e esta pergunta foi marcada com linux.
programmer5000