Reduir la mida d'una imatge de disc que té espai lliure

De HLV Wiki
Salta a: navegació, cerca

Una imatge de disc no es pot redimensionar directament, cal seguir els següents passos:

Crear un dispositiu loopback

  • Activar dispositiu loopback (ja acostuma a estar-ho)
sudo modprobe loop
  • Reservar un dispositiu loopback disponible
sudo losetup -f
Aquesta comanda retorna la ruta cap al dispositiu loopback reservat (p. ex: /dev/loop0)
  • Muntar la imatge
sudo losetup /dev/loop0 imatge.img
  • Fer que el kernel carregui les particions (cal fer-ho per poder redimensionar)
sudo partprobe /dev/loop0

Redimensionar particions amb GParted

  • Carregar el dispositiu a GParted
sudo gparted /dev/loop0
  • Redimensionar la partició: Clic botó dret - Redimensiona/Mou - Canviar mida - Redimensiona - Clic a Aplicar
  • Quan acabi cal tancar GParted i alliberar el dispositiu loopback
sudo losetup -d /dev/loop0

Reduir la mida de la imatge

  • Identificar on acaba l'última partició
fdisk -l imatge.img
La sortida de la comanda serà similar a aquesta:
 Disk imatge.img: 6144 MB, 6144000000 bytes, 12000000 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: 0x000ea37d
     Device Boot      Start         End      Blocks   Id  System
     imatge.img        2048     9181183     4589568    b  W95 FAT32
D'aquí n'hem d'extreure la mida de bloc, 512 en l'exemple, i la posició final de l'última partició, 9181183 en l'exemple.
  • Executar la comanda truncate amb les dades trobades en el pas anterior
truncate --size=$[(9181183+1)*512] imatge.img
A la comanda truncate cal sumar-li 1 a la posició, ja que els blocs comencen a comptar-se a partir del 0.

Enllaços externs