Come ridimensionare / ingrandire / crescere una partizione ext4 non LVM

18

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

Ho un Ubuntu Server 10.04 come host KVM e un sistema guest, che esegue anche la 10.04. Il sistema host utilizza LVM e ci sono tre volumi logici, che vengono forniti al guest come dispositivi di blocco virtuali: uno per /, uno per / home e uno per lo scambio. 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 ridotte.

L'output di fdisk -l è

[email protected]:/$ 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 di parted print all è

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 usi l'intero spazio fornito dal dispositivo di blocco virtuale / dev / vdc. Il problema è che quando provo a farlo 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 smontare, però - quindi questo non è il problema.

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

Resize2fs restituisce questo errore % Co_de%

    
posta Mischa 23.03.2012 - 08:59

3 risposte

18

Questa pagina indica che il modo per farlo è smontare, eliminare, ricreare il 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 fai mkfs.ext4 dovresti stare bene.

Il punto di inizio della partizione deve essere lo stesso o il sistema operativo non saprà interpretare cosa c'è dietro. Il punto finale può quindi essere ulteriormente lungo per creare una partizione più grande.

Penso che l'errore nel commento sia legato allo spostamento del punto di partenza. È necessario avviarlo nello stesso punto esatto in cui è stato avviato. Il punto finale può muoversi.

Credito a psusi per suggerire fdisk invece di cfdisk e confermare il problema del punto di partenza.

    
risposta data RobotHumans 23.03.2012 - 11:26
5

Un esempio:

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

% Bl0ck_qu0te%      

(parted) rm 2

     

(parted) mkpart

     % Bl0ck_qu0te%      

(parted) esci

     

resize2fs / dev / sdb2

     % Bl0ck_qu0te%

fatto!

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

Tutti i dati sono stati salvati prima, ma solo come precauzione. Raccomando di fare lo stesso.

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

% Bl0ck_qu0te%

Buona fortuna!

    
risposta data user157258 09.05.2013 - 22:57
0

Se provi a eliminare & amp; ricreare una partizione, quando la tua partizione è iniziata al di sotto del 2048 potresti trovarti nei guai come in resize2fs .

Couldn't find valid filesystem superblock.

Da versione fdisk 2.17.2 , fdisk IIUC ti obbliga a iniziare dal 2048 per assicurarti il massimo l'unità è "allineata correttamente". Quindi, se la tua partizione originale è iniziata prima del 2048, hai bisogno di una corsa irregolare cercando di ricreare la partizione.

L'approccio migliore è rsync quando cloni un disco .

    
risposta data hendry 08.10.2013 - 04:55

Leggi altre domande sui tag