GPT


PRÉPARATION DU DISQUE AD2

Pour le fun je me suis dis que j'allais partitionner mon disque au format GPT, puisque c'est à la mode (ça sert à rien dans mon cas, mais je voulais jouer avec)
j'ai donc détruit le partionnement existant :
$ gpart destroy ad2
Puis recréer en précisant le système de partitionnement GPT
$ gpart create -s GPT ad2
Une vérification que tout c'est bien passé :
$ gpart show
=>       34  156301421  ad2  GPT  (75G)
      34  156301421        - free -  (75G)
Les BIOS classiques ne sont pas capable de booter sur du GPT, mais sous FreeBSD il y a une astuce qui marche impeccable
$ gpart add -b 34 -s 16 -t freebsd-boot ad2
$ gpart bootcode -b /boot/pmbr ad2
$ cp /boot/gptboot /tmp
$ dd if=/dev/zero bs=641 count=1 >> /tmp/gptboot
$ dd if=/tmp/gptboot of=/dev/ad2p1 bs=512
ainsi le système est bootable;
j'ai plus qu'à recréer mes partitions
$ gpart add -b 50 -s 20971520 -t freebsd-ufs ad2
$ gpart add -b 20971570 -s 4194304 -t freebsd-swap ad2
$ gpart add -b 25165874 -s 131135581 -t freebssd-ufs ad2
Vérification :
$ gpart show
=>       34  156301421  ad2  GPT  (75G)
  34         16    1  freebsd-boot  (8.0K)
  50   20971520    2  freebsd-ufs  (10G)
   20971570    4194304    3  freebsd-swap  (2.0G)
   25165874  131135581    4  freebsd-ufs  (63G)
maintenant j'active le gjournal pour les partitions ufs
$ gjournal label /dev/ad2p2
$ gjournal label /dev/ad2p4
On format le tout (pour rappel sous freebsd pas besoin de formatter les partitions swap
$ newfs -J -L root /dev/ad2p2.journal
$ newfs -J -L home /dev/ad2p4.journal
Le -L signifie que l'on écrit un label ainsi les partitions sont facilement montable grâce à GLABEL qui les représente sous la forme : /dev/ufs/LABEL

MIGRATION DES DONNÉES

maintenant il s'agit de migrer le contenu des partitions / et /home sur les nouvelles le tout à chaud :
$ mkdir /newroot
$ mount -o async /dev/ufs/root /newroot
$ cd /newroot
$ dump -0uanL -f - / | restore -rf -
$ mkdir /home2
$ mount -o async /dev/ufs/home /home2
$ cd /home2
$ dump -0uanL -f - /home | restore -rf -
il faut pour finir modifier la fstab du nouveau root pour rajouter :
  • /dev/ufs/root comme partition / (et rajouter l'option async)
  • /dev/ufs/home comme partition /home (et mettre l'option async)
  • /dev/ad2p3 comme swap
Le fichier /etc/fstab obtenu est donc :
# Device  Mountpoint FStype Options  Dump Pass#
/dev/ad2p3  none  swap sw  0 0
/dev/ufs/root  /  ufs rw,async 1 1
/dev/ufs/bapt  /home ufs rw,async 1 1
Il ne reste plus qu'à rebooter dessus.

虹光大成就-密教灌頂(一)