139 votes

Comment étendre une partition et un système de fichiers ext4 ?

J'ai un disque de 400 Go avec une partition ext4 de 320 Go. Je voudrais agrandir la partition ext4 pour utiliser l'espace restant (80 Go d'espace libre).

+--------------------------------+--------+
|             ext4               |  Free  |
+--------------------------------+--------+

Comment ai-je pu faire ça ?

J'ai vu des gens utiliser resize2fs mais je ne comprends pas si ça redimensionne la partition.

Une autre solution serait d'utiliser fdisk mais je ne veux pas effacer ma partition et perdre des données. Comment pourrais-je simplement agrandir la partition sans perdre aucun fichier ?

Note : Je parle d'une partition de données non montée sans LVM et j'ai des sauvegardes, mais je voudrais éviter de passer du temps sur la récupération.

133voto

Flup Points 7496

Vous devez commencer avec la partition démontée. Si vous ne pouvez pas la démonter (par exemple, c'est votre partition racine ou quelque chose d'autre dont le système a besoin pour fonctionner), utilisez quelque chose comme CD de sauvetage du système à la place.

  1. 実行 parted ou gparted si vous préférez une interface graphique, et redimensionnez la partition pour utiliser l'espace supplémentaire. Je préfère gparted car il vous donne une belle représentation graphique, très similaire à celle que vous avez dessinée dans votre question.

  2. resize2fs /dev/whatever

  3. e2fsck /dev/whatever (juste pour savoir si vous êtes du bon côté)

  4. Remontez votre partition.

Bien que je n'aie jamais vu cet échec, sauvegardez d'abord vos données !

67voto

Chris Stryczynski Points 926

使用方法 growpart y resize2fs exemple :

$ growpart /dev/sda 1
CHANGED: partition=1 start=2048 old: size=39999455 end=40001503 new: size=80000991,end=80003039
$ resize2fs /dev/sda1
resize2fs 1.45.4 (23-Sep-2019)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 5
The filesystem on /dev/sda1 is now 10000123 (4k) blocks long.

37voto

Ricardo Points 1

Oui, vous pouvez faire croître les fs EXT4 en ligne si vous avez une partition déjà triée. Avez-vous la partition triée ? Avez-vous LVM ?

sudo resize2fs /dev/drive_to_grow

fdisk redimensionnera votre partition, c'est vrai, mais si c'est une partition racine (ou en fait n'importe quelle partition montée) elle devra être démontée d'abord. Donc hors ligne très probablement !

Comme pour tout ce qui concerne les opérations sur disque/fs, je recommande fortement d'avoir une sauvegarde et un processus de récupération testé et bien compris.

13voto

WSR Points 139

Remarque : sur certains serveurs VDS, il se peut que la partition racine ne soit pas primaire et que vous deviez d'abord redimensionner le conteneur de partitions étendues.

Par exemple, vous venez de mettre à jour votre plan et vous avez quelque chose comme :

Disk /dev/vda: 83886080s
Number  Start    End        Size       Type      File system  Flags
1      2048s    194559s    192512s    primary   ext2         boot
2      196606s  51197951s  51001346s  extended
5      196608s  51197951s  51001344s  logical   ext4

Ici /dev/vda2 - est votre conteneur étendu. Et /dev/vda5 - partition principale que nous devons redimensionner à l'espace disponible complet.

La manière la plus simple :

apt-get -y install parted
parted /dev/vda unit s print all # print current data for a case
parted /dev/vda resizepart 2 yes -- -1s # resize /dev/vda2 first
parted /dev/vda resizepart 5 yes -- -1s # resize /dev/vda5
partprobe /dev/vda # re-read partition table
resize2fs /dev/vda5 # get your space

6voto

shodanshok Points 42743

La réponse acceptée est quelque peu dépassée : le redimensionnement d'un système de fichiers ext4 est mieux fait en ligne plutôt que hors ligne, car le chemin de code d'expansion en ligne est beaucoup plus couramment utilisé que celui hors ligne.

Le plus difficile est probablement d'étendre la partition sous-jacente, à moins que vous n'utilisiez LVM. et vous avez de l'espace libre dans votre groupe de volumes. Pour étendre une partition en ligne, vous pouvez utiliser fdisk o parted ; à l'époque, il fallait courir kpartx <device> pour informer le noyau de ce changement. Si vous utilisez LVM, vous devez pvresize la partition qui vient d'être redimensionnée avant lvresize le volume.

Enfin, vous pouvez émettre resize2fs votre système de fichiers.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X