Movendo toda a instalação do Linux para outra unidade


55

Eu tenho o Ubuntu 14.04 com muitos pacotes e coisas relacionadas ao trabalho e estou muito feliz com isso. Ele está instalado na minha unidade SSD principal, que é de 120 GB (eu tinha escolhido "/" quando instalei o ubuntu, então acredito que tudo deve estar nessa unidade). Ele aparece como / dev / sda

Agora eu adicionei outro SSD ao meu computador, que é um 240Gb. Não tenho nenhuma outra mídia de armazenamento disponível no momento (por exemplo, disco rígido externo).

Como a nova unidade de 240 GB tem obviamente mais capacidade e é mais rápida (uma geração mais nova que a de 120 GB), desejo mover meu Linux para essa nova unidade. Esta nova unidade aparece como / dev / sdb e, no momento, não está formatada nem nada (eu literalmente desempacotei e inseri no meu PC agora: P)

Como posso mover com segurança minha instalação do linux para a nova unidade?

Posso mudar o cabo SATA para que a nova unidade seja exibida como / dev / sda, se necessário.

Esta é a saída do "fdisk -l" se isso ajudar:

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00076d7a

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   226064383   113031168   83  Linux
/dev/sda2       226066430   234440703     4187137    5  Extended
Partition 2 does not start on physical sector boundary.
/dev/sda5       226066432   234440703     4187136   82  Linux swap / Solaris

Disk /dev/sdb: 240.1 GB, 240057409536 bytes
255 heads, 63 sectors/track, 29185 cylinders, total 468862128 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
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

4
Parece que você está planejando usar os dois agora. Nesse caso, considere usar apenas o mais novo e maior, em /homevez de todo o sistema. Deve ser uma alteração mais fácil (basta mover tudo e adicionar uma única linha ao / etcs / fstab), e a maioria dos arquivos grandes provavelmente entrará no diretório inicial (e assim no disco maior).
Kevin

Respostas:


35

Você pode usar o CLONEZILLA para essa finalidade.

O Clonezilla é uma ferramenta gratuita de partição e imagem / clonagem de disco que pode ser usada para fazer backup de todos os seus dados (discos inteiros ou partições) de uma maneira altamente compactada e depois cloná-los novamente no disco rígido para colocá-los exatamente na mesma condição. Isso é mais rápido do que instalar o sistema operacional na maioria das vezes.

insira a descrição da imagem aqui

No seu caso, você também pode usar a opção "device-device", mas não estou familiarizado com isso.

Você pode encontrar um guia detalhado sobre o Clonezilla aqui: http://clonezilla.org


11
Eu sugiro que você assistir esses dois vídeos tutoriais antes: youtube.com/watch?v=41tTudaQb0I e youtube.com/watch?v=LS6VhLDw-io
Severo Tux

11
Essa também é uma boa opção. Mas eu sou muito preguiçoso para criar a vara clonezilla ;-)
Pilot6

Eu encontrei clonezilla não copiar mbr assim uma imagem de disco inteiro e um pouco de trabalhou com GParted deve fazer o truque
adampski

11
Uau! fico feliz em ouvir isso ;-), O tempo de inicialização, é devido a alterações nos UUIDs, ou seja, os novos UUIDs e antigos de suas partições importantes (casa, Swap) mudaram. Para corrigir isso, siga as instruções fornecidas aqui com as alterações adequadas : askubuntu.com/a/737340/497359 Se você encontrar algum problema, comente-o.
Severo Tux

11
@adampski: Este parece ser um bug no Clonezilla 2.4.5. Como solução alternativa, você pode usar o Clonezilla 2.4.2 ou o Clonezilla 2.4.2 Server Edition (DRBL) até que seja corrigido. :)
cl-netbox

41

Isso pode ser feito de algumas maneiras. Mas o mais fácil é copiar todos os arquivos da unidade antiga para a nova.

  1. Crie uma partição ext4 e uma partição swap na nova unidade.

  2. Inicialize a partir do LiveUSB.

  3. Monte a partição antiga do Ubuntu em algum diretório, monte a nova em outro diretório.

  4. Copie todos os arquivos do antigo para o novo usando o cp -acomando

  5. Instale o grub na nova unidade .

  6. Atualize /etc/fstabcom novos UUIDs.

