Redimensionner une partition avec GNU Parted
Contexte
C'est en voulant essayer une nouvelle distribution sur mon laptop que l'idée de redimensionner mes partition m'a pris. C'est une opération que j'ai souvent effectué par le passé mais toujours à partir d'un liveCD. En l'occurence, ce jour là, pour cause de déménagement qui approche, impossible de mettre la main sur un liveCD sans déballer les cartons si durement remplis...
L'idée est donc de quitter la session graphique, de démonter le système de fichier visé, et de lancer la manipulation à la main. Comme la manipulation n'a pas été évidente et m'a même donné quelques sueurs froides, je fais ce billet pour mémoen quelque sorte.
Présentation succinte de GNU Parted
GNU Parted est un outil en ligne de commande qui permet de créer, supprimer, modifier, copier les partitions d'un disque dur. Il est souvent utilisé avec une interface graphique telle que GParted ou QtParted.
Voyons un peu à quoi ressemble l'utilisation de cet outil :
user:/path/$ sudo parted GNU Parted 1.8.8 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) help check NUMBER do a simple check on the file system cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER copy file system to another partition help [COMMAND] prints general help, or help on COMMAND mklabel LABEL-TYPE create a new disklabel (partition table) mkfs NUMBER FS-TYPE make a FS-TYPE file system on partititon NUMBER mkpart PART-TYPE [FS-TYPE] START END make a partition mkpartfs PART-TYPE FS-TYPE START END make a partition with a file system move NUMBER START END move partition NUMBER name NUMBER NAME name partition NUMBER as NAME print [free|NUMBER|all] display the partition table, a partition, or all devices quit exit program rescue START END rescue a lost partition near START and END resize NUMBER START END resize partition NUMBER and its file system rm NUMBER delete partition NUMBER select DEVICE choose the device to edit set NUMBER FLAG STATE change the FLAG on partition NUMBER toggle [NUMBER [FLAG] ] toggle the state of FLAG on partition NUMBER unit UNIT set the default unit to UNIT version displays the current version of GNU Parted and copyright information (parted)
Plus d'infos sur :
Les choses sérieuses
Je ne vais parler ici que d'une diminution de l'espace allouée à une partition pour en créer une nouvelle à la suite. Dans le cas inverse, les principes sont les mêmes, mais il faudra commencer les manipulation par un rm et ensuite faire le redimensionnement.
Voir l'état du disque
Rien de plus simple :
(parted) print all Disk /dev/sda: 160GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 32,3kB 8480MB 8480MB primary ext3 boot 2 8480MB 160GB 152GB extended 5 8480MB 9015MB 535MB logical linux-swap 6 9015MB 160GB 151GB logical ext3
On obtient plusieurs informations intéressantes :
- Numéro de la partition
- Déput et fin de la partition à XMB ou XGB
- Type de partition et de sytème de fichier
- Eventuellement la présence d'un flag de boot
C'est parti !
On lance le redimensionnement avec la commande resize de GNU Parted :
(parted) resize 6 9015MB 120GB
Une confirmation OK et le redimensionnement se lance.
Nouvelle partition
Nous avons à présent une partition redimensionnée et donc un espace vide qu'il faut utiliser. Ici nous allon créer une partion en ext3 qui commencera là où s'arrête celle qu'on vient de réduire et s'arrêtera au bout du disque.
mkpartfs logical ext3 120GB 160GB
On vérifie le résultat avec :
(parted) print all
(parted) check 7
Ensuite on s'échappe de parted avec un quit et il ne reste plus qu'à monter la nouvelle partition ou mieux, la vérifier avant avec :
user:/path/$ sudo fsck.ext3 /dev/sdXY