Como alterar partições na máquina virtual Ubuntu?

2

Pergunta original: Como redimensionar a partição raiz sem o live CD?

Eu tenho uma máquina virtual que preciso aumentar. Tornei a VM img maior e agora preciso redimensionar as partições para poder usar o espaço extra.

Esta é a minha tabela de partições atual e o objetivo é combinar /dev/vda1 e /dev/vda2 .
vda1 é minha partição raiz atual
vda2 é uma partição estendida que contém vda5 ( troca)

Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    18874367     9436160   83  Linux
/dev/vda2        18876414    20969471     1046529    5  Extended
/dev/vda5        18876416    20969471     1046528   82  Linux swap / Solaris

Isso seria simples com o Gparted e um live CD, mas eu posso apenas ssh para o servidor, ou abri-lo no virt-manager, mas ainda é apenas a linha de comando. Como posso possivelmente redimensionar a partição raiz?

A VM é o servidor Ubuntu 12.04.

    
por dan08 21.08.2013 / 15:58

4 respostas

3

Aqui está o que funcionou no final:

Enlage o arquivo img (imagem de disco virtual) para a VM:

1. sudo qemu-img create -f raw addon.raw 10G Criar arquivo de disco bruto

2. sudo mv domain.img domain.old.img backup atual img

3. sudo cat domain.old.img addon.raw >> domain.img combina original e extra para criar um arquivo img de novo tamanho maior.

Agora, temos uma imagem maior, mas a VM ainda tem uma tabela de partições antiga. Agora a parte complicada

As próximas etapas são feitas na máquina host com o desligamento da VM

Faça o download do arquivo iso para gparted:

wget -c http://sourceforge.net/projects/gparted/files/gparted-live-stable/0.6.4-1/gparted-live-0.6.4-1.iso

Inicialize o iso com a imagem virtual como o disco rígido no sistema virtual

O comando: kvm -m 512 -hda domain.img -cdrom gparted-live-0.6.4-1.iso -boot d

Estamos basicamente lançando um sistema virtual kvm que inicializará a partir do cdrom -boot d e o gparted está no cdrom -cdrom gparted-live-0.6.4-1.iso e neste sistema virtual tratará domain.img como o disco rígido -hda domain.img e alocará 512mb de memória para este sistema virtual -m 512 .

Agora, o gparted aparece com uma boa GUI (provavelmente existe também uma opção de linha de comando) pronta para reparticionar seu disco virtual.

Agora você pode manipular a tabela de partições como se estivesse usando um liveCD em uma máquina real.

A maioria dessas informações foi obtida de este blog de Chris Walden.

Obrigado @guntbert por me apontar na direção certa (por exemplo, é possível inicializar uma VM a partir de um liveCD).

    
por dan08 22.08.2013 / 18:26
3

Você precisa conectar sua VM com a iso de um CD ao vivo - o arquivo que você pode baixar. Eu suponho que você não está usando uma ferramenta GUI (como virt-manager ), então você terá que fazê-lo a partir da linha de comando.

Você pode usar virsh para obter um arquivo XML da configuração da VM (chamei minha VM qemu1 )

virsh dumpxml qemu1 > qemu1-config.xml

Agora edite esse arquivo, procure algo como

<disk type='file' device='cdrom'>
  <driver name='qemu' type='raw'/>
  <target dev='hdc' bus='ide' tray='open'/>
  <readonly/>
  <alias name='ide0-1-0'/>
  <address type='drive' controller='0' bus='1' target='0' unit='0'/>
</disk>

e substitua por

<disk type='file' device='cdrom'>
  <driver name='qemu' type='raw'/>
  <source file='/media/data/isos/gparted-live-0.13.0-1.iso'/>
  <target dev='hdc' bus='ide'/>
  <readonly/>
  <address type='drive' controller='0' bus='1' target='0' unit='0'/>
</disk>

Os pontos importantes são

  • adapte os caminhos e os nomes dos arquivos
  • a linha <source file=.../> contém o arquivo iso
  • a linha <target .../> não deve conter tray open now

E agora você coloca as novas configurações em prática com

virsh define qemu1-config.xml

A VM precisará ser reiniciada.

    
por guntbert 22.08.2013 / 14:46
1

Você pode usar gParted e a linha de comando resize from. Digite ...

sudo -i
parted

Ele será exibido

GNU Parted 1.7.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

list mostrará muitos comandos ...

(parted) list
  check NUMBER                             do a simple check on the file system
  cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another partition
  help [COMMAND]                           prints general help, or help on COMMAND
  mklabel LABEL-TYPE                       create a new disklabel (partition table)
  mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on partititon NUMBER
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system
  move NUMBER START END                    move partition NUMBER
  name NUMBER NAME                         name partition NUMBER as NAME
  print [free|NUMBER|all]                  display the partition table, a partition, or all devices
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END
  resize NUMBER START END                  resize partition NUMBER and its file system
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  displays the current version of GNU Parted and copyright information
  • print mostrará o layout do disco e adicionará um número a um disco;
  • resize {number} permite redimensionar um disco.
  • Isso só funcionará em partições instaladas;)

Eu nunca usei desse jeito, por isso tome cuidado ao emitir comandos.

    
por Rinzwind 21.08.2013 / 16:19
0

Você pode usar a ferramenta de linha de comando parted para isso.

Primeiro, você precisa excluir a partição estendida.

listar partições usando parted

parted /dev/vda

Anote sua partição estendida no. com starting and ending blocks e excluí-lo.

(parted) rm 2  ( Where is 2 your extended partition no.)  

Verifique sem usar

 (parted) print

Você terá sua partição estendida removida. Agora faça a partição primária no espaço restante.

(parted) mkpart primary <starting block no.>   <ending block no.>

como blocos inicial e final no. Anteriormente anotado. confira novamente

 (parted) print

reinicie o sistema para obter efeitos.

Redimensione sua partição raiz

 resize2fs /dev/vda

Você só precisa verificar o espaço em disco usando.

df -lh

Você terá sua partição raiz estendida.

    
por Ketankumar Patel 22.08.2013 / 16:21