Se algo não estiver claro, posso adicionar algumas explicações.


11
+1 - também é possível evitar a inicialização a partir de um LiveUSB e fazer tudo enquanto inicializado a partir da unidade original, fazer todas as alterações, reiniciar, voila.
Sergey

11
@ Etienne: Não copie esses diretórios (também /dev), simplesmente crie diretórios vazios na unidade de destino e defina o mesmo proprietário / permissões que eles tinham na unidade de origem.
Sergey

10
Acabei usando: sudo rsync -a / /mnt/linux/ --exclude sys --exclude proc --exclude dev --exclude tmp --exclude media --exclude mnt --exclude run then sudo mkdir sys proc dev tmp media mnt run
Étienne

11
@ Etienne, você poderia editar seu comentário - excluir? Se você fizer o que escreveu, / var / tmp também é excluído (parece-me), depois que o clone está sendo esquecido pelo systemd-resolved.service, resultando na resolução de nomes que não está funcionando ... Eu acho que deveria be --exclude / tmp --exclude / proc etc. Obrigado
swe

11
@swe Não devo manter um comentário, por favor, proponha uma edição da resposta original.
Étienne

20

Caso você tenha algum tempo e queira ir com segurança:

$ dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync

Explicação do comando:

  • ifé a entrada, ofo destino
  • bsdefine o tamanho do bloco. É o tamanho dos pedaços que o dd lerá e escreverá. Tamanhos mais altos de pedaços geralmente significam maior desempenho, mas também mais corrupção de dados se o disco de entrada apresentar erros, veja aqui: archwiki on dd
  • noerror continua em r / w-erros.
  • sync sincroniza as compensações se ocorrer um erro.

Basicamente, isso criará uma imagem do seu disco sda e a gravará no sdb (mesmo layout de partição etc.). É claro que isso escreverá os 120 GB inteiros, pois é independente de arquivo. Portanto, muito seguro, mas não o mais rápido, se você usar apenas pequenas porções do disco. No entanto, se o disco de entrada estiver cheio, pode ser ainda mais rápido.

MAS:

  • Depois disso, você provavelmente deseja redimensionar as partições, caso contrário, não poderá aproveitar o espaço extra.
  • Em qualquer caso, pode ser necessário editar o arquivo / etc / fstab.
    Este é o caso se os IDs de hardware forem usados ​​para reconhecer os discos.

2
Seu ddcomando será executado para sempre. Considere adicionar bs=1Ma ele #
Dmitry Grigoryev

Afaik blocksize não precisa ser 1M em SSDs, mas eu vou olhar para cima sobre isso e atualização
Larkey

A limitação não está na tecnologia SSD, mas no bsvalor padrão que é 512 bytes.
Dmitry Grigoryev

11
resposta estendida com bs, graças ao heads-up
Larkey

11
Obrigado pela resposta detalhada ... Aprendi algumas coisas! mas eu decidi ir com o clonezilla e redimensionar as partições depois.
precisa saber é o seguinte

5

A maneira como faço quando mudo para um novo HDD é:

  • criar o layout da partição que eu quero na nova unidade
  • inicialize a partir do Live CD / USB ou instale, salve etc.
  • monte as partições antigas do disco rígido a serem copiadas para, por exemplo, /mnt/a
  • monte as novas partições do disco rígido para receber arquivos, digamos /mnt/b
  • cp -aou use tar para copiar os arquivos de /mnt/apara/mnt/b
  • instale o carregador de inicialização (lilo ou grub) no novo disco ¹
  • atualize o /etc/fstab(você pode usar blkidpara identificar novos UUIDs)
  • reinicie e teste se está tudo bem

Nota¹:

Verifique todo o disco rígido e partições usando o seguinte comando:

sudo fdisk -l 

Agora, observe a partição, na qual o Ubuntu está instalado, com a seguinte aparência: /dev/sda1

Monte a partição em que você precisa instalar o GRUB 2 (partição do disco rígido) e o sistema de arquivos aparece no Nautilus. Agora temos que montar a partição correta do disco rígido para fazer alterações no MBR real do disco rígido. Para isso, precisamos:

sudo mount /dev/sda1 /mnt
mount

Agora monte a partição em um local alternativo

