Estendere il root_fs di una virtual machine UML

Condividi:

Estendere il root filesystem di una virtal machine user mode linux non è molto diverso dall’ estendere il root file system di un normale host, se consideriamo il file in cui è montato come se fosse un disco contenente le varie partizioni

Quando abbiamo creato il file ubd-000 per le nostre vm, dopo aver installato alcuni pacchetti debian siamo rimasti a corto di spazio sul filesystem

root@uml-debian:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       282M  276M     0 100% /
devtmpfs         58M     0   58M   0% /dev
tmpfs            58M     0   58M   0% /dev/shm
tmpfs            58M  768K   57M   2% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs            58M     0   58M   0% /sys/fs/cgroup

Non resta quindi che spegnere la vm ed incrementare lo spazio disponibile, ad esempio aggiungendo 200M

# cp ubd-000 ubd-000.bkp
# dd if=/dev/zero bs=1024K count=200 >> ubd-000

Montiamo il file su un loop device

# losetup -vf -P --show ubd-000
/dev/loop0

Estendiamo la partizione usando parted

# parted /dev/loop0 print
Model: Loopback device (loopback)
Disk /dev/loop0: 315MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End    Size   Type     File system  Flags
 1      1049kB  315MB  314MB  primary  ext3

Visualizziamo lo spazio utilizzabile

# parted /dev/loop0 print free
Model: Loopback device (loopback)
Disk /dev/loop0: 524MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
        32,3kB  1049kB  1016kB           Free Space
 1      1049kB  315MB   314MB   primary  ext3
        315MB   524MB   210MB            Free Space

Per incrementare lo spazio usiamo il comando resizepart con il numero della partizione ( 1 ) e End della riga Free Space

# parted /dev/loop0 resizepart 1 524MB

Controlliamo il filesystem che è stato formattato in ext3

# fsck.ext3 -vf /dev/loop0p1

Ora possiamo estendere il filesystem utilizzando tutto lo spazio disponibile.

# resize2fs -p /dev/loop0p1

Smontiamo il loopdevice ed avviamo la vm

# losetup -d /dev/loop0
# linux ubda=ubd-000 root=/dev/ubda1 umid=uml-debian mem=128M con0=fd:0,fd:1 con=pts

root@uml-debian:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       476M  276M  175M  62% /
devtmpfs         57M     0   57M   0% /dev
tmpfs            57M     0   57M   0% /dev/shm
tmpfs            57M  768K   57M   2% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs            57M     0   57M   0% /sys/fs/cgroup