Comment puis-je redimensionner ma partition / (racine)?

171

Bien que ma carte SD ait une capacité de 16 Go, l’image sur laquelle j’ai flashé n’était que de 2 Go et, à présent, je ne peux voir que 2 Go d’espace de stockage sur le disque.

Comment puis-je redimensionner l'image afin d'avoir plus d'espace sur ma partition racine?

Jivings
la source
Merci ... excellent pour moi et n'a pas tanké mon système ... mais toujours un serveur web IRC et Apache et une capacité de 8
1
Pourquoi redimensionner une partition racine lorsque vous pouvez créer une nouvelle partition sur l’espace restant disponible sur la carte SD, puis la monter dans la partition racine, /mnt/storagepar exemple. Cela isole efficacement le système et les données et facilite la maintenance et la sauvegarde.
mbaitoff
2
@mbaitoff - parce que l'image système par défaut ne dispose que de 68 Mo d'espace libre, ce qui ne laisse pas beaucoup de place pour l'ajout de logiciels.
Jules
@Jules - Je ne demandais pas pourquoi on voudrait redimensionner une partition. A demandait pourquoi redimensionner la partition système au lieu de monter du stockage supplémentaire au point de montage de la partition système, isolant ainsi efficacement le système et les logiciels / données. Si vous voulez du stockage, montez l’espace SD restant sur /mnt/storage, si vous voulez des programmes - montez sur /opt/software/.
mbaitoff
@mbaitoff la plupart des programmes sont installés dans / usr, pas / opt / software. Les images prédéfinies ont le contenu de / usr dans la partition racine. Il semble donc essentiel d’augmenter la taille de la partition racine si vous souhaitez installer un logiciel autre que celui par défaut.
Jules

Réponses:

158

En supposant que vous utilisez Debian.

La version courte:

  1. Sauvegardez votre système
  2. Supprimez les partitions principale et swap (laissez la partition de démarrage seule)
  3. Recréez la partition principale pour utiliser l’espace disque restant (à l’exception de la partition de démarrage). Assurez-vous de réutiliser le même secteur de démarrage que la partition racine d'origine.
  4. redémarrer le système
  5. Redimensionnez la nouvelle partition racine de démarrage pour utiliser la taille de partition complète.

Instructions étape par étape

Commencez par faire une sauvegarde de votre carte SD en suivant les instructions fournies ici au cas où quelque chose se passerait mal.

À partir de la ligne de commande ou d’une fenêtre de terminal, entrez les informations suivantes:

sudo fdisk /dev/mmcblk0

puis tapez ppour lister la table de partition

vous devriez voir trois partitions. si vous regardez dans la dernière colonne intitulée Système, vous devriez avoir

  1. W95 FAT32
  2. Linux
  3. Échange Linux

notez le numéro de départ pour le partition 2, vous en aurez besoin plus tard. bien que cela reste probablement sur l'écran (juste au cas où).

type suivant dpour supprimer une partition.

Vous serez alors invité à indiquer le numéro de la partition à supprimer. Dans le cas ci-dessus, vous souhaitez supprimer les partitions d'échange Linux et Linux.

Alors tapez 2

puis tapez à dnouveau, puis tapez 3pour supprimer la partition de swap.

Vous pouvez maintenant redimensionner la partition principale.

tapez npour créer une nouvelle partition.

Cette nouvelle partition doit être une partition principale, tapez donc p.

Entrez ensuite 2lorsque vous êtes invité à entrer un numéro de partition.

Vous serez maintenant invité à indiquer le premier secteur de la nouvelle partition. Entrez le numéro de départ de l'étape précédente (la partition Linux)

Ensuite, vous serez invité pour le dernier secteur que vous pouvez simplement appuyer sur Entrée pour accepter le paramètre par défaut qui utilisera l'espace disque restant.

Tapez wpour enregistrer les modifications que vous avez apportées.

Ensuite, redémarrez le système avec la commande suivante:

sudo reboot

une fois que le système a redémarré et que vous êtes revenu à la ligne de commande, entrez la commande suivante:

sudo resize2fs /dev/mmcblk0p2

Remarque: cela peut prendre un certain temps (en fonction de la taille et de la vitesse de la carte), patientez-vous et laissez-le se terminer pour ne pas endommager le système de fichiers et recommencer à zéro.

Une fois cela fait, redémarrez le système avec la commande suivante:

sudo reboot

Vous pouvez maintenant vérifier que le système utilise toute la capacité de la carte SD en entrant la commande suivante:

df -h

Pourquoi ça marche:

