Installer FreeBSD, avec mfsBSD

logo FreeBSD

Dans ce billet, nous allons voir comment installer FreeBSD avec le live CD mfsBSD.

J'ai choisit la version 8.3.

mfsBSD peut être considéré comme une alternative pour pouvoir installer FreeBSD en console [1].

Le but est d'utiliser, l'utilitaire gpart(8).

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. On sera donc limité à quatre partitions. Pour contourner cette restriction, FreeBSD utilise un partitionnement particulier (par rapport à Linux, à l'exception de LVM).

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 (ufs2).

# 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.

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).

# chroot /mnt /bin/csh

Note

[1] sysinstall(8) ne fournit pas de « vrai » shell.