Je dispose donc dorénavant d’un serveur __amd64__, sous [FreeBSD|http://www.freebsd.org/].

Pour rendre son serveur fonctionnel, il faut faire quelques adaptations, qui seront détaillées dans ce billet.

!!!Configuration des services

Cette partie est consacrée, à la configuration des fichiers situés dans @@/etc@@, notamment @@/etc/rc.conf@@.

Par défaut, on trouve que deux lignes, l’une donnant le nom de la machine, et l’autre sert à la connexion réseau.

///
hostname= »…..digicube.fr »
ifconfig_re0= »DHCP »
///

Or si on laisse cette ligne telle quelle, au prochain redémarrage du serveur, on n’aura plus de réseau. On sait déjà que notre carte réseau, [re0|http://www.freebsd.org/cgi/man.cgi?query=re&apropos=0&sektion=4&manpath=FreeBSD+8.0-RELEASE&format=html] est une RealTek.

On va obtenir d’autres informations, grâce à la commande @@ifconfig@@ :
///ifconfig -a
re0: flags=8843 metric 0 mtu 1500
options=389b
ether 00:1c:c0:d0:b4:2f
inet 95.130.12.57 netmask 0xffffff00 broadcast 95.130.12.255
media: Ethernet autoselect (100baseTX )
status: active
lo0: flags=8049 metric 0 mtu 16384
options=3
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
///

Pour obtenir la table de routage :
///netstat -nr
Routing tables

Internet:
Destination Gateway Flags Refs Use Netif Expire
default 95.130.12.1 UGS 1 3097 re0
95.130.12.0/24 link#1 U 0 128 re0
95.130.12.57 link#1 UHS 0 0 lo0
127.0.0.1 link#2 UH 0 48 lo0

Internet6:
Destination Gateway Flags Netif Expire
::1 ::1 UH lo0
fe80::%lo0/64 link#2 U lo0
fe80::1%lo0 link#2 UHS lo0
ff01:2::/32 fe80::1%lo0 U lo0
ff02::%lo0/32 fe80::1%lo0 U lo0
///

Le panel chez Digicube nous donnes ça :
* Adresse IP : 95.130.12.57
* Masque : 255.255.255.255
* Passerelle : 95.130.12.1

Nous avons toutes les informations en main pour commencer à éditer le fichier @@/etc/rc.conf@@. Voici donc un extrait :

///cron_enable= »YES »
sshd_enable= »YES »
ntpd_enable= »YES »

cleanvar_enable= »YES »
clear_tmp_enable= »YES »

sendmail= »NONE »

hostname= »….digicube.fr »
ifconfig_re0= »inet 95.130.12.57 netmask 255.255.255.0″
defaultrouter= »95.130.12.1″
///

Les services pour l’instant disponibles sont :
* OpenSSH
* cron
* ntpd (pour avoir toujours son serveur à l’heure $$Ce service n’est pas obligatoire.$$)

!!!Le partitionnement

C’est souvent cette partie, qui fait défaut, on aimerait le refaire à notre guise. Voyez par vous-même, les points de montage :
///
mount

/dev/ad4s1a on / (ufs, local)
devfs on /dev (devfs, local, multilabel)
/dev/ad4s1g on /home (ufs, local, soft-updates)
/dev/ad4s1e on /usr (ufs, local, soft-updates)
/dev/ad4s1f on /usr/local (ufs, local, soft-updates)
/dev/ad4s1d on /var (ufs, local, soft-updates)
///

L’espace disque disponible :
///df -h

Filesystem Size Used Avail Capacity Mounted on
/dev/ad4s1a 1.9G 253M 1.5G 14% /
devfs 1.0K 1.0K 0B 100% /dev
/dev/ad4s1g 127G 4.0K 117G 0% /home
/dev/ad4s1e 3.7G 147M 3.3G 4% /usr
/dev/ad4s1f 5.6G 4.0K 5.2G 0% /usr/local
/dev/ad4s1d 3.7G 396K 3.4G 0% /var
///

J’aurais préféré avoir une partition @@/usr@@ d’une centaine de gigas, q’un @@/home@@.

Dans la suite, toutes les étapes se feront en mode  »multi-users », c’est à dire, je ne suis pas passé par un redémarrage du système en mode  »rescue » $$Il n’a jamais fonctionné chez moi.$$, tout se fera « à chaud », d’où certaines contraintes.

Comme l’on travaille « à chaud », on ne peut pas démonter toutes les partitions, même si l’on emploie l’option @@-f@@.

__OpenSSH étant situé dans @@/usr@@, cette partition ne doit surtout pas être démontée__.

///umount -f /home
umount -f /usr/local
///

!!Première tentative

On va utiliser la commande [growfs(8)|http://www.freebsd.org/cgi/man.cgi?query=growfs&apropos=0&sektion=8&manpath=FreeBSD+8.0-RELEASE&format=html], pour augmenter la taille de la partition @@/usr@@.

On va d’abord commencer par changer la valeur @@kern.geom.debugflags@@ :
///sysctl kern.geom.debugflags=17
kern.geom.debugflags: 0 -> 17
///

Maintenant, on peut éditer la table des  »labels », pour supprimer l’entrée correspondant à @@/usr/local@@ et @@/home@@

///bsdlabel -e ad4s1

# /dev/ad4s1:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 4194304 0 4.2BSD 0 0 0
b: 4194304 4194304 swap
c: 312581745 0 unused 0 0 # « raw » part, don’t edi
t
d: 8116124 8388608 4.2BSD 0 0 0
e: 8116124 16504732 4.2BSD 0 0 0
f: 251658240 24620856 4.2BSD 0 0 0
g: 36302649 276279096 4.2BSD 0 0 0///

Dans mon cas, je supprime les lignes __f__ et __g__.

Pour valider les modifications, j’enregistre le fichier temporaire, et j’obtiens ce message d’erreur :
///bsdlabel: Class not found
re-edit the label? [y]:
///

Il m’est impossible de modifier la table des partitions, et par conséquent d’utiliser @@growfs@@.

!!Une autre approche

Puisque je suis dans l’incapacité de changer la taille de la partition @@/usr@@, je vais donc la conserver, et tout passera par @@/usr/local@@. $$Sous FreeBSD, lorsque l’on installe un logiciel, il s’installe dans @@/usr/local@@, même les fichiers de configuration.$$

Je vais utiliser pour cela [gpart(8)| http://www.freebsd.org/cgi/man.cgi?query=gpart&sektion=8&apropos=0&manpath=FreeBSD+8.0-RELEASE].

///gpart show ad4

=> 63 312581745 ad4 MBR (149G)
63 312581745 1 freebsd [active] (149G)

///

On constate, que FreeBSD est installé sur l’ensemble du disque. La commande @@gpart show ad4s1@@ permet de donner les index des partitions.

///=> 0 312581745 ad4s1 BSD (149G)
0 4194304 1 freebsd-ufs (2.0G)
4194304 4194304 2 freebsd-swap (2.0G)
8388608 8116124 4 freebsd-ufs (3.9G)
16504732 8116124 5 freebsd-ufs (3.9G)
24620856 12180188 6 freebsd-ufs (5.8G)
36801044 275780701 7 freebsd-ufs (132G)

///

Ensuite, il suffit ensuite de faire :

///gpart delete -i 7 ad4s1
gpart delete -i 6 ad4s1///

La partition __7__ correspondait au @@/home@@ et __6__ à @@/usr/local@@.

On peut vérifier l’état du disque avec @@gpart show ad4s1@@.

///=> 0 312581745 ad4s1 BSD (149G)
0 4194304 1 freebsd-ufs (2.0G)
4194304 4194304 2 freebsd-swap (2.0G)
8388608 8116124 4 freebsd-ufs (3.9G)
16504732 8116124 5 freebsd-ufs (3.9G)
24620856 287960889 – free – (137G)

///

J’ai gagné 137 gigas d’espace libre.

Pour rajouter une partition (dans mon cas deux),
///gpart add -i 6 -s 120G -t freebsd-ufs ad4s1
gpart add -i 7 -t freebsd-ufs ad4s1///

On obtiens ceci :
///gpart show ad4s1
=> 0 312581745 ad4s1 BSD (149G)
0 4194304 1 freebsd-ufs (2.0G)
4194304 4194304 2 freebsd-swap (2.0G)
8388608 8116124 4 freebsd-ufs (3.9G)
16504732 8116124 5 freebsd-ufs (3.9G)
24620856 251658240 6 freebsd-ufs (120G)
276279096 36302649 7 freebsd-ufs (17G)
///

On peut lancer la commande [newfs(8)|http://www.freebsd.org/cgi/man.cgi?query=newfs&apropos=0&sektion=8&manpath=FreeBSD+8.0-RELEASE&format=html] sur les nouvelles partions

///newfs -U /dev/ad4s1f
newfs -U /dev/ad4s1g///

Puis [tunefs(8)|http://www.freebsd.org/cgi/man.cgi?query=tunefs&apropos=0&sektion=8&manpath=FreeBSD+8.0-RELEASE&format=html], pour activer l’option  »soft-updates ».

///tunefs -n enable /dev/ad4s1f
tunefs -n enable /dev/ad4s1g///

On peut re-monter les partitions :
///mount /dev/ad4s1f /usr/local
mount /dev/ad4s1g /home///

La prochaine partie sera consacrée aux mises à jour de sécurité, et la gestion des ports.