Réinstaller un serveur dédié "from scratch"
19/09/2006
Depuis Dedibox, il est rentré dans mes habitudes de réinstaller entièrement un serveur dédié une fois qu’il m’a été livré. Oui, entièrement, distribution y comprise. J’y vois deux intérêts principaux :
- Vous pouvez installer des distributions non proposées en standard par votre fournisseur de serveur dédié.
- C’est plus propre. En effet, je n’aime pas les systèmes préconfigurés qui sont, le plus souvent, conçus pour les débutants avec un nombre incroyable de choses à reparamétrer. Par ailleurs, j’ai l’habitude de travailler exclusivement avec la version Unstable de Debian (même en production, sisi, et je ne suis pas fou) ; or, mettre à jour la Sarge proposée par OVH vers Unstable est une opération assez sale, qui laisse des traces de l’ancienne configuration un peu partout. D’une manière générale, il est donc plus judicieux de réinstaller entièrement le système afin d’avoir un meilleur contrôle sur ce dernier.
- Si votre fournisseur propose un mode « rescue » mais pas de partionnement personnalisé, vous pouvez utiliser le rescue pour faire votre propre partionnement.
- Dans le cas des serveurs dédiés d’OVH dotés d’un processeur 64 bits (notamment le Start 310G, le nouveau serveur d’Agrégaweb), il est impossible de demander l’installation de la version AMD64 de Debian. L’avantage de la réinstallation devient dès lors indéniable, car on peut alors installer une Debian AMD64, et profiter ainsi des avancées de cette architecture. Ainsi, le nouveau serveur d’Agrégaweb tourne sous Debian AMD64.
Mais, me diriez-vous, comment cela est-il faisable sans accès physique à la machine, seulement un accès SSH ? En fait, la possibilité d’effectuer la manipulation dépend de 3 conditions : la présence d’un système de réinstallation gratuite du serveur (pour remettre celui-ci à sa configuration d’usine « au cas où »), la présence d’un système dit « rescue » (système d’exploitation distant minimal conçu au départ pour être utilisé en cas de pépin sur la machine), et la présence d’un système de partionnement personnalisé du (des) disque(s) dur(s) du serveur [1]. Les relations entre ces différentes conditions étant plutôt complexes, je les ai regroupées dans un tableau :
| Cas n° | Rescue | Réinst. | Part. | Commentaire |
|---|---|---|---|---|
| 1 | Oui | Oui | Oui | Aucun problème, vous pourrez effectuer la procédure de manière confortable. |
| 2 | Oui | Oui | Non | L’opération est possible, mais vous devrez vous assurer que le mode rescue proposé dispose des outils nécéssaires pour pouvoir installer le nouveau système depuis le système rescue [2]. Si ce n’est pas le cas, vous devrez installer le nouveau système depuis l’existant, ce qui impose de conserver le partionnement d’origine, ce qui peut se réveler problématique concernant l’emplacement du nouveau système. |
| 3 | Oui | Non | Oui | L’opération est possible, mais attention, une fois la procédure commencée, vous ne pourrez pas revenir en arrière si vous n’arrivez pas à faire booter le serveur sur votre nouveau système. |
| 4 | Non | Oui | Oui | L’opération est possible mais fastidieuse : si vous n’arrivez pas à faire booter votre nouveau système du premier coup (ce qui a de fortes chances d’arriver), vous êtes obligés de tout recommencer à zéro en utilisant la réinstallation automatique. |
| 5 | Oui | Non | Non | L’opération est possible, mais vous devrez vous assurer que le mode rescue proposé dispose des outils nécéssaires pour pouvoir installer le nouveau système depuis le système rescue [2]. Si ce n’est pas le cas, vous devrez installer le nouveau système depuis l’existant, ce qui impose de conserver le partionnement d’origine, ce qui peut se réveler problématique concernant l’emplacement du nouveau système. Par ailleurs, une fois la procédure commencée, vous ne pourrez pas revenir en arrière si vous n’arrivez pas à faire booter le serveur sur votre nouveau système, soyez donc sûr de vous. |
| 6 | Non | Oui | Non | L’opération est possible, mais vous devrez installer le nouveau système depuis l’existant, ce qui impose de conserver le partionnement d’origine, ce qui peut se réveler problématique concernant l’emplacement du nouveau système. Par ailleurs, l’opération se révèlera probablement fastidieuse : si vous n’arrivez pas à faire booter votre nouveau système du premier coup (ce qui a de fortes chances d’arriver), vous êtes obligés de tout recommencer à zéro en utilisant la réinstallation automatique. |
| 7 | Non | Non | Oui | L’opération est théoriquement possible mais tellement dangereuse que c’en devient suicidaire : si votre nouveau système ne boote pas du premier coup, vous êtes bon pour payer la réinstallation (qui est en général facturée à un prix dissuasif). |
| 8 | Non | Non | Non |
De là, vous avez deux méthodes à votre disposition pour mettre en place votre nouveau système :
- Installer directement le système d’exploitation depuis l’ancien système ou le système rescue : cela n’est uniquement possible que si l’OS que vous vous apprêtez à installer propose une installation « à chaud », c’est à dire sans support sur lequel vous aurez besoin de rebooter (vous faites l’installation entièrement à partir d’un système existant). Debian (via l’utilitaire
debootstrap) et Gentoo, entre autres, le proposent. C’est la solution la plus propre et la plus fiable. - Préfabriquer une image : c’est la seule solution possible si la distribution visée ne propose pas d’installation à chaud. La méthode consiste à installer entièrement le système chez vous, en faisant « comme si » vous étiez sur le serveur dédié, puis à recopier une image du système ainsi créé sur votre serveur dédié, sur laquelle vous pourrez ensuite booter. L’avantage est que cela fonctionne pour tous les systèmes d’exploitation [4], l’inconvénient est que le système obtenu peut se révéler plus ou moins propre puisqu’il n’a pas été installé sur son environnement matériel final - avec la plupart des distributions Linux, le système installé est le même quel que soit le matériel, mais ce n’est peut-être pas le cas pour d’autres types de systèmes. Par ailleurs, cette méthode est plus compliquée et très peu d’aide existe sur Internet pour effectuer ce genre d’opération.
Etant donné que les seules réinstallations que j’aie effectuées concernaient des Debian Unstable installées à chaud, je ne peux pas vous en dire plus sur la deuxième méthode. Voici quelques conseils :
- Lors du partitonnement initial, placez le système préinstallé par votre fournisseur dans une petite partition (2 Go par exemple) au début du disque dur, puis placez la ou les partitions sur lesquelles sera installé votre nouveau système. Ne placez pas de swap à ce stade [5]. Ensuite, lorsque le nouveau système est en place, remplacez la première partition contenant l’ancien système, devenue inutile, par une partition de swap qui servira à votre nouveau système. D’autres variantes sont évidemment possibles, menant au même résultat.
- Evidemment, il est plus confortable d’installer le nouveau système depuis l’ancien préinstallé que depuis le système rescue, sauf si vous n’avez pas le choix [2].
- Si vous hésitez lors de la configuration du nouveau système (par exemple, si elle dépend d’une particularité du matériel dont vous n’avez pas connaissance), gardez à l’esprit que la configuration de votre ancien système est une précieuse mine d’informations, car elle, on est sûr qu’elle fonctionne.
- Si vous tentez d’utiliser la première méthode pour installer un système 64 bits à partir d’un système 32 bits (pour les processeurs de type x86_64), bootez d’abord sur votre ancien système avec un kernel compilé pour du 64 bits, sinon vous ne pourrez pas utiliser les binaires de votre nouveau système dans l’ancien : typiquement, vous voudrez sûrement faire un
chrootsur votre nouveau système avant de booter dessus, pour installer des packages par exemple, or vous ne pourrez pas le faire depuis un kernel 32 bits car tous les binaires contenus dans lechrootrefuseront de fonctionner tant qu’ils ne tournent pas sur un kernel conçu pour les processeurs x86_64. (notons par ailleurs quedebootstrapcrée des environnementschrootpour installer les packages de base,debootstraprefusera donc de terminer l’installation d’une Debian AMD64 à partir d’un kernel 32 bits). - Faites en sorte que votre premier boot se fasse sur un système le plus simple possible pour éviter tout oubli ou erreur de configuration : installez un Kernel générique, préférez le bootloader LILO à GRUB (j’ai commis l’erreur d’installer directement GRUB sur un serveur OVH, alors que ce dernier ne le supportait pas, et cela m’a fait perdre de nombreuses heures de travail), configurez les interfaces réseau en statique (et non DHCP) de préférence. Si vous voulez un système plus complexe, modifiez-le après coup.
- Avant d’essayer de booter sur votre nouveau système, vérifiez bien que vous n’avez rien oublié. Assurez vous du bon fonctionnement de toute la chaîne de boot jusqu’au lancement des services de contrôle à distance : rappellez-vous que le système que vous allez installer doit passer du bootloader au serveur SSH (par exemple) sans oublier les interfaces réseau, et que tout cela doit se faire sans anicroche, surtout si vous n’avez pas de système rescue pour rectifier le tir après coup, ou si ce dernier devient inutilisable (par exemple si votre OS utilise un système de fichier non reconnu par le système rescue, ce qui sera très probablement le cas si vous tentez d’installer un système exotique). La vérification du kernel sur lequel le premier boot se fera, ainsi que de la configuration du bootloader, méritent une attention particulière.
- Attention, lors des premiers boots, les problèmes survenant avant le montage des systèmes de fichiers (c’est à dire au niveau du bootloader ou du kernel) ne pourront pas être consignés dans des logs, ce qui vous contraindra à les rechercher à l’aveuglette. Soyez méthodique dans la recherche du problème et procédez par élimination.
Bonne chance !
[1] Curieusement, OVH ne propose le partitionnement personnalisé que lors de la réinstallation gratuite, jamais lors de la première installation. Donc, contrairement aux apparences, les clients d’OVH se trouvent dans le cas 1 du tableau.
[2] Les administrateurs souhaitant utiliser le système rescue pour installer leur nouveau système ET planifiant d’installer un nouveau système 64 bits doivent au préalable s’assurer que le système rescue proposé tourne sur un kernel 64 bits [3].
[3] Cette restriction ne s’applique pas si vous souhaitez installer votre nouveau système depuis une image préfabriquée (méthode 2).
[4] Oui, même Windows ! Certains ont déjà réussi à l’installer sur une Dedibox par cette méthode ; néanmoins, elle demande un certain nombre de compétences préalables en administration de systèmes Windows pour être exploitable.
[5] Certains systèmes de partitionnement particulièrement mal foutus (tels celui d’OVH) vous obligent à choisir une partition de type swap, dans ce cas placez-là en lieu et place d’une autre partition et recréez ensuite un système de fichiers normal sur la partition contenant le swap depuis le système préinstallé.