Como encolher, clonar um disco inteiro do Linux e inicializá-lo?

3

Eu tinha um Ubuntu 14.04 rodando em um disco de 1024 GB (disco A), que usava apenas até 130 GB de espaço. Eu quero cloná-lo em um disco SSD de 256 GB (disco B). Mas falhou.

Eu usei gparted para encolher as partições no disco A para serem apenas cerca de 180 GB para a preparação para o disco B com êxito.

Você pode me dizer onde eu estava errado?

1) restaurar a tabela de partições

Eu fiz backup da tabela de partições do disco A.

└──╼ $ sudo sfdisk -d /dev/sda
# partition table of /dev/sda
unit: sectors

/dev/sda1 : start=     2048, size=   997376, Id=83, bootable
/dev/sda2 : start=   999424, size= 15624192, Id=82
/dev/sda3 : start= 16623616, size=337020928, Id=83
/dev/sda4 : start=        0, size=        0, Id= 0

Dicas

/dev/sda1 para /boot , /dev/sda2 para swap , /dev/sda3 para / .

Salvar tabela de partições

sudo sfdisk -d /dev/sda > partition.table

Depois tentei restaurar a tabela de partições no disco B ( /dev/sdc neste cenário).

Substitui sda por sdc no arquivo partition.table . Então parece:

# partition table of /dev/sdc
unit: sectors

/dev/sdc1 : start=     2048, size=   997376, Id=83, bootable
/dev/sdc2 : start=   999424, size= 15624192, Id=82
/dev/sdc3 : start= 16623616, size=337020928, Id=83
/dev/sdc4 : start=        0, size=        0, Id= 0

Em seguida, faça a restauração com sucesso.

sudo sfdisk /dev/sdc < partition.table

2) migrando conteúdo da partição de disco

sudo dd if=/dev/sda1 of=/dev/sdc1

sudo dd if=/dev/sda2 of=/dev/sdc2

sudo dd if=/dev/sda3 of=/dev/sdc3

Após a migração, essas partições em / dev / sdc podem ser montadas e visualizadas.

Falha

Mas se eu conectei o disco SSD (disco B) ao meu laptop, ele não inicializaria depois de alguma saída do BIOS do Thinkpad. Nenhum erro saiu, mas um cursor piscando ...

Aposto que o BIOS ainda não detectou o /boot no disco B ao fazer o boot.

Você pode me ajudar? Muito obrigado!

atualizar

Alguém me sugeriu usar grub-install /dev/sdc para fazer o truque.

Eu pesquisei o que grub-install é capaz - link Deixe-me tentar. E tenho certeza que o disco A (tinha o MBR instalado).

Atualizar

Depois de fazer dd if=/dev/sda of=/dev/sdc bs=512 count=1 , insira somente o disco B, ainda é o mesmo cursor piscante. Nada realmente depois da BIOS.

Depois de fazer grub-install --boot-directory=/mnt/mypartition/boot /dev/sdc eu fui para inicializá-lo, apenas disco B.

Mas o console do grub saiu. E relatou

Atualizar

Agoraestáfuncionando!!!

Vejacomoeufizisso,noPCexecutandoodiscoAcomosistemaoperacionaleodiscoB(/dev/sdc)comoumdiscorígidoUSB.

sudomount/dev/sdc3/mntsudomount/dev/sdc1/mnt/bootsudogrub-install--boot-directory=/mnt/boot/dev/sdc3

Emseguida,fuiparao/mnt/boot/grub/grub.cfg,eusubstituíduascoisasnoarquivogrub.cfg.(lembre-sededarpermissãodegravaçãoparaoarquivogrub.cfg)

substituahd1porhd0

substitua/dev/sdc3por/dev/sda3

Emseguida,salveoarquivo.->Desligueocomputador->InsiraodiscoBviaSATAeretireodiscoAparasempre.->Boot->Vejaogrub,masaindainicialize

SevocêencontrouoerroError:invalidenvironmentblock.Pressanykeytocontinue,verifiqueissopararesolvê-lo.Pressionequalquerteclainicializaráseusistema. link

sudo -i

Em seguida, execute cada comando, um por um.

cd /boot/grub
rm grubenv
grub-editenv grubenv create
grub-editenv grubenv set default=0
grub-editenv grubenv list
update-grub

Agora vá reiniciar, vai funcionar!

Foi assim que eu reduzi meu disco rígido de 1024 GB e migrei todo o sistema para um novo disco SSD de 256 GB.

    
por dotslash 21.07.2016 / 19:33

1 resposta

2

Eu não estou familiarizado com sfdisk , mas você poderia realizar a mesma coisa, fazer backup da tabela de partições e do MBR usando dd .

Isso foi em minhas anotações e eu não sou o autor ...

Fazendo backup do MBR

O MBR é armazenado nos primeiros 512 bytes do disco. Consiste em 3 partes:

  • Os primeiros 446 bytes contêm o gerenciador de inicialização.
  • Os próximos 64 bytes contêm a tabela de partições (4 entradas de 16 bytes cada, uma entrada para cada partição primária).
  • Os últimos 2 bytes contêm um identificador

Clone o MBR como mbr.img:

dd if=/dev/sdX of=/path/mbr_file.img bs=512 count=1

Clonar partição como pX.img

dd if=/dev/sdX of=/path/pX.img bs=1024

Restaurar o MBR para novo disco

dd if=/path/mbr_file.img of=/dev/sdY bs=512

Restaurar partição para novo disco

dd if=/path/pX.img of=/dev/sdX bs=1024

OR

Você pode usar clonezilla para criar uma imagem do sistema operacional e restaurá-la em um disco que já tenha as partições criadas.

Desta forma, você pode precisar reinstalar o grub no novo disco

grub-install

grub-mkconfig

e defina sua partição swap no 'novo' sistema operacional.

mkswap

swapon
    
por 21.07.2016 / 19:54