|
|||||||||||||
Accueil
Articles
Logiciels
Liens |
Installation de FreeBSD à distance sur un serveur dédié DediboxPourquoi une nouvelle méthode ?Cet article présente une méthode alternative à celles de Jean-Claude Michot, Jean-Loïc Tignon, e-tahan, Daniel Gerzo et du fournisseur lui-même1 pour installer un (Free)BSD sur un serveur dédié Dedibox. Contrairement aux méthodes de ces précurseurs (que je remercie et salue au passage !), le procédé utilisé est générique et pourrait être utilisé pour installer presque tout type de système pour architecture x86 sur les serveurs dédiés de nombreux fournisseurs. Il permet notamment d'avoir un contrôle total sur l'origine et le niveau de personnalisation du système à installer, mais aussi de pouvoir tout tester chez soi avant chargement sur le serveur dédié... De ce fait, il permet aussi de factoriser les travaux d'installation et de gagner du temps ! Paradoxalement, c'est en cherchant cet été à installer OpenSolaris sur Dedibox, alors que je travaillais sur un projet de cloud computing hybride basé sur VirtualBox, que j'ai imaginé ce procédé :-) Principe de fonctionnementC'est vraiment tout simple2 : cela consiste à installer le système d'exploitation désiré dans une machine virtuelle puis à utiliser un procédé de type V2P (Virtual-to-Physical3) pour déployer le disque dur virtuel sur le disque dur physique du serveur à installer ! Du V2RP (Virtual-to-Remote-Physical) en quelque sorte :-) Comme toujours, cependant, le diablotin se cache dans les détails4 :
Eh bien, c'est ce que nous allons voir ensemble, pas à pas, dans ce qui suit ! Discours de la méthodeAfin de nous placer dans le cas le plus courant (par rapport au parti pris "générique" de cet article), je vais supposer que vous allez préparer votre système sous Windows XP (!). Bien entendu, vous pouvez aussi faire tout cela sous FreeBSD si vous l'utilisez déjà :-) Avant de commencer, vous aurez besoin d'installer les outils suivants (tous gratuits) :
1. Reconnaître le terrainLa première étape consiste donc à identifier les pilotes de périphériques dont nous allons avoir besoin. Pour cela, le plus simple est encore d'installer l'un des systèmes d'exploitation proposés par le fournisseur sur le serveur dédié. L'idéal étant de choisir le même système que celui que l'on souhaite installer ensuite ou du moins un Unix-like bavard lors du boot (tel que FreeBSD ou certains Linux). A noter :
Par exemple, sur une Dedibox XL :
D'où l'on retient que cette machine :
Et accessoirement6 :
Avant d'écraser cette installation, il faut également noter les caractéristiques du disque dur. Pour cela, la commande "fdisk" (comme sous DOS/Windows) permet de les obtenir :
Le point clé est le nombre de secteurs par piste. La plupart des outils de virtualisation utilisent des géométries de disques durs virtuels à 63 secteurs par pistes. Comme c'est également le cas pour de nombreux disques durs physiques (dont ceux de toutes les Dedibox), ça ne pose généralement pas de problème. Toutefois, vous rencontrerez peut être des disques durs physiques avec un autre nombre de secteurs par piste (j'ai déjà vu du 32 S/T sur certains serveurs lames). Dans ce cas, il faudra faire attention à bien aligner les débuts de partition sur des débuts de pistes, sans quoi les informations disponibles dans la table de partition ne permettront pas de retrouver le secteur d'amorçage de votre système d'exploitation dans la piste et donc ça ne fonctionnera pas ! Pour éviter cela, vous pouvez :
Voici un exemple pour le second point, où je prépare une image disque virtuelle pour un disque physique cible avec 255 têtes et 32 secteurs/piste :
Enfin, si vous avez oublié les paramètres réseau de la machine, les fichiers "/etc/rc.conf" et "/etc/resolv.conf" vous permettront de les retrouver... 2. Préparer le système à installerMuni de ces informations nous allons maintenant pouvoir préparer la machine virtuelle à installer. 2.1. Pourquoi sur VirtualBox ?Comme le laissait entendre le pré-requis d'installation de VirtualBox, c'est sous ce virtualiseur que je vous propose de réaliser l'installation de votre machine virtuelle car il intègre directement un outil de V2P.7 Celui-ci fait partie d'un groupe de fonctions non documentées de l'interface de contrôle de VirtualBox en ligne de commande :
La découverte de ce genre d'oeufs de Pâques est grandement simplifiée par le fait de disposer du code source de l'application8 :-) Notez, au passage, la sous-commande "converthd", qui permet de faire des conversions de format entre les formats d'images disque des virtualiseurs les plus courants ! 2.2. Utiliser VirtualBoxPuisque nous voici rassurés sur la possibilité d'utiliser VirtualBox pour préparer notre futur serveur, je vais vous donner quelques astuces pour vous éviter de perdre du temps avec ce logiciel. Pour commencer, si votre serveur dédié possède plus de 3 Go de mémoire vive, vous souhaiterez probablement y installer un système d'exploitation 64 bits afin de profiter de celle-ci en totalité. Dans ce cas, je vous suggère vivement de lire le chapitre sur les systèmes invités 64 bits dans la documentation de VirtualBox. Toutes les conditions sont importantes ! Pour la première option, votre CPU et le BIOS de votre carte mère doivent supporter la virtualisation matérielle. Pour la troisième condition, afin d'éviter le message d'erreur "cpu does not support long mode" au boot de FreeBSD, vous devez sélectionner "FreeBSD (64 bit)" comme version de système dans VirtualBox.
Si vous y installiez un système Windows, vous pourriez vérifier les deux premières conditions à l'aide de l'outil SecurAble. Si tout se passait bien, vous devriez alors avoir un affichage ressemblant à ce qui suit :
En second lieu, si le disque dur du serveur dédié est de type SATA (ce qui est assez courant de nos jours et systématique sur Dedibox) ou SCSI, vous devez déclarer un contrôleur supplémentaire et préciser que l'emplacement de votre disque dur virtuel sont de ce type :
Si vous êtes en train d'installer un FreeBSD 64 bits, vos paramètres VirtualBox pourraient donc ressembler à ce qui suit :
Notez bien que vos paramètres "Système", "Affichage" et "Réseau" n'ont pas besoin, à ce stade, de correspondre à ceux du serveur physique... Si, en revanche, vous souhaitez installer un FreeBSD 32 bits, le paramètre "Système:" vaudra "FreeBSD" tout court et l'image ISO du CD d'installation sera plutôt quelque chose comme "8.0-RELEASE-i386-disc1.iso". 2.3. Installer votre système d'exploitation sur VirtualBoxBon ! Vous pouvez maintenant lancer la machine virtuelle en bootant sur votre CD ou DVD d'installation et réaliser votre installation comme vous le souhaitez. Je ne vais pas détailler cette étape (vous pouvez toutefois vous inspirer de mon vieil article sur l'installation de FreeBSD 5.0 car la procédure n'a pratiquement pas changé depuis le temps), hormis pour vous suggérer :
Pour information : j'ai mis au point un utilitaire qui permet de couvrir automatiquement cette étape et tout ou partie des suivantes à partir d'une description textuelle en une page du système à produire, configuré, optimisé et sécurisé. Cet utilitaire fera l'objet d'un futur article dès que je pourrai trouver un peu de temps pour le rédiger... 2.4. Personnaliser votre système d'exploitation pour votre serveur dédiéUne fois prêt, il ne vous reste plus qu'à paramétrer le réseau dans votre machine virtuelle pour avoir une chance de reprendre le contact avec votre serveur dédié une fois celui-ci installé. C'est aussi un très bon moment pour réaliser une copie de sauvegarde de votre machine virtuelle, ce qui vous permettra, si nécessaire, de capitaliser sur vos efforts pour installer très rapidement de futurs serveurs dédiés... Pour personnaliser votre serveur dédié, éditez les fichiers "/etc/resolv.conf" et "/etc/rc.conf", en remplaçant dans ce dernier les étiquettes :
Si vous avez commandé des adresses IP supplémentaires, vous pouvez les activer en copiant et décommentant les lignes d'alias ci-dessus (et en incrémentant les numéros d'alias).
2.5. Nettoyer votre disque dur virtuelAvant d'arrêter votre système virtualisé et sa machine virtuelle, il est encore temps de faire un peu de ménage dans les fichiers temporaires, afin de vous assurer que l'image de disque dur que vous téléchargerez bientôt sur votre serveur dédié soit aussi petite que possible. Pour cela, vous pouvez sans risque procéder aux suppressions suivantes :
Pour aller plus loin, vous pouvez aussi supprimer les sources du système (attention à votre fichier de configuration de noyau, si vous l'avez personnalisé) et l'arbre des ports, car ceux-ci pourront être reconstituées par Csup sur le système cible :
Pour aller encore plus loin et optimiser les performances de la compression, vous pouvez enfin remplir par des zéros tous les secteurs inoccupés de votre disque dur virtuel (sous VirtualBox ça ne fait pas grossir une image dynamique) avec la commande suivante :
Dans le monde Windows, l'excellent Mark Russinovich propose un utilitaire appelé SDelete pour faire l'équivalent. 2.6. Préparer votre image de disque durComme je l'expliquais en introduction, même si vous avez sélectionné un disque dur virtuel statique dans VirtualBox (c'est-à-dire avec une pré allocation de la totalité de l'espace demandé), il va vous falloir convertir ce disque en une image de disque dur physique afin de retirer les informations techniques contenues dans le format de fichier .vdi10.
Pour cela, il suffit d'utiliser la commande cachée "VBoxManage internalcommands converttoraw image.vdi image.raw" :
Afin de ne pas saturer votre connexion ADSL pendant des jours, il est préférable de compresser cette image disque autant que possible avant de la télécharger sur votre serveur dédié. Rescue Box, le système de secours de la Dedibox à partir duquel nous allons réaliser la suite de l'installation, est un système Linux Ubuntu 8.04 Live (fonctionnant en mémoire vive donc), équipé des compresseurs gzip 1.3.12 et bzip2 1.0.4, et du requêteur GNU wget 1.10.2.
Bzip2 étant le plus puissant des deux compresseurs, c'est celui que nous retenons pour la compression de l'image :
Il ne vous reste plus qu'à vérifier que l'image disque compressée pèse moins de 2 Go car la commande "wget" de la Rescue Box semble ne pas être capable de manipuler des fichiers plus gros... 3. Plaquer l'image du disque sur le disque dur physiqueL'étape suivante consiste à télécharger votre image disque sur un serveur accessible depuis votre serveur dédié. Si vous ne disposez pas d'autres serveurs dédiés, vous pouvez utiliser le Service d'envoi de fichiers de Free avec votre application FileZilla Client.
Il ne vous reste plus alors qu'à lancer le système de secours sur votre nouveau serveur Dedibox, vous y connecter en SSH, devenir "root" et lancer la commande "wget -O - http://URL/freebsd8.raw.bz2 | bunzip2 | dd of=/dev/sda bs=1M" pour télécharger l'image disque, la décompresser en mémoire à la volée et écraser (!) le disque dur physique avec :
(A noter : je n'ai jamais eu l'occasion de faire ce genre de chose chez OVH, mais pour ce que j'ai pu parcourir rapidement sur leur mode de secours (notamment "Rescue en SSH"), ça me semble tout à fait faisable).
Puis à repasser votre serveur de mode normal, attendre une minute ou deux et tenter de vous y connecter en SSH :
Ca marche :-) 4. Exploiter la totalité de l'espace disque disponibleA ce stade des opérations, nous disposons d'un système opérationnel11, mais qui n'utilise qu'une petite partie de l'espace disque disponible (20 / 476 GB) :
Pour récupérer l'espace manquant, il faut tout d'abord que nous levions un verrou nous empêchant de modifier le secteur d'amorçage du disque dur (celui qui contient la table de partition) sur un système actif :
Nous pouvons maintenant tout simplement utiliser "systinstall" pour récupérer l'espace restant :
Menu "Configure", puis "fdisk". Confirmez la géométrie du disque :
Placez-vous sur l'espace inoccupé puis appuyez sur "C" pour créer une nouvelle partition :
Remettez-vous sur la partition principale (la seconde dans cet exemple) puis appuyez sur "S" pour la rendre active :
Appuyez sur "W" pour écrire la nouvelle table de partition puis confirmez :
Pas la peine de toucher au programme d'amorçage (de toute façon, à distance, il n'y aura personne pour sélectionner un système au boot du serveur) :
Il n'y a plus qu'à confirmer :
Vous disposez maintenant d'une partition couvrant la totalité de l'espace restant mais elle n'est pas formatée. Ceci ne peut apparemment être fait directement, aussi vous devez redémarrer votre serveur :
Une fois reconnecté, entrez les commandes suivantes pour finir le travail (attention au numéro de votre nouvelle partition12) :
ConclusionVoila. C'est fini ! L'explication a été un peu longue, mais c'est beaucoup moins compliqué que ça n'en a l'air, et surtout, comme je le disais précédemment, on peut automatiser la plupart des étapes (en fait, toutes sauf la 3ème, avec l'utilitaire que j'évoquais). A vous de jouer maintenant, avec FreeBSD ou le système d'exploitation de votre choix !
--
Si par hasard l'un des liens externes ne fonctionnait plus, tentez votre chance sur la machine à voyager dans le temps d'Internet ! |