__mfsBSD__ peut être considéré comme une alternative pour pouvoir installer FreeBSD en console $$[sysinstall(8)|http://www.freebsd.org/cgi/man.cgi?query=sysinstall&apropos=0&sektion=8&manpath=FreeBSD+8.3-RELEASE&arch=default&format=html] ne fournit pas de « vrai »  »shell ».$$.

Le but est d’utiliser, l’utilitaire [gpart(8)|http://www.freebsd.org/cgi/man.cgi?query=gpart&apropos=0&sektion=8&manpath=FreeBSD+8.3-RELEASE&arch=default&format=html].

~livecd~
!!!!Concernant le live CD

Le mot de passe est __mfsroot__.

__Note :__ Le clavier est par défaut en __qwerty__.

Une fois la connexion établie, on va changer la disposition du clavier.

///
# kbdcontrol -l fr.iso.acc
///

!!!!L’installation

Nous allons partir sur une table de partition de type [mbr|http://fr.wikipedia.org/wiki/Master_boot_record]. On sera donc limité à __quatre partitions__. Pour contourner cette restriction, FreeBSD utilise un partitionnement particulier (par rapport à Linux, à l’exception de [LVM|http://fr.wikipedia.org/wiki/Gestion_par_volumes_logiques]).

Le système occupera tout le disque dur.

!!!Les différentes étapes

1. Définition du type de table de partition.

///
# gpart create -s mbr ad0
ad0 created
///

2. Création de la partition dédiée à FreeBSD.

///
# gpart add -b 63 -t freebsd ad0
ad0s1 added
# gpart show
=> 63 52428737 ad0 MBR (25G)
63 52428726 1 freebsd (25G)
52428789 11 – free – (5.5k)
///

3. Définition du type de table de partition, à l’espace alloué à FreeBSD.

///
# gpart create -s bsd ad0s1
ad0s1 created
# gpart show
=> 63 52428737 ad0 MBR (25G)
63 52428726 1 freebsd (25G)
52428789 11 – free – (5.5k)

=> 0 52428726 ad0s1 BSD (25G)
0 52428726 – free – (25G)
///

4. Création des divers partitions ( »tranches »), @@/@@, @@/var@@, @@/usr@@, @@/home@@, @@swap@@, etc.

* @@/@@ -> 4G
* @@swap@@ -> 1G
* @@/var@@ -> 1.5G
* @@/usr@@ -> 12G
* @@/home@@ -> reste du disque dur

///
# gpart add -s 4G -t freebsd-ufs ad0s1
ad0s1a added
# gpart add -s 1G -t freebsd-swap ad0s1
ad0s1b added
# gpart add -s 1536M -t freebsd-ufs ad0s1
ad0s1d added
# gpart add -s 12G -t freebsd-ufs ad0s1
ad0s1e added
# gpart add -t freebsd-ufs ad0s1
ad0s1f added
# gpart show
=> 63 52428737 ad0 MBR (25G)
63 52428726 1 freebsd (25G)
52428789 11 – free – (5.5k)

=> 0 52428726 ad0s1 BSD (25G)
0 8388608 1 freebsd-ufs (4.0G)
8388608 2097152 2 freebsd-swap (1.0G)
10485760 3145728 4 freebsd-ufs (1.5G)
13631488 25165824 5 freebsd-ufs (12G)
38797312 13631414 6 freebsd-ufs (6.5G)
///

On remarque que le  »slice » __c__ n’existe pas, en réalité il correspond à l’ensemble du disque dur.

5. Installation du chargeur d’amorçage.

La machine hébergera uniquement FreeBSD, j’ai choisi celui qui correspond à __Standard__.

///
# gpart bootcode -b /boot/mbr ad0
bootcode written to ad0
# gpart set -a active -i 1 ad0
active set on ad0s1
# gpart bootcode -b /boot/boot ada0s1
bootcode written to ad0s1
# gpart show
=> 63 52428737 ad0 MBR (25G)
63 52428726 1 freebsd [active] (25G)
52428789 11 – free – (5.5k)

=> 0 52428726 ad0s1 BSD (25G)
0 8388608 1 freebsd-ufs (4.0G)
8388608 2097152 2 freebsd-swap (1.0G)
10485760 3145728 4 freebsd-ufs (1.5G)
13631488 25165824 5 freebsd-ufs (12G)
38797312 13631414 6 freebsd-ufs (6.5G)
///

6. Système de fichiers (??ufs|Unix File System??2).

///
# newfs -L root ad0s1a
# newfs -L var -U -n ad0s1d
# newfs -L usr -U -n ad0s1e
# newfs -L home -U -n ad0s1f
///

Une explication concernant les différentes options :

* __L__, permet de donner un nom (label) à la partition
* __U__, permet d’activer les  »Soft Updates »
> Les « Soft Updates » améliorent de façon drastique les performances sur les méta-données, principalement la création et la suppression de fichier, par l’utilisation d’un cache mémoire.
* __n__, évite la création du dossier @@.snap/@@

7. Installation du système

On « monte » l’arborescence du futur système.

///
# swapon /dev/ad0s1b
# mount /dev/ad0s1a /mnt
# mkdir /mnt/var
# mount /dev/ad0s1d /mnt/var
# mkdir /mnt/usr
# mount /dev/ad0s1e /mnt/usr
# mkdir /mnt/home
# mount /dev/ad0s1f /mnt/home
///

Nous allons télécharger une image .iso correspondant à la version de FreeBSD qui nous intéresse. Cela sera plus rapide.

On choisit un [miroir|http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/mirrors-ftp.html].

Dans mon cas

///
# fetch ftp://ftp.fr.freebsd.org/pub/FreeBSD/ISO-IMAGES-i386/8.3/FreeBSD-8.3-RELEASE-i386-disc1.iso
///

On va « monter » cette image .iso dans la session du live CD.

///
# mdconfig -a -t vnode -f FreeBSD-8.3-RELEASE-i386-disc1.iso
md1
# mount -t cd9660 /dev/md1 /cdrom
///

Nous allons installé le contenu des dossiers @@base/@@, @@kernels/@@ (il contient en réalité uniquement le noyau @@GENERIC@@), et @@manpages/@@.

///
# cd /cdrom/8.3-RELEASE/base
# pwd
/cdrom/8.3-RELEASE/base
# echo $SHELL
/bin/csh
# setenv DESTDIR /mnt
# ./install.sh
You are about to extract the base distribution into /mnt – are you SURE
you want to do this over your installed system (y/n)? y
# cd ../kernels
# pwd
/cdrom/8.3-RELEASE/kernels
# ./install.sh GENERIC
# cd ../manpages/
# pwd
/cdrom/8.3-RELEASE/manpages
# ./install.sh
///
Il nous faut maintenant déplacer les modules du noyau, pour les copier dans @@/mnt/boot/kernel/@@.

///
mv /mnt/boot/GENERIC/* /mnt/boot/kernel
///

On peut maintenant « démonter » l’image .iso.

///
# umount /cdrom
# mdconfig -d -u 1
# ls -l /dev/md1
ls: /dev/md1: No such file or directory
#
///

8. Configuration

Il nous reste à configurer le système :

__À FAIRE OBLIGATOIREMENT__

* création du fichier @@/mnt/etc/fstab@@
* création du fichier @@/mnt/etc/rc.conf@@

Ils sont disponibles en annexe.

D’autres fichiers peuvent être modifiés, par exemple :

* @@/mnt/root/.cshrc@@
* @@/mnt/root/.login_conf@@
* @@/mnt/etc/login.conf@@

On peut se connecter au nouveau système par [chroot(8)|http://www.freebsd.org/cgi/man.cgi?query=chroot&apropos=0&sektion=0&manpath=FreeBSD+8.3-RELEASE&arch=default&format=html].

///
# chroot /mnt /bin/csh
///