dedibox:freebsd:installation
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
dedibox:freebsd:installation [2006/08/28 11:08] – naz | dedibox:freebsd:installation [2006/12/27 14:28] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Installation de FreeBSD 6.1 sur une Dédibox ====== | ||
+ | [[http:// | ||
+ | ===== Introduction ===== | ||
+ | Ce document présente une méthode alternative à celle de JC Michot ((http:// | ||
+ | |||
+ | Pourquoi une méthode alternative ? | ||
+ | |||
+ | Tout d' | ||
+ | |||
+ | La seconde raison qui m'a poussé à effectuer ce travail est l' | ||
+ | <note importante> | ||
+ | |||
+ | ===== Principes de construction ===== | ||
+ | La construction du système est basée sur les principes suivants : | ||
+ | * Un périphérique md de type vnode (fichier) porte l' | ||
+ | * Le périphérique md contient deux slices : la première constitue le mode rescue FreeBSD, la seconde contient le FreeBSD utilisé en exploitation. Le passage en mode rescue FreeBSD est réalisé grace au fdisk du mode rescue Linux suivi d'un redémarrage en mode normal. | ||
+ | * Une fois l' | ||
+ | |||
+ | ===== Pré-requis ===== | ||
+ | La construction du système nécessite les éléments suivants : | ||
+ | * un système FreeBSD autre que la Dédibox de destination disposant d' | ||
+ | * un CD d' | ||
+ | * un serveur HTTP ou FTP pouvant abriter l' | ||
+ | |||
+ | ===== Construction du système ===== | ||
+ | |||
+ | ==== Création du périphérique md ==== | ||
+ | Nous commençons par créer un fichier de 2Go environ (1Go pour la slice rescue et 1Go pour la slice d' | ||
+ | < | ||
+ | |||
+ | Nous créons maintenant le périphérique md0 sur lequel nous allons réaliser les installations : | ||
+ | < | ||
+ | |||
+ | ==== Création de la table des slices ==== | ||
+ | L' | ||
+ | |||
+ | D' | ||
+ | |||
+ | Pour cela, nous créons le petit fichier de paramètres slicetable.tmp suivant : | ||
+ | < | ||
+ | # Geometry | ||
+ | g | ||
+ | # Rescue Slice | ||
+ | p | ||
+ | # Normal Slice | ||
+ | p | ||
+ | # Normal Slice activation by default | ||
+ | a 2 | ||
+ | </ | ||
+ | |||
+ | et nous créons la table des slices à l'aide de la commande fdisk : | ||
+ | < | ||
+ | ******* Working on device /dev/md0 ******* | ||
+ | fdisk: invalid fdisk partition table found | ||
+ | fdisk: WARNING line 2: number of cylinders (19457) may be out-of-range | ||
+ | (must be within 1-1024 for normal BIOS operation, unless the entire disk | ||
+ | is dedicated to FreeBSD)</ | ||
+ | < | ||
+ | |||
+ | Nous pouvons maintenant vérifier que nos 2 slices ont bien été créé : | ||
+ | < | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | et que notre table des slices est correcte : | ||
+ | < | ||
+ | ******* Working on device /dev/md0 ******* | ||
+ | parameters extracted from in-core disklabel are: | ||
+ | cylinders=261 heads=255 sectors/ | ||
+ | |||
+ | parameters to be used for BIOS calculations are: | ||
+ | cylinders=261 heads=255 sectors/ | ||
+ | |||
+ | Media sector size is 512 | ||
+ | Warning: BIOS sector numbering starts with sector 1 | ||
+ | Information from DOS bootblock is: | ||
+ | The data for partition 1 is: | ||
+ | sysid 165 (0xa5), | ||
+ | start 63, size 2072322 (1011 Meg), flag 0 | ||
+ | beg: cyl 0/ head 1/ sector 1; | ||
+ | end: cyl 128/ head 254/ sector 63 | ||
+ | The data for partition 2 is: | ||
+ | sysid 165 (0xa5), | ||
+ | start 2072385, size 310472190 (151597 Meg), flag 80 (active) | ||
+ | beg: cyl 129/ head 0/ sector 1; | ||
+ | end: cyl 1022/ head 254/ sector 63 | ||
+ | The data for partition 3 is: | ||
+ | < | ||
+ | The data for partition 4 is: | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | ==== Mise en place de la slice rescue ==== | ||
+ | === Ecriture des labels et du bootstrap === | ||
+ | Nous commençons par installer un label BSD avec un bootstrap : | ||
+ | < | ||
+ | |||
+ | puis, nous créons le fichier de label labelrescue.tmp définissant une partition unique (/) occupant la totalité de la slice md0s1 : | ||
+ | < | ||
+ | # | ||
+ | 8 partitions: | ||
+ | # | ||
+ | # | ||
+ | a: * | ||
+ | c: * | ||
+ | # | ||
+ | </ | ||
+ | |||
+ | et nous appliquons le label ainsi défini : | ||
+ | < | ||
+ | |||
+ | Une petite vérification en passant : | ||
+ | < | ||
+ | / | ||
+ | |||
+ | === Création et montage du système de fichiers racine === | ||
+ | |||
+ | Nous pouvons maintenant créer le système de fichiers racine du mode rescue : | ||
+ | < | ||
+ | / | ||
+ | using 6 cylinder groups of 183.77MB, 11761 blks, 23552 inodes. | ||
+ | with soft updates | ||
+ | super-block backups (for fsck -b #) at: | ||
+ | 160, 376512, 752864, 1129216, 1505568, 1881920</ | ||
+ | |||
+ | et le monter afin de pouvoir installer FreeBSD dessus : | ||
+ | < | ||
+ | |||
+ | La commande df nous permet de vérifier que nous disposons bien d' | ||
+ | < | ||
+ | / | ||
+ | |||
+ | === Installation de FreeBSD === | ||
+ | Plusieurs méthodes sont disponibles pour installer FreeBSD. On peut notamment utiliser le système hôte et effectuer une séquence complète de make buildworld, buildkernel, | ||
+ | |||
+ | Nous commençons par monter l' | ||
+ | < | ||
+ | # mount_cd9660 /dev/md1 / | ||
+ | |||
+ | puis, nous installons la distribution binaire de base : | ||
+ | < | ||
+ | |||
+ | et le noyau GENERIC : | ||
+ | < | ||
+ | # rmdir / | ||
+ | # mv / | ||
+ | |||
+ | === Customisation de l' | ||
+ | |||
+ | == Créer le fichier fstab == | ||
+ | Afin de monter le système de fichiers racine au démarrage de la machine, nous créons le fichier / | ||
+ | < | ||
+ | # Device | ||
+ | # ========= | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | == Un prompt discriminateur == | ||
+ | Afin de visualiser le fait que nous nous trouvons en mode rescue, nous modifions le prompt de l' | ||
+ | < | ||
+ | par : | ||
+ | < | ||
+ | |||
+ | == Donner un mot de passe solide au compte root == | ||
+ | La méthode présentée ici prévoit, comme le mode rescue Dedibox, un accès ssh pour le compte root, il est donc important, au minimum, de mettre un mot de passe costaud à ce compte. Vous pouvez aussi adapter cette installation de façon à ne pas permettre un accès ssh pour le compte root, mettre en place l' | ||
+ | |||
+ | Pour changer le mot de passe de root qui est vide par défaut, nous utilisons la commande suivante : | ||
+ | < | ||
+ | |||
+ | == Une configuration réseau minimum == | ||
+ | Afin de disposer d'un clavier en français, de donner un nom à notre système, de configurer le réseau et d' | ||
+ | < | ||
+ | keymap=" | ||
+ | hostname=" | ||
+ | defaultrouter=" | ||
+ | ifconfig_vge0=" | ||
+ | sshd_enable=" | ||
+ | </ | ||
+ | < | ||
+ | |||
+ | == Configurer la résolution de noms DNS == | ||
+ | Nous créons, pour cela, un fichier / | ||
+ | < | ||
+ | domain MonDomaine.tld | ||
+ | nameserver 88.191.254.60 | ||
+ | nameserver 88.191.254.70 | ||
+ | </ | ||
+ | |||
+ | == Configuration de la zone locale == | ||
+ | Pour configurer la zone locale, il suffit de copier le fichier de zone concerné dans / | ||
+ | < | ||
+ | # cp / | ||
+ | </ | ||
+ | |||
+ | == Configurer sshd == | ||
+ | Lors de son premier lancement, le script rc du daemon sshd crée les différentes clés RSA et DSA du serveur et demande, sur la console, | ||
+ | < | ||
+ | # / | ||
+ | # / | ||
+ | # / | ||
+ | </ | ||
+ | |||
+ | puis, nous permettons le login de root via ssh : | ||
+ | < | ||
+ | # mv / | ||
+ | # echo " | ||
+ | </ | ||
+ | |||
+ | Voilà, c'est tout pour la slice du mode rescue. Vous pouvez maintenant démonter /mnt : | ||
+ | < | ||
+ | # umount /mnt | ||
+ | </ | ||
+ | |||
+ | ==== Mise en place de la slice d' | ||
+ | La mise en place de la slice d' | ||
+ | === Ecriture des labels et du bootstrap === | ||
+ | Nous commençons par installer un label BSD avec un bootstrap : | ||
+ | < | ||
+ | |||
+ | puis, nous créons le fichier de label label.tmp définissant le partitionnement de la slice d' | ||
+ | < | ||
+ | # | ||
+ | 8 partitions: | ||
+ | # | ||
+ | # | ||
+ | a: 1024M | ||
+ | b: 1024M | ||
+ | c: * | ||
+ | e: 2048M | ||
+ | f: * | ||
+ | # | ||
+ | </ | ||
+ | |||
+ | et nous appliquons le label ainsi défini : | ||
+ | < | ||
+ | < | ||
+ | |||
+ | === Création et montage du système de fichiers racine === | ||
+ | Nous pouvons maintenant créer le système de fichiers racine : | ||
+ | < | ||
+ | / | ||
+ | using 6 cylinder groups of 183.77MB, 11761 blks, 23552 inodes. | ||
+ | with soft updates | ||
+ | super-block backups (for fsck -b #) at: | ||
+ | 160, 376512, 752864, 1129216, 1505568, 1881920 | ||
+ | </ | ||
+ | |||
+ | et le monter : | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | === Installation de FreeBSD === | ||
+ | L' | ||
+ | < | ||
+ | # cd /mnt | ||
+ | # dump -0 -Lauf - /dev/md0s1a | restore -rf - | ||
+ | # cd / | ||
+ | </ | ||
+ | |||
+ | Personnellement, | ||
+ | < | ||
+ | # cat / | ||
+ | </ | ||
+ | === Customisation de l' | ||
+ | == Créer le fichier fstab == | ||
+ | Afin de monter le système de fichiers racine au démarrage de la machine et de disposer d'une swap d'1 Go, nous créons le fichier / | ||
+ | < | ||
+ | # Device | ||
+ | # ========= | ||
+ | / | ||
+ | / | ||
+ | #/ | ||
+ | #/ | ||
+ | </ | ||
+ | < | ||
+ | == Remettre le prompt par défaut du compte root == | ||
+ | Afin de bien voir que nous sommes sur la slice d' | ||
+ | < | ||
+ | set prompt = " | ||
+ | </ | ||
+ | Voilà, c'est tout pour la slice d' | ||
+ | < | ||
+ | # umount /mnt | ||
+ | </ | ||
+ | et détacher le disque md0 | ||
+ | < | ||
+ | # mdconfig -d -u 0 | ||
+ | </ | ||
+ | |||
+ | ==== Installation de l' | ||
+ | Nous commençons par copier l' | ||
+ | < | ||
+ | # wget -O - ftp:// | ||
+ | </ | ||
+ | < | ||
+ | wget: retr.c: 292: calc_rate: Assertion `bytes >= 0' failed.\\ | ||
+ | Aborted | ||
+ | </ | ||
+ | |||
+ | Voilà, vous pouvez maintenant redémarrer votre Dedibox en mode normal et au bout de quelques minutes, vous devriez pouvoir vous connecter en ssh avec le compte root. Personnellement, | ||
+ | |||
+ | ==== Créer les systèmes de fichiers /var et /usr ==== | ||
+ | Le plus simple pour réaliser cette opération est de redémarrer en mode rescue FreeBSD, pour cela, procédez comme suit : | ||
+ | < | ||
+ | # fdisk -a | ||
+ | ... | ||
+ | Partition 2 is marked active | ||
+ | Do you want to change the active partition? [n] y | ||
+ | Supply a decimal value for " | ||
+ | Are you happy with this choice [n] y | ||
+ | ... | ||
+ | Should we write new partition table? [n] y | ||
+ | # shutdown -r now | ||
+ | </ | ||
+ | |||
+ | Au bout de quelques minutes, nous pouvons vous connecter via ssh sur le mode rescue FreeBSD avec le compte root et créer les systèmes de fichiers manquants : | ||
+ | < | ||
+ | rescue# newfs -U /dev/ad4s2e | ||
+ | / | ||
+ | using 12 cylinder groups of 183.77MB, 11761 blks, 23552 inodes. | ||
+ | with soft updates | ||
+ | super-block backups (for fsck -b #) at: | ||
+ | ... | ||
+ | rescue# newfs -U /dev/ad4s2f | ||
+ | / | ||
+ | using 803 cylinder groups of 183.77MB, 11761 blks, 23552 inodes. | ||
+ | with soft updates | ||
+ | super-block backups (for fsck -b #) at: | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | puis, déplacer les actuels /var et /usr, par exemple de la façon suivante : | ||
+ | < | ||
+ | rescue# mount /dev/ad4s2a /mnt | ||
+ | rescue# mount /dev/ad4s2e /mnt/mnt | ||
+ | rescue# cd /mnt/var | ||
+ | rescue# pax -rw -p e . /mnt/mnt | ||
+ | rescue# umount /mnt/mnt | ||
+ | rescue# cd / | ||
+ | rescue# rm -rf /mnt/var/* | ||
+ | rescue# mount /dev/ad4s2f /mnt/mnt | ||
+ | rescue# cd /mnt/usr | ||
+ | rescue# pax -rw -p e . /mnt/mnt | ||
+ | rescue# umount /mnt/mnt | ||
+ | rescue# cd / | ||
+ | rescue# chflags -R noschg /mnt/usr/ | ||
+ | rescue# rm -rf /mnt/usr/* | ||
+ | </ | ||
+ | |||
+ | modifier le fichier / | ||
+ | < | ||
+ | # Device | ||
+ | # ========= | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | démonter /dev/ad4s2a : | ||
+ | < | ||
+ | # umount /mnt | ||
+ | </ | ||
+ | |||
+ | remettre la slice 2 active à l'aide de la commande "fdisk -a" et redémarrer la Dedibox. | ||
+ | Voilà, vous disposez maintenant d'un système FreeBSD 6.1 de base | ||
+ | |||
+ | ==== Si votre système ne démarre plus ==== | ||
+ | Si pour une raison quelconque, votre système ne redémarre pas, utilisez le mode rescue Dédibox pour activer le mode rescue FreeBSD de la façon suivante : | ||
+ | |||
+ | < | ||
+ | BusyBox v1.01 (2005.12.06-16: | ||
+ | Enter ' | ||
+ | |||
+ | # fdisk /dev/sda | ||
+ | |||
+ | The number of cylinders for this disk is set to 19457. | ||
+ | There is nothing wrong with that, but this is larger than 1024, | ||
+ | and could in certain setups cause problems with: | ||
+ | 1) software that runs at boot time (e.g., old versions of LILO) | ||
+ | 2) booting and partitioning software from other OSs | ||
+ | | ||
+ | |||
+ | Command (m for help): p | ||
+ | |||
+ | Disk /dev/sda: 160.0 GB, 160041885696 bytes | ||
+ | 255 heads, 63 sectors/ | ||
+ | Units = cylinders of 16065 * 512 = 8225280 bytes | ||
+ | |||
+ | | ||
+ | / | ||
+ | / | ||
+ | |||
+ | Command (m for help): | ||
+ | Partition number (1-4): 2 | ||
+ | |||
+ | Command (m for help): a | ||
+ | Partition number (1-4): 1 | ||
+ | |||
+ | Command (m for help): p | ||
+ | |||
+ | Disk /dev/sda: 160.0 GB, 160041885696 bytes | ||
+ | 255 heads, 63 sectors/ | ||
+ | Units = cylinders of 16065 * 512 = 8225280 bytes | ||
+ | |||
+ | | ||
+ | / | ||
+ | / | ||
+ | |||
+ | Command (m for help): w | ||
+ | The partition table has been altered! | ||
+ | |||
+ | Calling ioctl() to re-read partition table. | ||
+ | Syncing disks. | ||
+ | # | ||
+ | </ | ||
+ | Puis, redémarrez la Dédibox en mode normal. | ||
+ | |||
+ | ===== Références ===== | ||
+ | Les différentes lectures qui ont permis la rédaction de cette article : | ||
+ | |||
+ | http:// | ||
+ | http:// | ||
+ | http:// | ||
+ | http:// | ||
+ | http:// | ||
+ | http:// | ||
+ | http:// | ||
+ | |||
+ | ===== Conclusion ===== | ||
+ | Voilà, j' | ||
+ | |||
+ | Jean-Loic Tignon - 21/06/2006 |