Comment puis-je augmenter la taille de la partition ext4 sur Debian

26

J'ai un lecteur avec cette configuration:

fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000f1b8b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        2612    20971520   83  Linux
/dev/sda3           60736       60801      525312   82  Linux swap / Solaris

Il y a 478 Go d'espace non alloué, comment pourrais-je ajouter cet espace à / dev / sda1 sans perdre les données qui se trouvent actuellement sur / dev / sda1? (le système de fichiers est ext4).

REMARQUE: c'est un serveur avec seulement SSH, pas d'interface graphique pour exécuter des trucs comme gparted.

Seb
la source
Je peux démarrer le serveur par net et l'utiliser pendant que le lecteur est démonté.
Seb
Cet élément particulier a été couvert à plusieurs reprises au sein des sites SE. Il serait préférable de faire un peu plus de recherche avant de poster une question.
mdpc
Voir aussi askubuntu.com/a/937351/621883 en particulier la réponse contenant growpart et resize2fs m'a été utile.
klor

Réponses:

38

Agrandir la partition: fdisk -u /dev/sda.

p pour imprimer la table de partition, notez le nombre, début, fin, type de sda1.

Supprimez-le d::

Recréez-le avec le même numéro (1), commencez et tapez mais avec une fin plus grande (en prenant soin de ne pas chevaucher avec d'autres partitions). Essayez d'aligner les choses sur une limite de mégaoctets pour la fin , faites-en un multiple de 2048 moins 1. Modifiez le type si nécessaire avec t(pour les partitions contenant un système de fichiers extXou btrfs, la valeur par défaut 83est très bien).

Puis wécrire et qquitter.

La table des partitions aura été modifiée mais le noyau ne pourra pas en tenir compte car certaines partitions sont montées.

Cependant, si les partitions en cours d'utilisation étaient uniquement agrandies, vous devriez être en mesure de forcer le noyau à prendre la nouvelle disposition avec:

partx /dev/sda

Si cela échoue, vous devrez redémarrer. Le système devrait démarrer très bien.

Ensuite, redimensionnez le système de fichiers afin qu'il se propage à l'étendue de la partition agrandie:

resize2fs /dev/sda1

Ce ext4qui fonctionnera très bien même sur un FS en direct.

Stéphane Chazelas
la source
Je sais que c'est ancien, mais cela conservera-t-il les données si vous supprimez la partition?
Canadian Luke REINSTATE MONICA
3
@CanadianLuke, oui, la suppression de la partition dans fdisk modifie uniquement la table de partition. Si vous le recréez de la même taille, il n'y aura aucun changement du tout. Les données ne sont jamais modifiées, sauf si vous réduisez une partition et créez une autre partition logique ou étendue au milieu de ce que votre partition était, auquel cas l'enregistrement de partition pour cette partition étendue / logique sera écrit sur certaines données.
Stéphane Chazelas
Cela fonctionne également très bien pour les partitions ntfs (avec un volume existant, avec des données).
Kenny Evitt
Cela semble raisonnable, mais que se passe-t-il si j'ai des partitions Extended, Linux LVM et Linux swap / Solaris qui commencent à la fin de la partition Linux? Dois-je supprimer ces partitions>? Je crains que dans ce cas, le système de fichiers ne démarre pas, car il peut utiliser Linux LVM par exemple au même début et à la même fin. Et je ne veux pas non plus perdre de données.
cyan
@cyan redimensionner un volume logique LVM avec un FS ext4 dessus, ou redimensionner une partition utilisée comme volume physique pour LVM serait des questions différentes avec des procédures différentes.
Stéphane Chazelas
7

Vous ne pouvez pas le faire en toute sécurité pendant que la partition est montée, ce qui signifie que vous devez démarrer une autre partition et le faire à partir de là.

gpartedest une interface graphique agréable et facile à cet effet. Dans notre échange de commentaires supprimé, vous avez mentionné qu'il ne démarrerait pas en raison de "impossible d'accéder à l'affichage" - cela implique que vous n'êtes pas dans X; puisqu'il s'agit d'une interface graphique, cela ne fonctionnera pas sans cela.

Bien sûr, si vous n'avez pas d'autre partition à utiliser, vous aurez besoin d'un CD live ou quelque chose - je pense qu'ils sont généralement fournis avec gparted. Votre meilleur pari est probablement le véritable CD live gparted , qui semble avoir une dernière version stable raisonnablement récente (et qui tiendra sur un CD , ce qui est bien car le "live CD" devient rapidement le "live DVD").

Je n'ai jamais eu un problème avec Gparted, mais bien sûr, sauvegardez d'abord votre important tish.

boucle d'or
la source
Je ne peux pas utiliser gparted car je n'ai qu'un accès SSH (c'est un serveur sans tête). Je peux démonter le disque dur, car le système ne fonctionne pas sur / dev / sda.
Seb
1
Si vous n'avez pas d'accès physique au système et que vous ne pouvez donc pas démonter et modifier la partition de manière utile, je pense que vous n'avez pas de chance, ou du moins en territoire très sommaire - par exemple, vous pourriez essayer d'utiliser fdiskpendant le montage, sélectionner (x) pert, (c) suspendre le nombre de cylindres. Mais je ne l'ai pas fait et ne le ferais que s'il n'y avait absolument pas d'autre choix.
goldilocks
Je viens de dire que je peux démonter la partition. Je peux même redémarrer tout le serveur en net et accéder à un autre serveur, ce qui reviendrait à utiliser un Live CD (juste sans interface graphique).
Seb
@Seb: mon mauvais, désolé.
goldilocks
2

Je sais que c'est un problème très ancien, mais beaucoup de gens recherchent cette solution.

Pour cet exemple, vous avez la situation typique suivante. Au début se trouve une seule partition, et à la fin une partition de swap se trouve. ce n'est pas bon car le swap peut être lourdement chargé, et la fin du disque en rotation est la partie la plus lente. ce que je propose?

  1. Créez une partition de démarrage au début. Pourquoi au début? car de nombreux outils ont des problèmes avec la fin d'un grand disque au-dessus de la barrière de 2 To. Après la partition de démarrage doit être la partition d'échange. C'est pour la performance. Le reste du disque doit être utilisé pour d'autres partitions.

Mais qu'en est-il de cette situation? Je ne recommande pas d'étendre sda1. Je suggère de créer d'autres partitions après sda1 et sda2, montées en tant que /homeet /usr. Sur ces répertoires sont stockés le plus de données utilisateur et système, et il est possible de déplacer en toute sécurité les données de ces répertoires vers de nouvelles partitions.

  1. Mais. (deuxième "mais") si vous voulez toujours conserver votre structure actuelle, vous devez d'abord supprimer la partition de swap. Vous devriez faire du swapoff, remarquez ceci dans /etc/fstab. si swapon vous dit (voir man) qu'aucun swap n'est utilisé, vous pouvez le supprimer par l'outil de partition (fdisk ou similaire).

    Lorsque vous n'avez pas cette partition, vous pouvez agrandir votre sda1. L' utilisation fdiskvous devriez d' abord imprimer la partition. C'est pour se rappeler où ça commence. Ensuite, supprimez la partition à l'aide de la touche «d». Pas de panique, rien n'est écrit sur le disque dur :). Après l'impression, vous voyez, aucune partition n'existe sur le disque.

    Créez ensuite une nouvelle partition, mais soyez prudent. Voir sur quel secteur la partition d'origine a commencé. Écrivez le même numéro. Après cela, regardez à la fin. fdiskvous invite à indiquer le dernier secteur disponible. Utilisez la calculatrice et affectez dans votre esprit la quantité de swap dont vous avez besoin en kilo-octets. Multipliez-le par 2 et soustrayez ce nombre du dernier numéro de secteur demandé par fdisk. Créer une partition. Imprimez ceci (il est toujours dans la mémoire temporaire fdisk), et regardez tout va bien.

    Après cette pression sur la touche «w», cela va vraiment écrire un nouveau partitionnement sur le disque. Vous verrez toutes les informations synchronisées ou la synchronisation a échoué. En cas d'échec, vous pouvez appeler la commande partx / dev / sda pour effectuer la synchronisation. S'il échoue toujours, vous devez redémarrer votre système. Après le redémarrage, vous avez préparé une partition plus grande, mais le système de fichiers est encore plus petit. Vous devriez le faire pousser. EXT4 est évolutif à la volée :), utilisez-le resize2fs /dev/sda1pour le faire.

    Vous n'avez pas besoin de redémarrer le redémarrage, etc. Enfin, vous devez restaurer la partition de swap. Utilisez simplement fdisk à nouveau, créez une nouvelle partition comme échange. Après avoir écrit «w», le périphérique sda2 sera restauré. Préparez la structure de swap dessus mkswap /dev/sda2, supprimez les remarques pour swap /etc/fstabet enfin faites swapon -a. Regardez en utilisant swapon ou la commande top, le swap est activé.

Je sais, c'est une très longue explication. J'espère qu'il sera utilisable pour tout. Remarquez, à mon avis, le système de fichiers xfs est beaucoup mieux, malheureusement ce fs ne prend pas en charge la réduction sans copie temporaire à un autre endroit, mais la réduction est rarement utilisée. C'est bien, xfs prend extrêmement peu de place pour ses propres métadonnées, et est plus rapide à bien des égards par rapport à ext4.

Un autre indice, il vaut mieux utiliser du LVM comme couche intermédiaire pour le partitionnement. après cela, tout redimensionnement est beaucoup plus facile. Les performances sont comparables, bien sûr, vous pouvez utiliser une combinaison de gestion du disque dur. vous pouvez utiliser dans les partitions brutes communes et LVM.

Znik
la source
Un grand merci à slm pour ses jolies corrections de langue: D
Znik