Parted : résoudre les problèmes de partionnnement sur gros filesystems
Contents
Software version | 2.1 |
---|---|
Operating System | Debian 6 Red Hat 6.3 |
Website | |
Last Update | 13/02/2013 |
Others |
1 Introduction
GNU Parted is a program for creating, destroying, resizing, checking, and copying partitions, and the file systems on them. This is useful for creating space for new operating systems, reorganising hard disk usage, copying data between hard disks, and disk imaging. It was written by Andrew Clausen and Lennert Buytenhek.
It consists of a library, libparted, and a command-line frontend, parted, that also serves as reference implementation.
Currently, Parted runs only under Linux, GNU/Hurd, FreeBSD and BeOS.
2 Problématique
Vous venez par exemple de faire l'aquisition d'une baie de disque (SATA, SAS...) et le partionnement se passe mal. Par exemple vous ne pouvez créer des partions au dela de 99Go ou 2To. C'est ce qui m'est arrivé. Et au niveau du boot (dmesg), vous avez ce type d'erreurs :
sdb : very big device. try to use READ CAPACITY(16). Losing some ticks... checking if CPU frequency changed. SCSI device sdb: 8784445440 512-byte hdwr sectors (4497636 MB) sdb: Write Protect is off sdb: Mode Sense: 1f 00 10 08 SCSI device sdb: drive cache: write through w/ FUA sdb: sdb1 sdb : very big device. try to use READ CAPACITY(16). SCSI device sdb: 8784445440 512-byte hdwr sectors (4497636 MB) sdb: Write Protect is off sdb: Mode Sense: 1f 00 10 08 SCSI device sdb: drive cache: write through w/ FUA sdb: sdb : very big device. try to use READ CAPACITY(16). SCSI device sdb: 8784445440 512-byte hdwr sectors (4497636 MB) sdb: Write Protect is off sdb: Mode Sense: 1f 00 10 08 SCSI device sdb: drive cache: write through w/ FU
Vous avez là certainement partionner avec fdisk ou cfdisk. Et bien c'est là votre erreur ! Apparement, ils ont encore beaucoup de mal à gérer les grosses capacités. C'est pourquoi je vous propose parted :-)
3 Installation
Assez simple :
apt-get |
apt-get install parted |
4 Partitionnement
4.1 Wizard
Mon partitionnement est assez simple, je veux créer un disque entier de 4,5To. Je vérifie donc d'abord que je n'ai aucunes partitions de créer et je me lance :
On peut voir ici que je suis sur mon premier disque (sda) et pas sur ma baie (sdb). On passe donc dessus :
parted |
(parted) select /dev/sdb Using /dev/sdb |
Nous allons créer un label :
parted |
(parted) mklabel New disk label type? [msdos]? gpt |
Créer ensuite la partition :
parted |
(parted) mkpart Partition name? []? san # Donnez le nom que vous voulez File system type? [ext2]? ext3 # Le filesystem Start? 0 # Le début de votre disque End? -1 # -1 correspond à la fin |
Pour ceux qui souhaitent faire du LVM, il suffit d'ajouter un flag :
parted |
set 1 lvm on |
4.2 Command line
Si vous souhaitez tout faire en command line, pour automatiser par exemple, voici comment faire. J'ai fais un petit script permettant de créer une partition qui prends la totalité du disque et optimise (via l'alignement des disques) la partition pour obtenir les meilleurs performances :
datas_device=/dev/sdb parted -s -a optimal $datas_device mklabel gpt parted -s -a optimal $datas_device mkpart primary ext4 0% 100% parted -s $datas_device set 1 lvm on |
- ligne 1 : on créer un label de type gpt pour les grosses partitions (supérieures à 2Tb)
- ligne 2 : on créer une partition qui prends la totalité du disque
- ligne 3 : on lui indique que cette partition sera de type LVM
5 Validation
On peut constater le résultat :
parted |
(parted) p Disk /dev/sdb: 4498GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 17,4kB 4498GB 4498GB ext3 san |
Tout est bien rempli. Je peux quitter :
parted |
(parted) q |
Et encore vérifier via :
6 Formatage
Il ne me reste plus qu'a formater dans le format souhaité (ici ext3) :
mkfs |
mkfs.ext3 /dev/sdb1 |
7 Tailles maximum des filesystems
Filesystem | Taille max par partition | Taille max par fichier |
---|---|---|
ext2 | 8 To | 2 Go |
ext3 | 8 To | 2 To |
ext4 | 1024 Po | |
Resiser4 | 8 To | |
ZFS | 16 Eo | 16 Eo |