La vraie magie ici est que vous supprimez les partitions racine et swap, puis ne recréez que la partition racine (en utilisant le secteur de démarrage d'origine) avant d'écrire les données sur le disque . En conséquence, vous n'effacez pas les données existantes de la partition racine.

En supprimant la partition de swap, vous permettez à la chambre de la partition racine de s’étendre au-delà de sa taille actuelle et de remplir la partie inutilisée du disque (en raison de l’emplacement des partitions, la partition racine est prise en sandwich entre les partitions de démarrage et de swap; simplement être redimensionné en laissant la partition de swap seule).

Vous redimensionnez ensuite (le système est sûr pour être exécuté sur un disque monté) du système de fichiers afin d’utiliser tout l’espace de la nouvelle partition racine.

ref:

Steve Robillard
la source
1
@Jivings si vous le faites correctement, vous ne perdez rien, mais c'est la raison pour laquelle j'ai effectué l'étape 1 de la sauvegarde.
Steve Robillard
2
D'après les commentaires, il semble que vous devriez également documenter pourquoi cela fonctionne, et pas seulement comment.
Jivings
1
@Jivings espérons que cela répond à vos préoccupations.
Steve Robillard le
9
Il semble très faux que vous deviez supprimer une partition pour la redimensionner.
Alex Chamberlain
5
@ AwesomeUser Vous ne le faites pas sur le mac, vous le faites sur le pi lui-même. En outre, si vous exécutez raspbian, vous pouvez démarrer pi et à partir de la ligne de commande, lancez la commande suivante sudo raspi-config et choisissez l'option de redimensionnement de la partition racine.
Steve Robillard
103

À l’aide de l’image bêta de Debian-Wheezy, un utilitaire de configuration intégré facilite les choses:

Il y a un utilitaire appelé raspi-config. Cela fonctionne au premier démarrage si vous êtes connecté directement au RPi. Si vous êtes sur SSH, vous pouvez le lancer manuellement en utilisant $ sudo raspi-config. (Je pense que vous pouvez relancer l'outil manuellement à tout moment).

La deuxième option de la boîte de dialogue bleue suivante est intitulée expand_rootfs"Développer la partition racine pour remplir la carte SD".

Si vous sélectionnez cette option, la partition racine à redimensionner remplira la carte lors du prochain démarrage de votre RPi.

Mise à jour pour 2015!

Je reviens à cette réponse avec une note de prudence: j'ai utilisé un tas de cartes SD de 16 Go, et je me suis fait avoir en mesurant au maximum ma partition pour remplir la carte que j'utilisais. Cela posait de nombreux problèmes lors du passage à une nouvelle carte qui (même s’il était indiqué comme étant de 16 Go) faisait environ 200 Mo de moins que la carte plus ancienne.

Cela est venu à une tête quand j'ai changé quelques RPis de v1 au nouveau modèle v2, qui utilise des cartes Micro SD.

Je laisse maintenant environ 1 Go libre pour être absolument sûr que mes images peuvent être commutées sans problème entre cartes SD.

Jon Egerton
la source
Ce processus a pris environ 10 minutes avec une carte de 16 Go sur mon Pi.
Der Hochstapler
5
C'est tellement plus simple que la réponse du haut. C'est la solution à utiliser.
James Skimming
@JamesSkimming: C'est la solution à utiliser pour l'image bêta de Debian-Wheezy. Pas pour les autres.
SF.
Cela ne fonctionne pas pour Raspbian lorsqu'il est installé à partir de NOOBS sur les cartes SD qui sont livrées avec des kits RPi. Lorsque vous essayez d'utiliser l'option de développement, elle indique qu'elle n'est pas prise en charge par cette configuration, mais depuis que vos noobs sont en train d'utiliser tout l'espace de toute façon ... le problème est que j'essaie de reflasher l'image de 8 Go sur une carte de 32 Go
Eoin Campbell
Raspi-config ne sait pas comment redimensionner la racine de Raspbian Wheezy. expand_rootfs comme vous l’avez suggéré. La réponse ci-dessus fonctionne comme un charme dans un système en direct et pas besoin de "laisser environ 1 Go".
GTodorov
28

Si vous n'êtes pas très à l'aise avec la ligne de commande, comme dans le cas de Steve Robillards, quelques applications d'interface graphique sont disponibles. En particulier, gparted fonctionne très bien.

Je pense qu'il est installé par défaut sur un LiveCD Ubuntu mais pas sur un système installé. Il y a bien sûr une solution facile pour cela: apt-get install gparted. Vous ne pouvez pas faire cela sur le Pi réel, car pour redimensionner des partitions, elles doivent être démontées.

La photo ci-dessous est en néerlandais, mais ne laissez pas cela gâcher le plaisir. C'est très facile à utiliser. Ceci est la mise en page de l’image debian par défaut sur une carte SD de 8 Go.

GParted

Cliquez avec le bouton droit sur les partitions pour les démonter, puis cliquez avec le bouton droit pour redimensionner ou déplacer la partition. Vous pouvez également créer de nouvelles partitions et formater celles existantes. Dans l'image ci-dessous, j'ai supprimé la partition de swap et je suis maintenant en mesure de redimensionner la partition racine sur tout l'espace à sa droite. Ne le remplissez pas entièrement, car vous devez toujours ajouter une partition de swap.

Redimensionner

Vous pouvez jouer avec la structure de la partition, les modifications ne sont écrites que si vous les appliquez (touche «retour» grisée dans la première image).

Il est très facile de déplacer des partitions, mais comme dans la réponse de Steve, je vous recommande de supprimer entièrement la partition de swap, de redimensionner la racine puis de recréer un swap. Le déplacement d'une partition peut prendre beaucoup de temps et le swap ne contient pas de données que vous devez conserver.

Joost
la source
1
J'ai utilisé cette méthode. fonctionne comme un charme.
Alex Chamberlain
Je suis d'accord. J'ai utilisé gparted pour faire exactement cela et c'est très facile
JayDev
Si vous vous connectez via VNC, exécutezsudo -E gparted
forzagreen le
Vous devrez peut-être également exécuter la commande suivante avant gpartedsi vous exécutez sous Wayland (vous n'êtes pas sûr que ces problèmes ont été résolus):xhost +SI:localuser:root
John Manko
11

Si vous utilisez l’image la plus récente de Debian Wheezy: http://www.raspberrypi.org/archives/1435 Un script de démarrage vous permet de redimensionner pour remplir automatiquement la carte mémoire.

popcornmix
la source
1
J'utilise Arch Linux.
Jivings
2
Comment ferait une telle chose si?
2
C'est le moyen le plus simple de redimensionner les partitions pour toute image Wheezy à jour.
Yuval Adam