Augmenter la taille des partitions sans démonter avec cfdisk
Par cubytus le mardi 15 avril 2014, 16:21 - Raspberry Pi - Lien permanent
Toujours dans la série sur la bidouille avec le Raspberry Pi, j'ai installé la Debian Wheezy minimale, conçue pour une carte SD de 2Gio. Seulement voilà, la mienne fait 4Gio, et beaucoup d'espace n'était pas utilisé. La méthode traditionnelle voudrait que l'on utilise parted ou son pendant graphique, gparted, mais ils réclament de démonter la partition affectée. Ce n'est pas un problème pour un ordinateur classique, qui peut également démarrer sur un Live CD, mais impossible sur un Raspberry Pi, qui ne boote que la carte SD. Je ne voulais pas non plus céder à la facilité en retirant la carte pour y toucher dans un autre Linux.
Difficulté: facile, mais risqué car on travaille en utilisateur root.
Évidemment il y a bien cette page qui explique comment agrandir une partition dans ce cas précis, cependant les informations contenues sont incorrectes. Pourtant il était plus que temps de le faire, la commande
# df -h
indiquant que la partition / était pleine à plus de 93%.
Revenons à nos moutons! À la commande
# fdisk -cu /dev/mmcblk0
j'ai obtenu:
Usage:
fdisk [options] <disk> change partition table
fdisk [options] -l <disk> list partition table(s)
fdisk -s <partition> give partition size(s) in blocks
Options:
-b <size> sector size (512, 1024, 2048 or 4096)
-c[=<mode>] compatible mode: 'dos' or 'nondos' (default)
-h print this help text
-u[=<unit>] display units: 'cylinders' or 'sectors' (default)
-v print program version
-C <number> specify the number of cylinders
-H <number> specify the number of heads
-S <number> specify the number of sectors per track
Ce qui est assez étrange. J'ai sommairement cherché à savoir avec un petit
# man fdisk
Et en fin de page, je suis tombé sur ce passage:
There are several *fdisk programs around. Each has its problems and strengths. Try them in the order cfdisk, fdisk, sfdisk. (Indeed, cfdisk is a beautiful program
that has strict requirements on the partition tables it accepts, and produces high quality partition tables. Use it if you can. fdisk is a buggy program that does
fuzzy things - usually it happens to produce reasonable results
donc changement de programme pour cfdisk.
# cfdisk /dev/mmcblk0
ce qui donne:
cfdisk (util-linux 2.20.1)
Disk Drive: /dev/mmcblk0
Size: 3963617280 bytes, 3963 MB
Heads: 4 Sectors per Track: 16 Cylinders: 120960
Name Flags Part Type FS Type [Label] Size (MB)
--------------------------------------------------------------------------------------------------
Pri/Log Free Space 1.05
mmcblk0p1 Primary vfat 52.43
mmcblk0p2 Primary ext4 3398.14
mmcblk0p3 Primary Linux swap / Solaris 512.00
[ Help ] [ New ] [ Print ] [ Quit ] [ Units ] [ Write ]
Create new partition from free space
Une erreur? Bien oui, je viens de modifier ma partition, donc c'est ce qui apparaît lorsque les opérations se terminent sans histoires.
Sélectionnez avec les flèches la partition swap, puis l'option [ Delete ]. Faites la même chose avec la partition en ext4, soit normalement la plus grande.
Il ne devrait rester qu'un peu d'espace libre en tête de disque, et une partition vfat.
Ensuite sélectionnez [ New ], [ Primary ], et spécifier la taille. Par défaut tout l'espace libre sera occupé.
Ensuite faites [ Write ] pour écrire les changements. Prenez note du nom exact de la partition nouvellement agrandie, ici /dev/mmcblk0p2.
On quitte proprement, puis on redémarre le Pi:
# reboot
Ce qui ferme la connexion sur le Terminal. On ouvre encore une fois la connexion SSH avec:
~ ssh root@ip_du_pi
Et on procède au redimensionnement du système de fichier comme tel:
# resize2fs /dev/mmcblk0p2
On refait:
# df -h
Et on voit maintenant que la partition / n'est pleine qu'à 23%.