vendredi, octobre 07, 2011

FreeBSD disk partition > 2To


Ceux qui ont essayé d'avoir des partitions de plus de 2 To avec FreeBSD, on sans doute rencontré le soucis
de MBR auquel j'ai du faire face.

La description du soucis est plus clairement donnée sur le site de FreeBSD :

Large data storage in FreeBSD

Citons: 
"The first limit that is encountered is in disk partitioning. For x86 and amd64 PC's, the FDISK MBR table is used by the BIOS to partition the disk into logical extents and identify which partition ('slice' in FreeBSD terms) to boot from. The MBR is defined to use 32 bit disk offsets, and since it's an industry standard and interoperability is required, there is nothing that can be done to change this. As long as booting a PC requires the MBR, the boot slice in FreeBSD is going to be limited to 2TB."

La solution pour contourner le soucis est donc d'utiliser autre chose qu'un mbr pour faire démarrer FreeBSD,
à savoir GPT.

La méthode la plus simple que j'ai pu trouver se trouve sur le site http://www.b0rken.org/freebsd/gpt.html
  1. Booter sur le DVD FreeBSD ( il contient la distribution et un liveFS )
  2. Démarrer sur le LiveFS
  3. supprimer la partition 
    # gpart destroy ad0
  4. créér la nouvelle partition GPT
    # gpart create -s GPT ad0
  5. ajouter une partition de boot
    # gpart add -t freebsd-boot -s 128 ad0
  6. installer le boot gpt
    # gpart bootcode -b /dist/boot/pmbr -p /dist/boot/gptboot -i 1 ad0
  7. installer une partition de swap
    # gpart add -t freebsd-swap -s 8388608 ad0
  8. creer les autres partitions
    # gpart add -t freebsd-ufs -s 2097152 ad0
    # gpart add -t freebsd-ufs -s 2097152 ad0
    # gpart add -t freebsd-ufs -s 41942040 ad0
    # gpart add -t freebsd-ufs ad0
  9. formater les partitions
    # newfs ad0p3
    # newfs -U ad0p4
    # newfs -U ad0p5
    # newfs -U ad0p6
  10. Installer la distribution FreeBSD Manuellement
    # export DESTDIR=/mnt # cd /dist/8.1-RELEASE # for dir in base catpages dict doc info lib32 manpages; do (cd $dir; ./install.sh); done # cd kernels # ./install.sh GENERIC # cd src # ./install.sh all
  11. recopier le noyau générique
  12. # cd /mnt/boot
    # rmdir kernel
    # cp -Rp GENERIC kernel
  13. Editer la table fstab correspondante.
  14. # cd /mnt/etc
    # vi fstab
    
    /dev/ad0p3      /       ufs     rw      1       1
    /dev/ad0p4      /var    ufs     rw      2       2
    /dev/ad0p5      /usr    ufs     rw      2       2
    /dev/ad0p6      /home   ufs     rw      2       2
    /dev/ad0p2      none    swap    sw      0       0
Redémarrage pour finaliser l'installation via sysinstall.

Dans mon cas, une partition de 3.54To avec 3 disques de 2To en Raid5, en ZFS.

lune2# zfs list
NAME       USED  AVAIL  REFER  MOUNTPOINT
tank      2.44G  3.54T    21K  /tank
tank/obj  1.91G  3.54T  1.91G  /usr/obj
tank/src   543M  3.54T   543M  /usr/src




( Le Roi gouverne par lui-meme, Charles Le Brun Versailles)

Aucun commentaire: