Come ridimensionare / ingrandire / far crescere una partizione ext4 non LVM


20

Ho già cercato nei forum, ma non sono riuscito a trovare una buona risposta adatta:

Ho un Ubuntu Server 10.04 come host KVM e un sistema guest, che esegue anche 10.04. Il sistema host utilizza LVM e ci sono tre volumi logici, che sono forniti al guest come dispositivi a blocchi virtuali: uno per /, uno per / home e uno per swap. L'ospite era stato partizionato senza LVM.

Ho già ingrandito il volume logico nel sistema host: l'ospite vede con successo il disco virtuale più grande. Tuttavia, questo disco virtuale contiene una "buona vecchia" partizione, che ha ancora le vecchie dimensioni piccole.

L'output di fdisk -l è

me@produktion:/$ LC_ALL=en_US sudo fdisk -l

Disk /dev/vda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c8ce7

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *           1        3917    31455232   83  Linux

Disk /dev/vdb: 2147 MB, 2147483648 bytes
244 heads, 47 sectors/track, 365 cylinders
Units = cylinders of 11468 * 512 = 5871616 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000f2bf7

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1               1         366     2095104   82  Linux swap / Solaris
Partition 1 has different physical/logical beginnings (non-Linux?):
     phys=(0, 32, 33) logical=(0, 43, 28)
Partition 1 has different physical/logical endings:
     phys=(260, 243, 47) logical=(365, 136, 44)

Disk /dev/vdc: 225.5 GB, 225485783040 bytes
255 heads, 63 sectors/track, 27413 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00027f25

   Device Boot      Start         End      Blocks   Id  System
/dev/vdc1               1        9138    73398272   83  Linux

L'output della stampa parziale è tutto

Model: Virtio Block Device (virtblk)
Disk /dev/vda: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  32.2GB  32.2GB  primary  ext4         boot


Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 2147MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      1049kB  2146MB  2145MB  primary  linux-swap(v1)


Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 225GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  75.2GB  75.2GB  primary  ext4

Quello che voglio ottenere è semplicemente aumentare o ridimensionare la partizione / dev / vdc1 in modo che utilizzi l'intero spazio fornito dal dispositivo a blocchi virtuale / dev / vdc. Il problema è che quando provo a farlo con parted, si lamenta:

(parted) select /dev/vdc                                                  
Using /dev/vdc
(parted) print                                                            
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 225GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  75.2GB  75.2GB  primary  ext4

(parted) resize 1                                                         
WARNING: you are attempting to use parted to operate on (resize) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs.  We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
Start?  [1049kB]?                                                         
End?  [75.2GB]? 224GB                                                     
Error: File system has an incompatible feature enabled.  Compatible features are has_journal, dir_index, filetype, sparse_super and large_file.  Use tune2fs
or debugfs to remove features.

Quindi cosa posso fare? Questo è un sistema di produzione senza testa. Qual è un modo sicuro per far crescere questa partizione? POSSO però smontarlo, quindi non è questo il problema.

Modifica: Cfdisk ha mostrato un piccolo spazio libero non partizionato, quindi la partizione (contrassegnata come "boot" e Linux / ext3) e poi il resto dello spazio non partizionato. Dopo aver cancellato la partizione e averla creata nuovamente usando cfdisk - cfdisk mostra una grande area partizionata (che andrebbe bene con me) e come file system digitare solo "Linux"

Resize2fs restituisce questo errore resize2fs 1.41.11 (14-Mar-2010) resize2fs: Bad magic number in super-block while trying to open /dev/vdc1 Couldn't find valid filesystem superblock

Risposte:


18

Questa pagina indica come smontare, eliminare, ricreare la partizione con la dimensione desiderata e utilizzare resize2fs per estendere la partizione. La pagina man resize2fs è d'accordo.

So che "elimina la partizione" sembra spaventoso, ma non modifica affatto i dati. Cambia solo la cosa che fa riferimento al contenitore. Fintanto che NON mkfs.ext4dovresti stare bene.

Il punto iniziale della partizione deve essere lo stesso di quello che era o il sistema operativo non saprà come interpretare ciò che sta dietro. Il punto finale può quindi essere più avanti per creare una partizione più grande.