sudo mount /dev/sda1 /mnt/boot

Crie um link inquebrável da /devpasta na imagem ao vivo da qual você inicializou para a /devpasta na partição em que você montou/mnt

sudo mount --bind /dev /mnt/dev/

Agora temos que mudar a raiz da raiz do live CD (/) para a raiz da partição montada

sudo chroot /mnt

Agora você está em um novo shell raiz, no qual a partição montada é a nova raiz. Você pode verificar essa digitação ls. Como estamos na partição montada agora, podemos avançar e instalar o GRUB 2:

sudo grub-install /dev/sda 

As instalações devem terminar agora, sem erros

Saia do seu shell CHROOT, digitando exitou pressionando Ctrl+, D que o levará de volta ao Live CD / USB Shell

Desmonte as partições que montamos antes para ter uma reinicialização limpa:

sudo umount /mnt/dev
sudo umount /mnt/boot
sudo umount /mnt

e reinicie após remover o Live CD ou USB Stick para inicializar a partir do disco rígido:

sudo reboot

Fonte


@ baobab33: Você tem permissão para copiar e colar aqui neste site e depois atribuir. Você não tem permissão para vincular apenas à fonte externa. Atualize também a fonte com as correções acima.
Fabby

4

Diferentemente das outras respostas, isso permite que você clone a instalação do Linux e a adicione ao menu Grub com suas instalações atuais intactas. Além disso, ele modifica automaticamente /etc/fstabpara você e atualiza grubo menu de inicialização.

Um menu é fornecido para ajudá-lo a selecionar a partição correta para a qual clonar. O clone da partição é sua partição inicializada atual.

rsyncé usado para a velocidade ideal, se você optar por reclinar a partição. Isso é benéfico se a atualização falhar, você espera pela correção do bug e deseja executar a atualização novamente. Da mesma forma, você pode ter escolhido opções erradas durante a atualização e deseja fazê-lo novamente.

O script completo pode ser encontrado aqui: Script Bash para clonar o Ubuntu em uma nova partição para testar a atualização 18.04 LTS e é assim que a tela se parece:

clone-ubuntu.png


0

Decidi fazer um experimento relacionado a este post.

Adquiri um Lenovo ThinkCentre. Ele tinha um SSD de 256 GB e um HD de 1 TB (tipo giratório - rápido, mas não tão rápido quanto um SSD).

Quando instalei o Linux Mint 19.2 (LM19.2), ele foi instalado na unidade de 1 TB. O SSD acabou sendo irrecuperável e eu comprei um novo SSD Kingston de 240 GB.

Eu estava prestes a instalar o LM19.2 no novo SSD, mas parecia haver uma maneira de transferir minha imagem LM19.2 bem desenvolvida da unidade de 1 TB para o novo SSD.

Encontrei este post e, embora haja alguns conselhos sólidos acima, eu estava no modo de experimentar. Abaixo está um relato do que eu fiz e funcionou MUITO bem.

  1. Eu usei o GParted para criar uma tabela de partições e uma partição no SSD que eram do mesmo tipo das do HDD de 1 TB.
  2. Eu executei um instantâneo TimeShift (nova ferramenta no Ubuntu / Linux Mint) de TUDO no HDD LM19.2 de 1 TB.
  3. Eu restaurei esse instantâneo no SSD.
  4. Depois que as etapas acima foram concluídas (você pode até fazer 1 em paralelo com 2 e 3), reiniciei, certificando-me de que ele escolheria o SSD.
  5. A única coisa estranha durante a reinicialização foi que a tela inicial do grub perguntou se eu queria inicializar no Ubuntu. Eu assumi que isso era peculiar à restauração do TimeShift, e era.
  6. Inicializações subsequentes inicializadas como o LM19.2 normalmente.
  7. Editarei esta resposta assim que verificar que posso fazer isso com uma nova unidade pendurada externamente no PC (e parece óbvio que isso funcionará), porque isso significaria que eu posso replicar rapidamente qualquer uma das minhas máquinas LM para novo hardware.

Somente a velocidade de inicialização fez com que essas etapas simples valessem o esforço. Até o Dropbox foi transferido corretamente - ele só queria que eu fizesse login novamente e demorou o tempo todo para indexar arquivos, mas funcionou muito bem.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.