Mover partição ext4

4

Eu tenho uma partição ext4 no final de um disco rígido e quero redimensioná-la para o tamanho total do disco (o resto do disco está vazio). Não é a partição raiz, apenas uma partição de dados, então não há problema em desmontar a partição. A máquina tem Ubuntu servidor em execução, e nem tela, teclado, mouse nem drive de disco óptico anexado, assim que arrancar um ambiente ao vivo para usar responder em comentários em outra pergunta , de alguma forma não é possível para parted para alterar o início de uma partição ext4.

Por que o gparted, no entanto, aparentemente faz o truque (veja a primeira questão relacionada), mas não se separou?

Bem, como eu tinha espaço suficiente no início da unidade (mais do que o tamanho da partição para mover), pensei em tentar outra abordagem: criar uma segunda partição na frente, copiar o conteúdo da partição uma na parte de trás para essa, exclua a partição antiga e redimensione a nova em tamanho real. No entanto, isso também se mostrou impossível: depois de criar a partição e copiar o conteúdo (via dd if=/dev/sdb2 of=/dev/sdb1 ), a partição não pode ser montada ('superbloco de diário ausente').

Então, no momento, estou sem ideias. Eu provavelmente vou copiar tudo de vital para outro disco, deletar todas as partições novamente e criar uma grande. Eu estou querendo saber que isso é um problema - ou eu estou com vista sobre o óbvio?

    
por codeling 06.06.2012 / 09:21

5 respostas

2

É um pouco demorado, mas pode ser feito se:

Assumindo / dev / sdb1, e que o espaço não alocado é maior que a quantidade de dados do / dev / sdb1:

Antes de começarmos, vamos criar alguns diretórios de ponto de montagem em /mnt/ :

mkdir /mnt/old && mkdir /mnt/new

O disco agora está assim:

[(.......UNALLOCATED.........)(xxxx /dev/sdb1 xxxxxx)]
  • e2fsck -f -y -v /dev/sdb1 #apenas para ter certeza de que está livre de erros.
  • fdisk /dev/sdb
  • Pressione: n p 2 wq
  • mkfs.ext4 /dev/sdb2
    Agora o disco é assim:
[(xxxxxx /dev/sdb2 xxxxxxxxxx)(xxxx /dev/sdb1 xxxxxx)]
  • mount /dev/sdb2 /mnt/new && mount /dev/sdb1 /mnt/old
  • mv /mnt/old/* /mnt/new/ (Você receberá um erro sobre perdido + encontrado, você pode ignorá-lo)
  • cd / && umount /mnt/old && umount /mnt/new
  • cfdisk /dev/sdb
  • Excluir sdb1
  • Escolha escrever
  • Excluir sdb2
  • Escolha escrever
  • Criar novo, escolha o tamanho total disponível.
  • Escreva e saia.
  • e2fsck -f /dev/sdb1
  • %código% Agora o disco é assim:
[(xxxxxxxxxxxxxxxxxxx /dev/sdb1 xxxxxxxxxxxxxxxxxxx)]
  • resize2fs /dev/sdb1

TERMINADO!

    
por Frantique 06.06.2012 / 11:16
2

Veja como eu fiz isso em máquinas sem cabeçalho apenas com acesso SSH: use VNC e obtenha gparted para fazer isso . Use openbox para um ambiente mínimo e remova tudo uma vez feito, se for apenas uma vez.

sudo apt-get install vnc4server openbox gparted
vnc4server       #set a password, create initial config
vnc4server -kill :1
sed -i -e 's/x-window-manager/openbox-session/g' ~/.vnc/xstartup
vnc4server

Abra a porta 5901 e acesse com um cliente VNC. Clique com o botão direito para iniciar o terminal dentro do openbox e você poderá executar qualquer aplicativo do GTK +, incluindo gparted . apt-get remove e autoremove se você quiser quando terminar.

    
por ish 06.06.2012 / 10:33
1

Eu fui na direção da GUI:

1) Execute o CD do live linux (Mint no meu caso)

2) Conecte-se à Internet

3) Get gparted

sudo apt-get install gparted

4) Depois de ter feito todo o redimensionamento na GUI gparted, execute o reparo de inicialização.

5) link Basicamente se resume a obtê-lo e dunning it:

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update

sudo apt-get install -y boot-repair && boot-repair

6) Selecione o conserto das opções comuns e selecione NO se ele perguntar se a sua unidade é removível (bem, se não for).

Resolvi meu problema.

    
por Piotr Jasiulewicz 26.01.2013 / 21:30
0

Primeiro, eu teria feito como Frantique, exceto que eu teria movido com rsync , pois ele foi projetado para tornar a cópia com todos os atributos intacta. O comando mv não faria isso.

Mas se eu realmente quisesse fazer um trabalho sério, como moveria coisas de qualquer maneira, eu teria movido os dados para um volume LVM2, pois isso torna tão fácil gerenciar volumes, discos e partições no futuro.

Como se você quisesse adicionar mais espaço, basta adicionar um disco ao grupo de volumes. Adicione, remova ou redimensione partições, apenas faça isso no volume lógico. Não há necessidade de pensar em layout físico. Para remover dados de um disco que está começando a reportar muitos erros, basta adicionar um novo disco e, em seguida, mover os dados do disco defeituoso e, em seguida, remover o disco do volume. Todos os dados foram movidos de um disco para outro.

    
por Anders 06.06.2012 / 15:09
0

Antes de mais nada, BACKUP YOUR DATA , para evitar a perda de dados.

Como parted não suporta ext4, você deve usar resize2fs .

cfdisk /dev/sdx
  • Exclua a partição. SIM, APAGUE! (Eu sei, soa estranho, mas, acredite, os dados permanecerão lá, apenas NÃO USE mkfs.ext4 !)
  • E recrie-o com o tamanho desejado. Você precisa iniciá-lo exatamente no mesmo ponto em que era o original. O ponto final pode se mover. Se você perder isso, você perderá os dados!
resize2fs /dev/sdxY

Sem fornecer outros parâmetros para resize2fs , o sistema de arquivos será estendido para o tamanho da partição.

Sobre os recursos incompatíveis: é o extents que é usado pelo ext4.

    
por Frantique 06.06.2012 / 09:44