Comment puis-je augmenter la taille de la partition racine d'un système lors de l'exécution?
J'ai une partition qui n'est pas allouée après la partition racine (qui est également ext4), comment puis-je ajouter cet espace non alloué à l'espace alloué à la partition racine sans avoir à arrêter le serveur?
partitioning
ext4
BonboBingo
la source
la source
Réponses:
Interface graphique (Ubuntu 14.04 et versions ultérieures) : GParted v0.17 et versions ultérieures fournit une interface graphique intéressante à cet effet. (Les anciennes versions refuseront de redimensionner une partition montée).
Ligne de commande (quelle que soit la version d'Ubuntu): Cette opération comporte trois étapes.
Étape 1. La partition doit d'abord être redimensionnée. Si vous utilisez LVM, c'est facile et vous savez probablement comment procéder. Si vous utilisez des partitions classiques, le processus est un peu plus compliqué et peut nécessiter un redémarrage (bien que vous ne deviez jamais démarrer un autre système ou un live CD).
Voici comment je le fais: je l’utilise tout
fdisk
d’abord pour supprimer la partition (l’idée est que les données sur le disque seront préservées), puis recréez-la soigneusement avec une taille supérieure à la même position.Exemple:
De nouveau, il est essentiel que la nouvelle partition commence par le même bloc que l’ancienne. L'identifiant doit également correspondre (83 pour les systèmes Linux). Soyez prêt à perdre toutes vos données à la moindre faute de frappe.
Pour plus de sécurité, vous pouvez également restaurer l'indicateur de démarrage (qui, selon certains, est toujours requis sur Wikipédia ) en appuyant sur
a
.Consultez la section des commentaires pour savoir quoi faire si votre partition de swap vous gêne.
A présent, il devrait être clair pourquoi les gens recommandent d’utiliser un CD live. ;-)
Étape 2. Comme
fdisk
vous l’a rappelé utilement, vous devez recharger la table de partition avant de continuer. Le moyen le plus sûr est simplement de redémarrer; mais vous pouvez aussi utiliserpartprobe
oukpartx
(plus d'informations) .Étape 3. Une fois la partition redimensionnée et la table de partition rechargée, il
resize2fs
suffit de s’exécuter sur le système de fichiers et vous pouvez le faire même lorsqu’elle est montée en tant que partition racine.Exemple:
la source
fdisk
dit,partprobe
oukpartx
peut fonctionner au lieu d'un redémarrage; voir aussi cette question . Même si vous redémarrez, la solution reste préférable à l’utilisation d’un live CD en ce qui concerne les temps morts, où un simple redémarrage peut durer moins de 10 s pour une machine virtuelle. C'est aussi plus rapide en temps d'opérateur, c'est pourquoi j'utilise habituellement cette approche moi-même. :)free -h
), désactivez le swap (swapoff /dev/sda2
), modifiez la table de partitions (en supprimant et recréant la partition de swap) et 1) redémarrez ou 2) rechargez la table de partitions, puis àswapon
nouveau. (Si la mémoire est insuffisante pour désactiver temporairement le swap, vous pouvez toujours créer et activer une nouvelle partition swap (/dev/sda3
), puis permutez-lasda2
; mais vous devrez alors mettre à jour/etc/fstab
le nouveau nom du périphérique.)Il est possible de redimensionner en ligne un système de fichiers ext4, même s'il s'agit de votre partition racine. Utilisez la
resize2fs
commande.EDIT: la réduction en ligne n'est pas autorisée:
la source
man resize2fs
:The resize2fs program does not manipulate the size of partitions. If you wish to enlarge a filesystem, you must make sure you can expand the size of the underlying partition first. This can be done using fdisk(8) by deleting the partition and recreating it with a larger size or using lvextend(8),if you're using the logical volume manager lvm(8).
Cette question concerne le redimensionnement de la partition , pas du système de fichiers . La distinction est subtile mais très importante.The resize2fs program will resize ext2, ext3, or ext4 file systems. It can be used to enlarge or shrink an unmounted file system located on device. If the filesystem is mounted, it can be used to expand the size of the mounted filesystem, assuming the kernel supports on-line resizing. (As of this writing, the Linux 2.6 kernel supports on-line resize for filesystems mounted using ext3 and ext4.).
fdisk
quand celagrowpart
se fera très facilement pour vous.Une solution plus simple - utilisez
growpart <device> <partition>
:Comme toujours, sauvegardez votre partition table (
sfdisk -d /dev/xvda > partition_bak.dmp
) au cas où.la source
sfdisk: /dev/nvme0n1p5: does not contain a recognized partition table
(en utilisant le double démarrage avec Windows)gparted
pour cela.apt-get install cloud-utils
/dev/nvme0n1
. p5 est la partition 5 sur ce disque. Comparez avec les tranches de disque BSD traditionnelles, elles utilisent un schéma de numérotation similaire.Oui, vous pouvez réduire / déplacer / agrandir une partition racine en ligne sans redémarrage (ni livecd, ni clé USB): consultez cette réponse . C'est très bien écrit et facile à suivre, bien que assez long et un peu risqué. Donc, si vous voulez seulement agrandir votre partition ext4, vous pouvez vous en tenir aux
resize2fs
solutions de travail conventionnelles .La solution générale que j'ai lue fonctionnera sur n'importe quel type de solution dédiée ou VPS, par exemple.
TLDR; cette solution implique de
pivot_root
detmpfs
sorte que vous pouvez enumount
toute sécurité votre partition racine vivre et jouer avec elle. Une fois cela fait, vouspivot_root
revenez sur votre nouvelle partition racine.Cela permet à peu près toutes les manipulations sur le système de fichiers racine (déplacez-le, changez le système de fichiers, changez son périphérique physique ...).
Aucun redémarrage n'est requis dans le processus, ce qui permet de contourner la limitation de l'
resize2fs
impossibilité de réduire lesext4
partitions.Personnellement, je l'ai utilisé, et cela fonctionne très bien aussi sur le système Debian, donc ça devrait fonctionner sur Ubuntu. Je suis très surpris de ne pas voir cette solution en profondeur un peu plus liée aux nombreuses questions des sites Web stackexchange traitant du même problème.
Remarque: Bien sûr, si vous souhaitez développer votre partition, un simple
resize2fs
suffira, comme indiqué à de nombreux endroits et dans d'autres réponses ici.la source
Vous pouvez également simplement utiliser GParted - tant que la partition que vous redimensionnez n'est pas celle à partir de laquelle vous avez démarré - sinon, je suggère que l' option de live CD soit un peu plus facile pour les débutants.
GParted effectue essentiellement toutes les étapes - en se basant uniquement sur une interface graphique.
la source
Je viens de terminer le redimensionnement d’une partition racine ext4 sur un système actif alors que la racine était montée.
la source
Je voudrais faire une extension sur la réponse de @ Søren Løvborg: étendre la partition avec une partition swap présente.
D'abord la disposition du disque après l'avoir étendu:
Donc, sda1 doit être étendu avec l’espace libre à la fin du disque, mais la partition de swap est entre eux. Voici comment vous pouvez le faire:
Nous devons d’abord désactiver le swap. Vérifiez combien il est utilisé et si vous pouvez l'éteindre.
swap n'est pas utilisé ici pour pouvoir l'éteindre
Maintenant nous allons changer la table de partition:
(note: si vous commencez par avoir la première partition au secteur 63 au lieu de 2048, vous devez ajouter l'option
-c=dos
)Remarque: la taille de sda1 correspond au nombre total de secteurs moins la taille de secteur de votre partition d'échange: 14335999-2093058 = 12242941
Comme le mentionne fdisk: le noyau utilise toujours l'ancienne table de partition, nous devons donc le recharger.
Maintenant, nous devons exécuter resize2fs sur sda1 (ne l'oubliez pas!)
Maintenant, les choses ne sont pas encore terminées. Comme vous l'avez probablement remarqué, sda2 est partitionné sous le type Linux (Ext4). Pour une raison quelconque, fdisk n’a aucun moyen de choisir le type. Nous devons donc l'alterner en utilisant
cfdisk
Choisissez sda2 et remplacez le type par
82 Linux swap / Solaris
et assurez-vous de l'écrire (tapez oui pour confirmer)Maintenant, nous pouvons réactiver l'échange
Et enfin allumez-le:
La seule chose à faire est de mettre à jour fstab pour monter automatiquement la partition de swap au démarrage
Et remplacez l’UUID de la partition de swap par la sortie ci-dessus:
Maintenant tout va bien et vous pouvez redémarrer sans problèmes.
la source
mkswap
&swapon
doivent être exécutées sur sda2. J'ai commis une erreur au début de mon message:swapoff
doit être exécuté sur sda5. Les commentaires sont toujours les bienvenus, c'était difficile à noter.cryptdisks_stop
, puis mettre à jour / etc / crypttab au lieu de/etc/fstab
et redémarrer les cryptdisks aveccryptdisks_start
.Je viens de faire cela avec succès sans
umount
,pivot_root
ou le retrait temporaire de la partition principale, en utilisant quittai 3.2 sur Ubuntu 16.04, noyau 4.4.0. Par prudence, j'ai tout fait depuis une console virtuelle avec réseau désactivé, et j'ai pris un instantané au cas par cas, mais cet instantané n'était pas nécessaire. J'aurais donc pu le faire aussi bien via SSH sans changer de niveau d'exécution.Déterminer la taille de la partition:
parted /dev/sda1 print | egrep "Disk.*GB"
Passez éventuellement en mode multi-utilisateur sans mise en réseau (doit être effectué à partir d'une console, pas de SSH):
Prenez éventuellement un instantané de machine virtuelle pour faire preuve de prudence.
Redimensionner la partition:
Redimensionner le système de fichiers:
resize2fs /dev/sda1
Si quelque chose ne va pas, vous pouvez restaurer votre instantané ici. Si tout va bien, le retour à la normale runlevel (obtenue ci - dessus) - normalement 5:
init 5
. Il peut être préférable de faire un redémarrage complet à ce stade pour vous assurer que tout revient correctement (j’ai eu un problème de date / ntp par la suite).la source
Suivez ces étapes.
su
parted
p
pour voir les partitions disponiblesrm PARTITION NUMBER
pour créer de l'espace libre.resizepart ROOT NUMBER
et redémarrez le système si nécessaireparted
en tapantexit
et dans le type de terminalpartprobe
et appuyer sur enter (cela peut être fait même après le redémarrage)resize2fs /dev/sda PARTITION NUMBER
et profiter de la partition racine spacieuse.la source
Comme indiqué précédemment:
il est possible de développer en direct à partir d'un système racine (pas de difficulté, la section de démarrage ne doit pas être déplacée)
la réduction d'une partition racine en direct doit être effectuée à partir d'un périphérique d'amorçage externe (démarrage à partir du cd / clé USB du système en direct), comme s'il y avait un problème, une non-concordance .. quoi que ce soit..votre système se bloque, doit être redémarré capable de démarrer correctement.
Toute sorte de "mais je l’ai fait et ça marche" est un pur hasard.
la source