Penso che l'errore nel commento sia legato allo spostamento del punto iniziale. Devi avviarlo esattamente nello stesso punto in cui è stato avviato. Il punto finale può spostarsi.

Ringraziamo psusi per aver suggerito fdisk invece di cfdisk e aver confermato il problema del punto di partenza.


Bene, ho cancellato la partizione con cfdisk e ne ho creata una nuova. Ma allora non sono riuscito a ridimensionarlo e non posso più montarlo.
Mischa,

resize2fs 1.41.11 (14-Mar-2010) resize2fs: Numero magico errato nel superblocco durante il tentativo di aprire / dev / vdc1 Impossibile trovare il superblocco del filesystem valido.
Mischa,

1
in realtà, cfdisk ha mostrato un piccolo spazio libero non partizionato, quindi la partizione (contrassegnata come "boot" e Linux / ext3) e poi il resto dello spazio non partizionato. Dopo aver cancellato la partizione e averla creata nuovamente usando cfdisk - cfdisk mostra una grande area partizionata (che andrebbe bene con me) e come file system digitare solo "Linux".
Mischa,

8
È necessario ricreare la partizione in modo che inizi esattamente nello stesso settore che aveva originariamente. Non puoi farlo con cfdisk. Usa fdisk o parted e mettili in modalità settore.
psusi

1
c'è un modo per ridimensionare la partizione ext4 in modo da spostare l'inizio della partizione? Perché ho spazio libero davanti all'attuale partizione ext4, non sul retro ... fortunatamente ho più spazio libero rispetto alla partizione è grande, quindi immagino di poter fare quanto segue: copiare l'intera partizione in primo piano, rimuovere quello sul retro e quindi ridimensionare quello spostato sull'intera dimensione? ma al momento mi sembra un
attacco

6

Un esempio:

/ dev / sdb2 è la partizione / boot. È di 100 MB, che è piuttosto piccolo. Per aumentare questa partizione ext4 su un sistema in esecuzione, fare (come root o sudo):

umount / boot

parted / dev / sdb

(parted) stampa

Modello: ATA Patriot Torqx 2 (scsi)
Disco / dev / sdb: 32.0GB
Dimensione del settore (logico / fisico): 512B / 512B
Tabella delle partizioni: msdos

Numero Inizio Fine Dimensione Tipo File system Flag
1 1049 kB 12,9 GB 12,9 GB tipo primario = 83
2 12,9 GB 13,0 GB 107 MB Tipo ext4 primario = 83

(parted) rm 2

(parted) mkpart

Tipo di partizione? primaria / esteso?
tipo di file system primario ? [ext2]?
Inizio? 12,9 GB
Fine? 13.4GB

(separato) chiuso

resize2fs / dev / sdb2

resize2fs 1.42.6 (21-set-2012) Il
filesystem su / dev / sdb2 è montato su / boot; è necessario il ridimensionamento online
old_desc_blocks = 1, new_desc_blocks = 2
Il filesystem su / dev / sdb2 ora è lungo 498688 blocchi.

fatto!

Tutti i dati rimangono al loro posto. / boot è pronto per l'uso e 472 MB di grandi dimensioni (in parte non è così sicuro con le dimensioni, leggi il manuale per sapere perché)

Tutti i dati sono stati sottoposti a backup in precedenza, ma solo per precauzione. Consiglio di fare lo stesso.

Utilizzare il comando seguente per trovare il processo che sta interrompendo lo smontaggio di / boot se fallisce:

lsof / boot

In bocca al lupo!


2
È necessario utilizzare unità di settori, non GB, per essere sicuri di trovarlo esattamente nello stesso posto.
psusi,

0

Se provi a eliminare e ricreare una partizione, quando la partizione è iniziata al di sotto del 2048 potresti avere problemi come me resize2fs.

Couldn't find valid filesystem superblock.

Dalla versione 2.17.2 di fdisk, fdisk IIUC ti costringe a iniziare dal 2048 per assicurarti che il tuo disco rigido sia "allineato correttamente". Quindi, se la partizione originale è iniziata prima del 2048, sei pronto per un giro accidentato che prova a ricreare la partizione.

Il miglior approccio è di risincronizzare durante la clonazione di un disco .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.