web-dev-qa-db-fra.com

Comment redimensionner / agrandir / agrandir une partition non-LVM ext4

J'ai déjà cherché dans les forums, mais je n'ai pas trouvé de réponse appropriée:

J'ai un serveur Ubuntu 10.04 en tant que KVM hôte et un système invité exécutant également 10.04. Le système hôte utilise LVM. Trois volumes logiques sont fournis à l'invité sous forme de périphériques de bloc virtuel: un pour /, un pour/home et un pour le swap. L'invité avait été partitionné sans LVM.

J'ai déjà élargi le volume logique dans le système hôte: l'invité voit avec succès le disque virtuel plus grand. Cependant, ce disque virtuel contient une "bonne vieille" partition, qui a toujours l’ancienne petite taille.

La sortie de fdisk -l est

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

La sortie de l'impression partielle tout est

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

Ce que je veux réaliser est de simplement agrandir ou redimensionner la partition/dev/vdc1 afin qu’elle utilise tout l’espace fourni par le périphérique de bloc virtuel/dev/vdc. Le problème est que, lorsque j'essaie de le faire avec parted, il se plaint:

(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.

Alors qu'est-ce que je peux faire? C'est un système de production sans tête. Quel est un moyen sûr de développer cette partition? Je peux démonter, cependant - alors ce n'est pas le problème.

Edit: Cfdisk affiche un petit espace non partitionné d’espace libre, puis la partition (marquée comme "boot" et Linux/ext3), puis le reste de l’espace non partitionné. Après la suppression de la partition et sa création à nouveau à l'aide de cfdisk - cfdisk affiche une grande zone partitionnée (ce qui me convient) et sous forme de système de fichiers uniquement "Linux"

Resize2fs renvoie cette erreur 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

20
Mischa

This page indique comment procéder: démonter, supprimer, recréer la partition avec la taille souhaitée et utiliser resize2fs pour étendre la partition. La page de manuel resize2fs convient.

Je sais que "supprimer la partition" semble effrayant, mais cela ne modifie pas du tout les données. Cela change simplement la chose qui référence le conteneur. Tant que vous n'avez pas mkfs.ext4 vous devriez aller bien.

Votre point de départ de la partition doit être identique à ce qu'il était ou le système d'exploitation ne saura pas interpréter ce qu'il se cache derrière. Le point final peut alors être plus long pour créer une partition plus grande.

Je pense que l'erreur dans le commentaire est liée au déplacement du point de départ. Vous devez le démarrer exactement au même moment que vous avez commencé. Le point final peut se déplacer.

Merci à psusi d'avoir suggéré fdisk au lieu de cfdisk et d'avoir confirmé le problème du point de départ.

18
RobotHumans

Un exemple:

/ dev/sdb2 est la partition/boot. C'est 100 MB, ce qui est plutôt petit. Pour augmenter cette partition ext4 sur un système en cours d'exécution (en tant que root ou Sudo):

umount/boot

séparé/dev/sdb

impression (séparée)

Modèle: ATA Patriot Torqx 2 (scsi)
Disque/dev/sdb: 32,0 Go
Taille du secteur (logique/physique): 512B/512B
Table de partition: msdos

Numéro Début Fin Taille Type Système de fichiers Drapeaux
1 1049 Ko 12,9 Go type principal = 83
2 12.9GB 13.0GB 107Mo primaire ext4 type = 83

(séparé) rm 2(parted) mkpart

Type de partition? primaire/étendu? primaire
Type de système de fichiers? [ext2]?
Début? 12,9 Go
Fin? 13,4 Go

(séparé) quitter

resize2fs/dev/sdb2

resize2fs 1.42.6 (21-Sep-2012)
Le système de fichiers de/dev/sdb2 est monté sur/boot; redimensionnement en ligne requis
old_desc_blocks = 1, new_desc_blocks = 2
Le système de fichiers sur/dev/sdb2 contient maintenant 498688 blocs.

terminé!

Toutes les données restent en place./boot est prêt à l'emploi et 472MB gros (le format n'est pas sécurisé avec les tailles, lisez le manuel pour savoir pourquoi)

Toutes les données étaient sauvegardées auparavant, mais uniquement à titre de précaution. Je recommande de faire la même chose.

Utilisez la commande suivante pour trouver le processus qui arrête le démontage de/boot en cas d'échec:

lsof/boot

Bonne chance!

6
user157258

Si vous essayez de supprimer et de recréer une partition, lorsque votre partition a démarré en dessous de 2048, vous risquez de rencontrer des problèmes similaires à ceux que j'avais avec resize2fs.

Couldn't find valid filesystem superblock.

Depuis fdisk version 2.17.2 , fdisk IIUC vous oblige à commencer à partir de 2048 afin de vous assurer que votre disque dur est "correctement aligné". Donc, si votre partition d'origine a démarré avant 2048, vous vous retrouvez face à un parcours cahoteux, qui tente de recréer la partition.

La meilleure approche consiste à rsync lors du clonage d'un disque .

0
hendry