Linux et partition supérieur a 2 To

De system.co.free.fr.
(Différences entre les versions)
Ligne 1 : Ligne 1 :
===Création de partition supérieur a 2 To===
===Création de partition supérieur a 2 To===
-
[http://www.linux-mag.com/id/7897/|http://www.linux-mag.com/id/7897/]
+
[http://www.linux-mag.com/id/7897/ http://www.linux-mag.com/id/7897/]
*de nombreux materiels, les bios et fdisk ne gèrent pas les partitions supérieurs a 2To. Il est nécessaire de passer par une partition de type GPT ([http://en.wikipedia.org/wiki/GUID_Partition_Table GUID Partition Table]).Pour cela utiliser l'utilitaire parted.
*de nombreux materiels, les bios et fdisk ne gèrent pas les partitions supérieurs a 2To. Il est nécessaire de passer par une partition de type GPT ([http://en.wikipedia.org/wiki/GUID_Partition_Table GUID Partition Table]).Pour cela utiliser l'utilitaire parted.

Version du 25 mars 2011 à 23:50

Création de partition supérieur a 2 To

http://www.linux-mag.com/id/7897/

  • de nombreux materiels, les bios et fdisk ne gèrent pas les partitions supérieurs a 2To. Il est nécessaire de passer par une partition de type GPT (GUID Partition Table).Pour cela utiliser l'utilitaire parted.

je lance parted, et je fais un "mklabel gpt" sur ma partition.

sudo parted /dev/mapper/isw_cfdcahfeac_DONNEES
mklabel gpt
mkpart primary 0 -1
name 1 DONNEES1
print
Numéro  Début   Fin     Taille  Système de fichiers  Nom       Fanions
 1      17,4kB  3001GB  3001GB  ext3                 DONNEES1  raid
puis la création du FS par( attention de choisir un type de FS qui supporte l'espace a formater )
sudo mkfs.ext3 /dev/mapper/isw_cfdcahfeac_DONNEES1
  • En fait ce n'est pas un problème Linux mais un problème matériel et de bios lié a LBA.Les partitions GPT ne sont pas utilisé car les bios actuel ne peuvent pas booter sur ces partitions. Il semble que seul les nouveaux bios EFI puissent gérer nativement les partitions GPT. Linux est le seul OS a pouvoir utiliser des partitions GPT sans bios EFI: C'est ce que nous verrons dans la suite de la page.

Si vous avez une carte mère compatible EFI et donc GPT, il existe 2 options du noyaux pour les utiliser:

File Systems
   Partition Types
     [*] Advanced partition selection
     [*] EFI GUID Partition support (NEW)

ces 2 options permettent, après compilation, le support des partitions GPT nativement sans utiliser kpartx. Je n'ai pas encore pu tester car je n'ai pas de bios EFI.Voir sur wikipedia: table de parition GUID, en anglais :-(

détecter des partitions GPT superieurs a 2To

pour cela utilisont l'utilitaire kpartx (fait partie des multipathtools) qui permet de mapper de très nombreux types de partitions.

sudo kpartx -l /dev/mapper/isw_cfdcahfeac_DONNEES
la commande ci-dessus, permet de lister les partitions détectées.
sudo kpartx -a /dev/mapper/isw_cfdcahfeac_DONNEES
permet de détecter les partitions et de construire le fichier périphérique correspondant /dev/mapper/isw_cfdcahfeac_DONNEES1 dans mon cas de raid5 intel semi-matériel.

ajouter kpartx a initramfs

Afin de détecter ma partition GPT de plus de 2To dès que possible au boot, je suis passé par l'initramfs. Si vous installez la totalité des outils multipathtools, pas de problème, kpartx et les autres outils seront intégrés a l'initramfs. Par contre lorsque l'on installe kpartx sans les multipathtools celui-ci n'est pas installé dans initramfs.Pour l'installer seul dans l'initramfs,j'ai ajouté 2 fichiers:

  • le premier /usr/share/initramfs-tools/hooks/kpartx avec juste le contenu
#!/bin/sh
#Ajout de kaprtx a /sbin pour la detection et le montage de partition sup a 2To
PREREQS=""
prereqs()
{
        echo "$PREREQ"
}

case $1 in
# get pre-requisites
prereqs)
        prereqs
        exit 0
        ;;
esac

. /usr/share/initramfs-tools/hook-functions

copy_exec /sbin/kpartx sbin

ajoute kpartx ( l'exécutable pas le script... hein.. tout le monde suit ? ) à /sbin qui sera copié dans l'initramfs lors de la mise a jours ou la creation d'initramfs.

  • le deuxième, /usr/share/initramfs-tools/scripts/local-top/kpartx , lance la détection des partitions et leur attribut un périphérique.
#!/bin/sh
# script d'exécution de kpartx après dmraid pour la détection de partition sup a 2To

PREREQS="dmraid"
prereqs()
{
        echo $PREREQS
}

case $1 in
# get pre-requisites
prereqs)
        prereqs
        exit 0
        ;;
esac

kpartx -a /dev/mapper/isw_*

sur Kubuntu 10.4 ( lucid) une temporisation est nécessaire du fait de l'optimisation du boot et de la mise en parallèles d'élément du boot. Le fichier /usr/share/initramfs-tools/scripts/local-top/kpartx devient ( j'ai rajouté une boucle pour detecter toutes les secondes la disponibilité du raid ):

#!/bin/sh
# script d'exécution de kpartx après dmraid pour la detection de partition sup a 2To

PREREQS="dmraid"
prereqs() 
{
        echo $PREREQS
}

case $1 in
# get pre-requisites
prereqs)
        prereqs
        exit 0
        ;;
esac

tempo=0
while [ ! -b /dev/mapper/isw_* ] &&  [ $tempo -le 60 ]  
do 
  sleep 1
  tempo=`expr $tempo + 1`
  echo "activation partition GPT en cours, attente disponibilité $tempo"
done
sleep 2
/sbin/kpartx -a /dev/mapper/isw_*

ne pas oublier de mettre les droit 755 avec le proprietaire root sur les 2 fichiers et de faire un

sudo update-initramfs -u

après avoir fait une copie de sauvegarde de votre /boot/initrd.img* de démarrage

Outils personnels