dontpanicit
dontpanicit
Don't Panic IT
15 posts
Comme mon travail en tant qu’administrateur système dans une société Web me fait rencontrer de nouveaux problèmes chaques jours, je me suis dit qu'il fallait que le monde profite de mes solutions :).
Don't wanna be here? Send us removal request.
dontpanicit · 13 years ago
Text
Alternate USB et CD, la meeerde!
Putin. Ça fait 3 mois que j'ai rien publié. Ça craint. En même temps j'ai rien fait qui aurait pu justifié un GROS article. Et même pour celui là, j'ai un peu honte.
Aujourd'hui j'vais vous donner une petite astuce pour les alternates CD des distributions Ubuntu.
Pour rappel, les alternates CD, ce sont des CD d'installation Linux sans la possibilité de faire du LiveCD (et sans avoir a passer par elle pour installer le système). Elles trouvent leur utilité sur les vieilles bécanes. D'ailleurs, c'est assez mal foutu, puisqu'une distribution légère comme Xubuntu et Lubuntu, faites pour être installées sur de vieilles machines, n'arrivent pas (ou difficilement au prix d'heures de chargement) à tourner en LiveCD. Forcement, c'est des système qui, Ok, a partir du disque, peuvent se contenter de 512 MoRAM, mais en LiveCD, MEGAPURGE.
Bref, donc il existe des versions moches de liveCD, ou l'on se retrouve vers des écrans d'installation style 1985. C'est très OldScool, et les habitués de DéBian seront content de l'avoir.
Le problème que j'ai rencontré, via le créateur de CD de démarrage d'Ubuntu, c'est qu'une fois la clé USB remplie de la version Alternate de Xubuntu, pendant l'installation, il me demandait (ce gros baltringue) de mettre le CD de Xubuntu. C'est idiot. Mais chez Canonical, on en est plus a une connerie près (dédicace pour @Jee4404 ).
Le Wiki d'Ubuntu met a sa disposition une solution : http://doc.ubuntu-fr.org/installation_alternate en ajoutant cdrom-detect/try-usb=true à votre isolinux.cfg. Personnellement, pour moi ça n'a pas marché, et en plus visiblement la 12.04 de Xubuntu est déjà configurée comme ça par défaut.
Heureusement, ce dernier, après avoir lâchement abandonné l'installation, vous propose plusieurs choses, comme continuer l'installation (mais il va gueuler parce qu'il aura pas les fichiers) ou alors vous donner un accès au shell (dernier dans la liste des propositions).
Donc, il faut prendre l'accès au shell, et se retrouver avec le bon vieux shell old Unix.
~ #
On va donc TRUANDER. Ouai. Vraiment. On va lui raconter des cracks a Linux.
Déjà, il faut que vous connaissiez le périphérique de votre clé USB. Vous savez, dans /dev/, il y a plein de sda, sdb, sdc etc..., et bien il faut trouver celui de votre clé. Si vous n'avez qu'un disque dur et votre clé, ça devrait normalement être /dev/sdb, mais vérifiez si possible, c'est plus sur.
Suivez les commandes ci dessous, en remplaçant sdX par votre clé USB (par exemple sda, sdb ou autre), et je vous les explique après:
~ # cd /dev
~ # rm cdrom
~ # ln -s /dev/sdX /dev/cdrom
"Ok mec c'est quoi cette bouffonnerie?" vous dites vous. Et bien je me suis posé le problème a l'envers. "Si Linux veut un périphérique sur lequel pomper ses fichier, et bien on a qu'a lui donner". De façon automatique, il cherchait visiblement a faire un mount /dev/cdrom /cdrom , je me suis donc dit qu'un point de montage est un point de montage, et qu'il fallait donc lui faire croire que la clé USB était un CD.
On supprime donc le périphérique du cdrom (qui est physiquement lui aussi un lien symbolique), et on le remplace par un autre lien symbolique, du même nom, qui pointe vers la clé USB.
Et là TADAAAA.
On reprend l'installation là ou il s'était arrêté (monter le CD), et on envoie. Et là miracle, il lance l'analyse du CD puis l'installation. Bon, c'est long par contre hein, on est sur du 512 MoRam et un intel Celeron Mobile. Faut pas le brusquer.
/me lance l'ordi par la fenêtre.
Voila voila. C'était cool non?
"Ouaaai, génial! 4ans pour installé Linux sur cette merde! Ça c'est cool!"
4 notes · View notes
dontpanicit · 13 years ago
Text
Comment faire des miracles avec un système de merde (Windows 7).
Bonjour à tous, petit tuto du matin qui porte sur un système d'exploitation un peu plus connu que GNU/Linux : Microsoft Windows 7.
Vous avez sans doutes eu le problème suivant un jour dans votre vie de nerd :
Vous avez acheté un nouvel ordi, ou une nouvelle carte mère pour votre ordi, dans le but de booster vos performances et pouvoirs dépasser les 15 FPS à Dalaran sur World of Warcraft. Vous l'installez, montez votre nouvelle carte, votre nouveau processeur, votre RAM, vous remontez votre disque dur, vous lancez l'ordi, et là, patatra, au lancement du système, votre Windows vous gratifie d'un merveilleux BSOD (Blue Screen Of Death), vous fais un joyeux fuck et s'éteint. Pour les systèmes plus récents, comme Vista ou Seven, qui accueillent un WinRE (partition de récupération Windows), le système va alors tenter de réparer l'erreur, et va, comme solution miraculeuse, vous demander de reformater votre partition système (si vous en avez une) ou tout votre disque (si vous n'aviez pas prévu le coup).
De rage, donc, vous projetez violemment votre nouvelle carte mère par dessus la rambarde de la fenêtre, et remontez tout votre ancien matériel afin d'effectuer une sauvegarde de vos précieux fichiers de porn personnels.
PAS DE PANIQUE!
Nakou à creusé la question, lui même confronté à ce problème hier soir. Mon dernier reformatage datant de moins de 6 mois, je n'avais aucune envie de reformater, et de perdre ainsi mon iTunes bien rempli, mes jeux et tout ce que je glandouille sur mon PC fixe, même si la perte n'aurait été que temporaire, vu que je fais des sauvegardes (Règle de l'Administrateur Système n°1 : Assurez vous toujours de la redondance de vos sauvegardes).
Avant propos et Explications
Il est important de comprendre déjà pourquoi est ce que Windows est si compliqué à ce niveau là, alors qu'un Linux peut se lancer simultanement sur plusieurs machines via un montage NFS, avec des materiels differents (carte mère, RAM, disques et carte graphiques) sans souci.
En fait tout deux sont d'une conception radicalement différente. Alors que Linux s'appuis sur son noyau modulaire, et sur sa capacité à configurer ses périphériques depuis la couche utilisateur, Windows lui inscrit lui presque tout en dur dans le système à l'installation.
Ce qui nous pose problème ici en fait, c'est l'inscription dans les clés de registres des contrôleurs, issues de la carte mère. Ces contrôleurs vont permettes à Windows d'utiliser son matériel, mais ces derniers ne correspondront plus au nouveau une fois transférer, ce qui nous pose problème ici.
Solution
La solution est donc la suivante. Nous allons utilisé un outil, inclus dans Windows 7, qui permet normalement d'initialiser un système Windows en vue de son déploiement sur un nombre important. Il était évident qu'il existait quelque chose chez Microsoft pour faire ça. Imaginez que vous ne puissiez jamais cloner un système, et qu'il vous faut le déployer sur une centaine de machine. Cela impliquerai donc de prendre le temps d'installer Windows sur toutes les machines. Impensable. En temps normal, on installe un seul et unique système, configuré et possédant les programmes nécessaires, puis on le déploie sous forme de clone dans le parc informatique.
J'ai donc trouvé cet outil. C'est l'outil "Sysprep" pour "System Preparation" qui permet, une fois une machine installée, de purger la base de registre et le magasin de Microsoft pour en extraire les valeurs correspondantes au matériel.
Ici nous allons détourner son utilisation afin de changer d'ordinateur ou de matériel sans changer de système.
Procédure
Uniquement pour Windows 7.
A ne faire qu'une fois la sauvegarde de votre système effectué correctement, sur support externe comme un disque dur externe ou une clé USB.
Donc démarrez votre Windows sur votre ancien matériel, allez dans le menu démarrer. Dans le champ recherche, tapez "cmd" et entré.
Vous voici dans l'invite de commande.
tapez :
cd c:\Windows\System32\Sysprep\
vous êtes maintenant dans le dossier du sysprep et vous devriez voir :
c:\Windows\System32\Sysprep\>
maintenant vous allez taper :
> sysprep.exe -generalize -oobe
Une boite de dialogue va s'afficher pour lancer la purge de votre base de registre.
Une fois terminé, l'ordinateur va s'eteindre correctement.
Vous pouvez donc prendre votre disque dur système, et le transférer sur votre nouveau matériel.
Et maintenant priez. Priez très fort. Car il y a tout de même une chance que vous deviez réinstaller tout votre système.
Si le logo au dessus de "Démarrage de Windows" s'unifie et se forme correctement, et commence à pulser, c'est gagné, le chargement de la carte mère est en début de processus. Si ça plante après, c'est très certainement une autre partie de votre matériel qui déconne.
Au démarrage, il va démarrer comme un système tout neuf, vous demander un nom d'utilisateur et de machine :
PAS DE PANIQUE
Votre/Vos utilisateur(s) existe(nt) toujours, d'ailleurs si vous cherche à mettre un pseudonyme identique à celui que vous utilisez, il va vous envoyer péter disant qu'il est déjà pris, ce qui était pour moi, dans un moment de panique, un putin de bon signe. Une fois ce passage passé, le système va créer une nouvelle base de registre pour le matériel, et inscrire les partie effacée par le sysprep.
Il me semble qu'il y a un redémarrage et Tadaaa, votre session, vos fichiers et vos programmes sont de retours.
La suite
Sachez qu'après une telle opération, je conseille de faire quand même une défrag et un check disk, pour éviter que la vitesse de votre nouveau matériel ne pâtisse de la fragmentation désastreuse des systèmes microsoft =). Sachez aussi que votre version de Windows ne sera plus considérée comme activée, il vous faudra donc faire clic droit sur "ordinateur" dans le menu démarré, propriété, et à descendre tout en bas de la page pour le réactiver.
https://twitter.com/#!/Nakou/media/slideshow?url=pic.twitter.com%2Fri98nH8Q https://twitter.com/#!/Nakou/media/slideshow?url=pic.twitter.com%2FXGAeqPwU Voila, votre système fonctionne, nous vous souhaitons, moi, Sykrim et ma grosse bestiole, bonne continuation, et à bientôt pour un nouvel article!
9 notes · View notes
dontpanicit · 13 years ago
Text
Popularité de GNU/Linux, jeux vidéos, bref, "Guys, DO YOUR F**KIN JOB!"
Je suis quelqu'un qui débat. Je débat sur tout et n'importe quoi, parce qu'il m'importe de faire passer des idées. Au delà de tout débat politique que je pourrai tenir, dans d'autres lieux que ce blog consacré à l'informatique, je veux ici aborder une idée reçue :
"Linux, ça sert a rien! Rien ne tourne dessus et c'est compliqué à utiliser!"
Cette phrase, je l'entends maintes fois prononcés par des utilisateurs déçus, des néophytes écurés par la complexité apparente des systèmes linux, souvent due à l'idée véhiculé par les médias. Elle est aussi prononcé parfois par des ignorants, mais ceux là sont pardonné par leur inculture totale du sujet. Ceux là je les ignore et les méprises, car ils n'ont pas fait l'effort, et donc méritent tout, sauf mon respect.
Dont panic! Linux is simple!*
Contrairement à l'idée que les gens s'en font, GNU/Linux, et la distribution issue de Debian, Ubuntu, sont aujourd'hui tellement simple que même votre grand mère pourrait l'utiliser.
Mais il y a un hic, et c'est là que les gens gueulent, c'est la difficulté de faire démarrer des éléments prévus pour Windows sur leur système Linux.
On pourrait se réjouir de la présence de Wine, qui permet tant bien que mal de faire démarrer quelques jeux, comme World of Warcraft, LoL et d'autres, en contrepartie de quelques efforts de configuration, qui sont, tout de même, de plus en plus assistés (notamment grâce à Winetricks). Le site de WineHQ annonce quand même plus de 5350 jeux supportés dont Skyrim en qualité "Gold et Platinium", ce qui implique une gestion assez magistrale des jeux récents.
Au delà des jeux, c'est près de 12000 applications Microsoft que Wine peut faire tourner, avec plus ou moins de réussite, certes, mais quand même, ce n'est pas rien.
Mais maintenant, il y a quelque chose de vrai. Pour faire tourner un jeu sur Linux, il faut donc installer Linux + Wine + Dépendances + Eléments de Wine nécessaire au bon fonctionnement de jeu.
Comparativement à Windows, ou l'on insère le DVD, ou on télécharge le jeu (légalement bien sur), on prie pour que ça ne plante pas, et on joue.
Mais est-ce réellement la faute des utilisateurs?
Microsoft a gangrené le marché pendant 30 ans.
Il y a quelque chose que j'aimerai clarifier ici et briser pour certains une idée reçue : Ce n'est pas parce qu'un programme tourne sous GNU/Linux, qu'il est forcement gratuit, ou libre, ou Open source, qu'il respecte obligatoirement la License GPL. Certains programmes tournent sous copyright (même si ça déplais à Stallman) et coûtes des ronds. Ubuntu accueil d'ailleurs depuis la 11.10 des applications payantes dans sa logithèque en ligne. le business est donc possible sur Linux! Peut être même plus, compte tenu de l'économie réalisé par les consommateurs en se tournant vers un système d'exploitation entièrement gratuit.
Partant du principe qu'il existe donc un monde obéissant aux lois du capital dans l'univers du libre, que coûterait aux développeurs de jeux vidéo, pour compiler, compacter et sortir leurs jeux sur Linux?
Peut être un peu de temps, un peu d'argent, mais quand même, on ne dois pas le re-coder entièrement à ce que je sache! Rallonger d'un mois la sortie d'un jeu pour qu'ils soit portable sur tout les systèmes, c'est pourtant pas bien compliqué. Notch l'a compris en sortant un jeu multi-plateforme. De plus les langages propriétaires comme le C# seraient les seuls affectés par un manque de portabilité, mais on s'en fiche, c'est du Java! Y'a qu'a le transposer et lâcher définitivement le C# qui reste quand même une erreur colossale!
En plus pour le peu de jeu qui ont fait le choix du C#, une infime partie du panel de jeux actuellement sur le marché ne serait pas affectés.
Un effort commun
Mon propos est le suivant : Microsoft Windows, avec la sortie de sa version 8, va devenir de plus en plus privative : Contrôle totale sur la machine, désinstallation à distances des outils piratés, la menace d'un contrôle total sera peut être permanente sur ces systèmes, et les gens vont peut-être, je l'espère, avoir l'intelligence de chercher une alternative. Cette volonté qui viendra, j'en suis sur, de la part d'utilisateur aguerris mais pas forcement forcenés (je pense à ceux qui sont capables en temps normal de pirater un Photoshop CS5 en appliquant des patchs sur leur fichiers hosts) qui chercherons des solutions d’échapper aux contrôles, que ce soit par liberté de piratage, ou par envie d'être libre, tout simplement.
Il est pour moi donc important que la communauté des développeurs de jeux vidéos se mettent en ordre de marche pour assurer la portabilité des produits sur les plateformes GNU/Linux.
Valve Corporation, par le biais de Steam, avait suscité l'espoir en annonçant la sortie hypothétique d'un client Steam Linux, ouvrant ainsi la voie aux studios de pouvoir faire profiter aux utilisateurs de ce système, une partie de la bibliothèque dans laquelle ont retrouve une grande quantité des jeux PC actuel.
Il faut à tout pris soutenir et encouragé des projets de ce type, par le biais de sondages, et de réclamation pour montrer que le marché est là, et qu'il attend. il faut pousser aussi les autres, comme Origin pour EAGames, et des studios comme Ubisoft ,à lancer eux aussi la même initiative, et les pousser à sortir leurs jeux sous Linux.
Oui, ce billet est plus ou moins un appel, un appel d'un développeur et d'un joueur, tournant sous GNU/Linux depuis maintenant 5 ans, et qui aimerai beaucoup se débarrasser de Windows 7 sur son PC fixe, qu'il est obligé de lancer tout les jours pour jouer sur Steam :p.
*Pas de panique, Linux, c'est Simple!
5 notes · View notes
dontpanicit · 13 years ago
Text
Scripts et erreurs "bad substitution error"
Bonjour à tous.
Aujourd'hui pas de tuto mais une petite info.
Si un jour vous installer un script depuis une machine Debian vers un Ubuntu, ou vers une autre version de Gnu/Linux ou une version plus ou moins récentes, vous pouvez, à l'execution, vous retrouver devant l'erreur "Bad Substitution".
PAS DE PANIQUE
Cette erreur est très souvent lié aux version du shell que vous utilisez en entête de votre script.
Donc pensez à tenter de remplacer 
#!/bin/sh
Par d'autres variantes de votre Shell comme par exemple 
#!/bin/bash
Ou comme je l'ai vu sur un forum 
#!/usr/bin/ksh
J'ai fais ce post car le problème s'est posé à moi, et je n'ai trouvé que peu de réponses sur le sujet. C'est plus ou moins du bricolage, mais ça passe! Et c'est pratique quand on a un script complexe à débugger alors que l'erreur se passe là.
Sur ce bonne journée!
18 notes · View notes
dontpanicit · 13 years ago
Text
"Gource" pour vos dépôts Git
Bonjour à tous!
Petit billet plein de légèreté et de beauté aujourd'hui. Vous, brillants administrateurs systèmes qui tombez par hasard sur ce blog en quête de réponses improbables, n'avez jamais rêvé d'un peu de couleur et de folie pour vos environnement de développement?
Donc aujourd'hui je vais vous parler d'un petit logiciel sympatoch nommé gource. Gource est un logiciel de visualisation de projet git/svn qui permet de voir les dossiers, les branches, les commits et les membres à partir des logs sur le projet en question. Niveau professionnel, l’intérêt est plus que limité, mais d'un point de vue visuel, qu'est ce que ça en jette ;D.
Voici par exemple ce que des petits malins ont générés à partir des dépôts git de php. On y voit les contributions et les évolutions au fur et à mesure, comme la naissance de php 4 puis 5.
Pour vous amuser à visualiser vos projets, voici donc la marche à suivre :
Etape 1 : Installer les dépendances et les librairies.
 Ce logiciel fonctionne avec les librairies SDL compilées en C++ (j'ai d'ailleurs été bien surpris de voir à quel point ces librairies commençaient à devenir intéressantes, ne se contentant plus de faire du 2D SNES, je devrais plus me tenir au courant).
Pour ce faire donc, sur une machine debian (Ubuntu 11.10 dans mon cas) envoyer la commande suivante :
sudo apt-get install build-essential libsdl1.2-dev libsdl-image1.2-dev libftgl-dev libpcre3-dev libpng12-dev libjpeg62-dev
Etape 2 : Installer "Gource".
Les versions de "gource" sont disponibles à la page suivante : http://code.google.com/p/gource/downloads/list
Etant codé en C++, ces derniers nous gratifient joyeusement d'une versions Win32 ce qui satisfera nos chers utilisateurs de Microsoft :).
Une fois les sources décompressées, il s'agis maintenant de les compiler afin d'obtenir un exécutable. Les commandes classiques suffisent :
cd /Repertoire_de_Gource ./configure make sudo make install
Si vous n'avez pas fait de connerie, normalement, si vous envoyez dans votre terminal :
gource -h
Vous devriez voir apparaître la liste d'aide (assez complète) pour gource et donc que votre installation sera un succès.
Etape 3 : Utiliser "Gource".
Maintenant que gource est installé, il ne vous reste plus qu'a vous rendre dans votre dossier ou siège votre clone local de git (le dossier qui contient le .git in fact).
cd Dossier_du_Projet
Et à lancer la commande suivante, qui est la commande standard pour avoir un rendu vif et dynamique :
gource --seconds-per-day 80 --auto-skip-seconds 0.1 --file-idle-time 500 --max-files 500 --multi-sampling -1280x720 --stop-at-end --elasticity 0.1 -b 000000  --hide filenames,dirnames  --disable-progress --user-friction .2 --disable-bloom
Les arguments de commande sont suffisament clair pour faire ce que vous voulez. Par défaut la visualisation est en fenetré, mais vous pouvez le faire facilement passer en plein écran (et épater vos colègues) avec l'argument supplémentaire
"-f" ou "--fullscreen".
Voila, grâce à Gource, vous allez pouvoir faire tomber les filles en soirée en montrant "Voila ce que c'est qu'être développeur!".
C'est comme jouer de la guitare mais en mieux.
Etape bonus : compresser votre résultat en vidéo.
Si vous voulez faire baver le monde devant vos réalisations et pouvoir les héberger sur YoupornTube, il faut donc envoyer tout ça en enregistrement vidéo.
Pour ça je vous conseil de consulter la page ici présente : http://code.google.com/p/gource/wiki/Videos
Elle contient toutes les indications pour encoder proprement vos vidéos en mp4.
Je ne fais pas de tuto détaillé là dessus pour la simple et bonne raison que je me suis complètement vautré dans l'installation de codecs ffmpeg et qu j'ai flingué une partie des lectures vidéos sur mon linux, ce sont des choses qui arrivent u_u'...
Donc je vous souhaite bon courage et une bonne journée à tous!
10 notes · View notes
dontpanicit · 13 years ago
Text
Gros problèmes entre le BTRFS et le NFSv4
Bonjour à tous.
Petit article aujourd'hui pour parler d'un souci, j'espère que ça servira d'avertissement pour certains qui tomberaient dans le même piège que moi.
Le ton est volontairement humoristique, car quand on a ce genre de couille, il vaut mieux en rire, ou du moins, essayer.
C'est assez relié avec les tutos sur les partages nfs déjà disponibles sur ce blog, donc pour ceux qui dormiraient au fond de la classe, prenez note.
Alors, comme vous avez pu le lire, j'ai récemment mis en place un système de partage assez simple mais néanmoins complexe (WTF?) au niveau de mon serveur de fichier et de mes systèmes là ou je travail en tant qu'administrateur système.
Alors comme ce matin j'ai vécu un véritable apocalypse et empêché une équipe de travaillé pendant 30 minutes, je préfère avertir les têtes brûlées qui voudrait un jour tenter de faire les mêmes conneries que moi. 
Ne faites pas comme moi, gardez toujours à l'esprit que quelque chose en développement, même si il parait très cool tout ça, N'EST PAS STABLE!
Quand j'ai formaté mon serveur à l'installation de Debian, j'ai pris la décision d'utiliser le BTRFS comme système de fichier. Pour ceux qui dormais ces 5 dernières années, le BTRFS est annoncé comme le successeur des systèmes journalisés comme la série des ext. Il est en développement depuis 2007 et considéré comme stable depuis mars 2009. Oui mais... 
Tumblr media
On peut se demande, pourquoi ce système si miraculeux, n'équipe donc pas toutes nos distributions linux actuelles? Lui qui annonces vers performance de +500% en compressé comparé à son camarade ext4, reste irrémédiablement dans l'ombre.
Le fait est que malgré tout le travail et les avancées faites sur son sujet, il n'en reste pas moins un système de fichier en développement, non complet et inapplicable à certaine situation.
Mon exemple est le suivant. Voici mon ancienne infrastructure, que vous connaissez bien, vous les deux ou trois qui suivez mon blog :
Tumblr media
Comme vous le voyez, j'ai fais le choix du BTRFS et j'exporte en NFSv4 au cotés de la partition du Système linux, transportant la racine du système, sur une partition en XFS.
La première fois que j'ai tenté ce montage, j'ai été confronté à un problème assez étrange. En effet, la partition du NAS, en BTRFS, une fois monté en en NFS, provoquait un très très très gros ralentissement. En temps normal, un hdparm -t sur la partition NAS donnait une vitesse de lecture variant entre 1 et 5 Mo/s, contrairement aux 110 Mo/s dont j'ai habitude. Suspectant un problème inhérent au fait de dédoubler un lien nfs partant d'une même source et allant vers une même destination, je me suis donc décidé à essayer de ne tourner qu'avec une seule exportation, limitant dans le même coup les erreurs de démontages sur les postes clients, et j'ai donc donné vie au tutoriel d'hier (ou d'avant hier, je sais plus). Bref, donc cette configuration fut modifiée et j'ai pu aboutir au bout de quelques recherches à l'ensemble suivant :
Tumblr media
Hier soir je clos définitivement l'affaire, prépare à distance mes systèmes, et, prévoyant, met mon réveil plus tôt pour être premier au boulot, on sait jamais.
Ce matin, les 4 premiers postes démarrent sans encombre et je vais me fumer une cigarette, certes matinale mais néanmoins méritée pour célébrer ma victoire sur cette hérésie qu'est l'infrastructure de développement local standard des sociétés de développement web d'aujourd'hui.
En revenant de cette délicieuse cigarette, le 5e poste est allumé et... 
Tumblr media
  D'un coup, tout les systèmes commencent à ralentir.
Suspectant un ralentissement du réseau, je cherche d'abord dans ce sens, avant de me rendre compte que mes hdparm ne passent plus. Chaque consoles ouvertes avec lesquelles je lance un hdparm me lâchent, et me guide désespérément vers la triste réalité que me réserve le /var/log/syslog.
Pour la faire courte, toute la couche BTRFS avait sauté d'un coup à la suite de l'appel nfsv4 du 5e poste. Je me retrouve avec une énorme erreur kernel, révélée en fait par le hdparm.
Je me retrouve donc à devoir repasser sur notre vieux serveur de fichier, celui qui crash dès qu'une porte claque trop fort.
Tumblr media
Ouaip, donc un conseil :
LE BTRFS EN NFSv4 POUR LE PARTAGE MASSIF, ON ÉVITE!
Et moi je reformate ma partition de serveur en ext4. Ça m'apprendra a faire des expériences.
15 notes · View notes
dontpanicit · 13 years ago
Text
Export de point de montage en NFS
Bonjour à tous!
Aaaahh, enfin un petit billet, ça faisait longtemps. En fait j'avais pas mal de boulot assez répétitif, et surtout pas intéressant en ce qui concerne le blog. Mais là, tout se clos petit à petit, donc du coups, il est temps de faire quelques tutos rapide de solutions simples et efficaces pour les problèmes que j'ai rencontré, car oui, la plupart du temps, les solutions qu'on met plusieurs semaines à trouver sont toutes connes, mais fallait trouver la bonne façon de les aborder.
Aujourd'hui on va donc parler d'un souci qui peut vous avoir été soumis, surtout si vous avez déjà suivit mes tutos sur le NFSRoot.
Voila, imaginez une situation lambda, vous avez un système bombardé en nfsroot, et vous possédez un autre serveur qui se monte dans ce système linux (en gros une architecture classique de développement avec un système et un serveur de fichier qui lui est raccordé.
Tumblr media
Vous vous retrouvez donc avec, dans le système linux nfs, un bout de votre fstab qui ressemble plus ou moins à ça : 
nas:/nas /nas nfs4 1 0
C'est une configuration assez intéressante, simple a mettre en place, et loin d'être contestable. Au niveau de la fiabilité, elle est aussi contestable qu'une ou les systèmes serait interne aux machines, dans la mesure ou, en cas de panne du système, le serveur de fichier servirai à rien, et en cas inverse, un système sans serveur de fichier ne permettrait pas de bosser (ou peut être zoner sur Internet, et encore)
Bref, dans une logique de limitation des ressources, et pour en finir avec un serveur de fichier assez vieux et pantouflard, l'idée est venue de tout réunir au sein d'un même serveur. Le système et les données.
Tumblr media
  Pour ce faire, et éviter d'exporter depuis ce serveur les fichiers ET le système avec deux lignes dans le fichier d'exportation, on va faire une petite manip pour faire du deux en un. Reprenons notre fichier d'exportation du système Ubuntu en nfsroot (voir tuto : http://dontpanicit.tumblr.com/post/11432209474/installation-dun-systeme-nfsroot-et-le-lancer-via ).
Imaginons qu'en temps normal, notre dossier de serveur de fichier soit à la racine  (monté comme cité plus haut) sous forme de :
/nas
Sa position dans le NFSR(NFSRoot), vue du serveur, serait donc ici :
/srv/ubuntu/nas L'idée c'est donc de monter la partition qui contiens /nas (ou de monter le dossier en bind) directement dans ce dossier, et de lancer notre système, et penser à retirer de notre fstab de notre système ubuntu NFSR la ligne de montage NFS du nas. Donc fstab du serveur : /dev/sda42 /srv/current/nas filesystemtype defaults 1 1 Et plus de trace d'un montage du nas:/dns-nas dans le /srv/current/etc/fstab! Si vous le faites, et que vous lancez votre système, il va démarrer, et un ls -al dans votre dossier /nas va vous montrer que ... ça ne marche pas 8D.
PAS DE PANIQUE!
C'est tout a fait normal. Pour limiter les risques d'intrusion depuis le système jusqu'au serveur, GNU/Linux est justement configuré pour masquer les partitions montées ou disponibles du serveur depuis les clients. C'est une mesure de sécurité tout à fait logique de la part des concepteurs du système d'exports.
Il faut donc trouver les arguments qui vont bien pour justement by-passer cette sécurité en disant à l'exportation de se montrer nu comme un ver lors de son exploitation sur les machines clients.
C'est un lot de 3 options dans le man exportfs de Linux qu'il était important de repérer :
nohide - Première pierre angulaire de notre exportation, elle force les exportations à tout montrer. Nécessaire mais pas suffisante, elle a besoin du complément suivant.
crossmnt - Deuxième pierre, elle sert à montrer précisément les périphériques montés à la source, c'est à dire par le serveur. Et enfin par mesure de précaution pour éviter les conflits de racine, on va poser un petit fsid=0 Qui va quand même garantir la racine du système correctement, et rétablir un semblant de sécurité.
Donc au final notre ligne d'exportation va ressembler à ça :  /srv/current/   192.168.0.0/24(rw,no_root_squash,async,subtree_check,nohide,crossmnt,fsid=0)
NB : Notez la nouvelle façon de noter l'IP, c'est elle la correcte :p. 
C'était vraiment bête comme idée, mais il fallait y penser.
C'est super pratique parce qu'on perd en complexité et on gagne en vitesse de traitement. Maintenant tout est empaqueté à la source, magique!
Tumblr media
Voila c'est tout pour le tuto. Si vous avez des questions, n’hésitez pas.  Spéciale bigup à @joellecorre qui ,lors de son bref passage parmi nous, m'a montré yEd, le logiciel que j'ai utilisé pour vous faire les jolis dessins ci dessus. Pensez à aller voir son blog, il est pas mal : Sublimigeek  Bonne journée les gens :D.
8 notes · View notes
dontpanicit · 14 years ago
Text
NSCD et Upstart
Bonjour à tous!
Petit tuto aujourd'hui, plus précisément un complément de plus à l'utilisation d'un système nfsrooté.
Pour ceux qui auraient suivi le tuto sur l'installation du Linux en NFSroot, vous aurez peut être remarqué l'incapacité du système à démarrer des logiciels tels que Thunderbird, Skype etc.... Et bien c'est que ces système ont besoin d'une couche de cache que le NFSroot ne peux pas leur donner en natif (pour ceux qui auraient d'ailleurs lancé des débugs consoles sur ces applications, ont pu constater que leurs logs les gratifiaient d'un magique "SegFault").
Ici on va voir comment y remédier.
Tout d’abord, il faut installer notre couche de cache, et pour cela, on va faire appel au paquet "nscd" (ou "Name Service Cache Daemon").
Comme d'hab quand on installe une application, ont passe par apt-get :
~# sudo apt-get install nscd
Une fois l'installation terminé, on reboot tranquille, on se dit "Tout vas bien, pas d'erreur", on clic que notre application Thunderbird et là... rien. Rien ne se lance.
PAS DE PANIQUE
Avant de me jeter des cailloux pointus à la gueule, dites vous bien que je me suis cassé le cul à plusieurs reprises (et je remercie encore "Ô mon Maitre" Yann pour me secourir dans des moments difficiles) en cherchant la source de l'erreur. Après avoir longuement suspecter le script de démarrage de faire de la merde, j'ai ensuite compris finalement (via des echo tassés dans des fichiers) que le script n'était même pas appelé au démarrage du système.
En fait, depuis la 11.04 (voir même la 10.10 - 10.04 je crois), on ne passe plus par les runlevel de Système V pour démarrer des démons sous Linux, mais on utilise un nouveau système nommé UpStart. Ce dernier en fait prend la mains sur pas mal d’élément du démarrage, ce qui peux laisser perplexe quand on ne le sait pas. Seulement, NSCD n'est pas fait pour démarrer par upstart, ce qui fait que ce dernier lui roule dessus au démarrage sans que NSCD puisse moufter sa sauce. Par conséquent il faut créer des scripts custom dans le répertoire de gestion d'upstart (comme on aurai pu faire avant dans les runlevels) afin de lui dire "Hey connard! T'es gentils, tu laisses les autres jouer!".
voici donc le script a placer dans /etc/init/nscd.conf (Oui, le fichier n'existe pas, il faut le créer).
description "name service cache daemon" start on local-filesystems stop on runlevel [06] #expect fork pre-start script mkdir -p /var/run/nscd end script exec /usr/sbin/nscd -f /etc/nscd.conf
Merci d'ailleurs à spidernik84 du forum Linuxquestions.org pour avoir trouvé ce script plus ou moins miraculeux.
Une fois ce script posé et enregistré, vous pouvez redémarrer votre linux et là, tadaaaa, Thunderbird se lance! Magique!
Reste cependant un dernier problème à résoudre : Cette solution est plus ou moins bonne car elle est faite main. Le délire c'est qu'il est possible qu'une mise a jour fasse sauter tout ça (upstart, nscd, ubuntu lui même). Si le problème ce représente, vous saurez cependant quoi faire!
NB : J'ai utilisé cette solution avec le paquet "unscd" mais techniquement tout devrait fonctionner correctement quand même avec la version nscd originale. Notez que pour "unscd" d'ailleurs, le fichier de conf est le même (et s'appelle aussi "nscd.conf"), puisque les binaires et les fichiers .conf de unscd se nomment nscd tout court. Donc le script est interchangeable.
4 notes · View notes
dontpanicit · 14 years ago
Text
INSTALLATION D'UN SYSTEME OPENWRT SUR UN SOEKRIS NET 4501
Bonjour à tous, et bienvenu pour un nouveau tutoriel qui, je l'espère, sortira certaines personnes de l'impasse. Dans un précédent tuto, j'avais expliqué comment installer pfSense sur un Soekris net4501. Mon choix pour pfSense était orienté pour plusieurs raisons : -pfSense est fiable. On l'utilisait déjà dans ma boite sur l'ancien routeur, qui était en fait un ordinateur complet au service du routeur. Même dans sa version béta, il fonctionnait déjà très bien (exception faite d'un problème lors du redémarrage en cas de coupure de courant, qui oblige à rentrer à la main la commande de mount de la partition de root). -Disposant de deux connexion internet, on avait un besoin vital de load balancing et de la gestion de deux Gateway pour notre réseau et nos serveurs internes, et contrairement à m0n0wall, son prédécesseur, pfSense le gère mieux que bien. -Je pensais, à tord, que pfSense était un produit léger. En fait cette vision erronée était due au fait que je n'avais pas vu le faussé ce creuser entre les v1.x et les v2.x. Depuis la v2, pfSense nécessite plus de 128MoRAM. -Le fait aussi de disposer du même système que l'actuel, je ne me pausai donc pas la question de la portabilité de la config. Seulement voila, comme dit plus haut, pfSense a grossi, il est devenu gourmand en performance, et demande désormais plus de 128MoRAM. Épique déception car, au moment du tuto précédent, je disposai d'un Soekris net4501 disposant de 32MoRAM, soit trois fois en dessous du seuil critique. C'est à sa première journée de mise en prod que les crash successif et les erreur 500 sur la page de gestion de config, m'ont fait réalisé mon erreur. Il a donc fallu rechercher d'autres solutions. Voici un peu mon cheminement et les raisons pour lesquelles je ne les ai pas sélectionnée : -m0n0wall (freeBSD) : Petit, léger, pratique, l'interface web est assez simple et esthétiquement agréable (contraste radicalement avec le rouge/gris de pfSense assez agressif). Il ne dispose cependant pas de gestion du Dual-WAN/Load Balancing ni d'une prise de commande en SSH, ce qui pose un réel problème de configuration profonde, obligeant l'utilisation du port série. On peut s'amuser à ajouter des modules particulier, mais c'est une plaie. J'ai vite été découragé par l'absence totale d'activité en ce qui concerne le développement de nouvelles versions, qui avant me laisser envisager de possibles updates. -netBSD pure (netBSD) : J'ai envisagé brièvement de monter un netBSD purement et simplement, et d'y incorporer les paquets nécessaires pour permettre de faire tourner ce qui devait tourner. Le problème était que, tournant sous linux, je n'avais pas vraiment de base pour débuter. Jugé trop long et trop complexe, l'idée a été abandonnée. -LFS Linux From Scratch (GNU/Linux) : Dans le même raisonnement que pour netBSD, l'idée était assez séduisante, étant donné ma proximité avec le système linux et excellente documentation internet. Malgré l’enthousiasme que cette idée a suscité (création d'une distribution personnalisée et m'appartenant), l'idée a cependant été abandonnée à cause de la trop grande demande en temps et l'investissement personnel nécessaire à sa bonne réalisation. -ipCop (GNU/Linux) : Une des distribution principales de routeurs. malgré l'absence de load-balancing pré-installé, l'idée de tourner sous linux est intéressante dans le sens ou, le système m'étant familier, je pouvais envisager, mieux que sur un BSD, l’hypothèse de charger moi même les paquets nécessaires. Malheureusement, ipCop n'est pas vraiment prévu pour fonctionner en embarqué. De plus le comportement agressif et l'aide minimale obtenue sur le forum de soutien de cette distribution m'ont réellement dérangé. Enfin, ipCop, dans son incapacité à dégainer une version embarqué facile d'installation pour CF, j'ai été dans l'incapacité de faire démarrer ne serai-ce que le bootloader. -OpenWRT (GNU/Linux) : Au bord de la crise de nerf profonde, on est tombé par hasard sur une distribution prometteuse nommé "OpenWRT". Fonctionnant sous Linux, gérant le Load Balancing, le multi-wan, ayant un protocole SSH et une interface web, et surtout spécialisé pour l'embarqué, le choix s'est donc imposé. Matériel requit : - Un routeur Soekris net4501 Je suis passé à une version légèrement au dessus pour cette installation. Il dispose du même processeur que le précédent, à la différence qu'il possède 64MoRAM. Je dois normalement faire un portage vers la version 32MoRAM (cf. Tuto Soekris pfSense), si jamais je rencontre un problème, je publierai une petite note. -Un câble série. -Un lecteur de carte CompactFlash (CF). -Une carte CF d'au moins 128Mo. -Les images de OpenWRT Backfire 10.03.1-RC6, à savoir : --OpenWRT x86 generic combined jffs2 128k (contenant la partition de boot et l'image kernel) --OpenWRT x86 generic combined ext2 (contenant les root systèmes) Les images sont disponibles ici : http://downloads.openwrt.org/backfire/10.03.1-rc6/x86_generic/ Pourquoi la 10.03.1-RC6 ? Et bien au moment ou j'écris ce tuto, c'est la version la plus récente. Ensuite, faites l’expérience et chargez vos images dans votre CF, et bootez naïvement votre routeur. Et bien vous aurez 2 problèmes : -un bon gros "waiting for /dev/sda2" -Et si vous passez cette étape, vous vous retrouverez devant un système qui ne reconnaîtra pas vos interfaces réseau. Gênant pour un routeur non? PAS DE PANIQUE La dernière version comporte des correctifs qui permettent de passer ces quelques blocages. De plus elle est stable, ce qui rajoute son intérêt. Étape 1 : Configuration préalable de minicom et du BIOS routeur. Tout d'abord, on commence par lancer minicom. Il faut le configurer en 19200n8 pour pouvoir se connecter au routeur (ce n'est pas sur, les vitesses pas défaut varie, surtout si ils sont de 2nd main). # minicom /dev/VOTRE_PÉRIPHÉRIQUE_SERIAL si vous utilisez comme moi un cable série-USB, ce sera /dev/ttyUSB0. Une fois dans minicom, faites Ctrl+O, puis allez dans régler le port série, puis tapez sur E pour accéder à la vitesse de transmission. Une fois dedans, régler la vitesse. Ensuite, branchez votre cable série sur le routeur, et alimentez le. Une fois au terme du chargement du BIOS, avant que les 5 secondes ne soit écoulé, tapez "Ctrl+P". Vous devriez avoir un prompt ">". Tapez : > set ConSpeed=38400 puis > reboot Pendant que le routeur redémarre, retournez dans le menu Ctrl+O -> E -> et réglez la vitesse sur 38400. Voila, votre routeur, votre minicom ET bientôt votre système seront synchronisés sur la même vitesse, à savoir 38400 bauds. Etape 2 : Installation des images en dd sur la CF. Une fois vos images de OpenWRT téléchargées sur votre disques, et que vous connaissez leur emplacement absolu (histoire de ne pas se tromper), et que votre carte CF est correctement introduite dans le lecteur de carte, vous allez lancer les lignes de code suivante : # dd if=chemin/openwrt-x86-generic-combined-jffs2-128k.img of=/dev/sdb # dd if=chemin/openwrt-x86-generic-combined-ext2.img of=/dev/sdb ATTENTION : Comme dit dans un tuto précédent, le dd est une arme absolue. Elle écrase tout et ecrit par dessus. Par conséquent, si jamais vous tappez quelque chose dans le genre /dev/sda au lieu de /dev/sdb, c'est votre disque dur qui y passe. Et là vous n'avez AUCUNE chance de récupérer le moindre fichier. C'est puissant, et par conséquent c'est a utiliser avec précaution. Si tout c'est bien passé, normalement deux éléments sont apparus dans /dev/ : sdb1 et sdb2. C'est là toute la magie de faire du transfert d'image comme ça, il se démerde pour faire les choses bien. Étape 3 : Installation de la CF et lancement du routeur. Bon, bin maintenant on peut plugger la carte dans le port CF de votre soekris, lancer minicom, et mettre le soekris sous tension. Le BIOS se lance, il annonce le lancement de grub, et là BAM! Caractères étranges en tout genre qui s’animent. PAS DE PANIQUE D'après mon expérience, le Soekris n et4501 banché en série ne supporte pas grub visuellement. Sur certains appareils, les comportements varient : Ils peuvent ne pas aller plus loin que grub, ou se lancer sans l'afficher correctement. Heureusement, dans mon cas, j'ai été dans la 2e solution. Après quelques secondes d'attentes, vous pouvez apercevoir le chargement du noyau. A la ligne : Please press Enter to open Terminal, n'appuyez pas dessus. Il va y avoir un module (NatSemi pour les interfaces réseau du soekris) supplémentaire qui va se lancer et qui risquerai de ne pas bien afficher la so cute présentation d'OpenWRT.
Et voila, maintenant cliquez sur Entrée et dites bonjour à OpenWRT embarqué =).
Notes :
Adresse IP : Par défaut, l'IP du routeur est définie par OpenWRT comme étant la 192.168.1.1. Au cas où comme moi vous auriez la nécessité de changer, les fichiers de configuration du réseau (et tant d'autres) sont ici : # vi /etc/config/network Puis ensuite allez dans l'interface eth0 et changez ipaddr 192.168.1.1 en ipaddr 192.168.***.*** <- l'adresse IP que vous voulez. Ensuite procédez à un reboot des interfaces via cette commande : # /etc/init.d/network restart Et voila, maintenant l'interface web de configuration est disponible en ligne à l'adresse IP indiquée ! ENJOY YOUR OPENWRT ROUTEUR!!
12 notes · View notes
dontpanicit · 14 years ago
Text
NFSroot depuis virtualBox via boot.iso
Bonjour à tous et bienvenu pour le tuto de la semaine!
Il faut le prendre en complément du tutoriel sur l'installation en NFSroot, par conséquent, je ne reviendrai pas sur la partie installation et configuration du serveur (sauf à un moment précis mais la modification est à la fois mineure et essentiel donc restez attentif).
Ok, nous y voila.
Donc la méthode est la suivante : On va commencer par créer une image .iso qui va en fait servir d'alternative au boot grub, car ce dernier est non seulement invivable à installer seul sur une VM, mais de plus pause d'important problèmes au lancement du NFS (avalanche d'erreurs, montage partiel, erreur "need a path" et j'en passe).
J'espère que vous n'avez pas oublié la partie de changement du /etc/initramfs-tools/initramfs.conf dans le premier tuto, car c'est impératif. Si ce n'est pas le cas, retournez sur l'ancien et recréez la initrd.img correctement.
Etape 1 : Création de l'image boot.iso
En fait basiquement, on va réutiliser les fichiers vmlinuz et inird.img préconfigurés du NFS pour créer une image correctement configuré. Pour ce faire, il faut donc créer un dossier à la racine (pour plus de rapidité et ne pas péter un câble avec les chemins d'accès) qui sera donc /iso.
A l’intérieur il faut créer un dossier "linux" pour se retrouver donc avec l'architecture suivante :
/iso    |    linux
Ensuite, on va placer nos deux images vmlinuz et initrd.img dans le dossier linux. Ce sont les images que l'on avait utilisé dans le tuto précédent pour grub (ils étaient à l'époque stocké dans /boot/LAN du disque sur le poste client) On va juste changer le nom de l'initrd : mv initrd.img initrd
On va maintenant créer le fichier qui va servir de configuration à l'image iso :
cd /iso touch isolinux.cfg vi isolinux.cfg Collez y ça (arrangé à votre sauce) : default linux   label linux   kernel /linux/vmlinuz   append initrd=/linux/initrd root=/dev/nfs ip=dhcp(ou les paramètres IP de votre réseau local) nfsroot=(adresse_de_votre_serveur):(chemin_d'accès_vers_votre_racine_nfsroot),rw,nolock
Ça vous rappelle des choses? C'est normal! On dirait le lanceur de Grub2 dans l'autre tuto. C'est pas pour rien hein? Sauf que lui en fait il va lancer les éléments pour que le .iso soit correcte.
Donc une fois ça fait, on va aller fouiner dans notre ubuntu embarqué sur le serveur pour aller y télécharger isolinux.bin.
scp (nom_d'utilisateur_ssh)@(adresse_du_serveur):/(chemin_d'accès_vers_votre_racine_nfsroot)/usr/lib/syslinux/isolinux.bin /iso/
voila, on y est presque, maintenant on va créer l'image boot.iso (notez, il faut être dans /iso (faites un cd /iso pour être sur):
mkisofs -R -V "NFS Boot" -o ../boot.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .
Voila, maintenant que votre boot.iso fait pour le nfs est créé, on va configurer VirtualBox pour démarrer la machine.
Etape 2 : Configuration de VirtualBox
NB : Désolé pour les fans de VirtualBox OSE, mais il n'y a que la VirtualBox 4.1.4 qui permet la connexion par pont, et donc de permettre à la machine de démarrer avec les bonnes informations réseau. D'ailleurs, sous linux, il est possible que VirtualBox provoques de petites erreurs au démarrage, et demande l’emploi de certaines commandes setup. Faites les, c'est simplement certains modules de VirtualBox qui doivent être réinitialisés à chaque démarrage. C'est un bug connu. Donc, lancez VirtualBox et créez une nouvelle machine, basé sous Linux Ubuntu. Donnez lui un peu de mémoire (minimum 512Mo, et encore, vous allez galérer. L'optimal c'est 1Go dédié de toute façon, et c'est d'autant plus valable pour une VM). Ensuite dans l'onglet réseau, sélectionnez "Accès par pont" et l'interface de votre carte réseau correcte (par défaut : eth0).
Ensuite allez dans "Stockage" et montez votre image boot.iso dans le lecteur CD. Tien, maintenant essayez de booter. On pourrait se dire "Boarf, le serveur est configuré pour partager avec toutes les IP de mon domaine réseau (souvenez vous du 192.168.1.* qui couvre tout le domaine), il devrait se monter correctement". Miracle, votre noyau se monte correctement, les procédures se lancent, et là BAM! Oh? Etrange! nfs-premount : acces denied error. Patatra, je vois d'ici vos rêves et vos espoirs disparaître dans vos yeux, et la vie devenir plus sombre à chaque loop de "acces denied".
PAS DE PANIQUE Il y a des gens comme moi pour se prendre la tête avec ce genre de souci, et vous apporter la solution sur un plateau! En fait, je n'ai pas tout a fait compris pourquoi, mais même dans le cas ou l'IP donné par le DHCP, accompagné de son masque et de sa passerelle, ne possède quand même pas les accès vers le serveur nfs.
Pour corriger ce problème, il faut vous rendre sur votre serveur, dans le fichier /etc/exports. A l'époque, on avait marqué ça :
/srv/ubuntu IpdesClients(pour moi c’est 192.168.1.* pour couvrir toute la plage IP)(rw,no_root_squash,async,subtree_check) Et bien il faut rajouter la ligne suivante : /srv/ubuntu IPdelaVM/IDdumasque(24 pour 255.255.255.0, sinon faite la conversion)(rw,no_root_squash,async,subtree_check)
relancez votre serveur nfs
sudo service nfs-kernel-server reload Et maintenant, sur votre PC client, relancez votre machine. Tadaaaaaaaa! Ca marche. Cependant, pour les 11.04 et ulterieures, Unity nécessitant une accélération matérielle, il chargera l'ancienne interface gnome par défaut. Je n'ai pas réussis à stabiliser ça, mais bon, ça ne rentrait pas dans le cadre de ma demande. D'ailleurs, l'installation de ce genre de chose tien plus du bricolage qu'autre chose, ce ne sont pas des machines très fiables, par conséquent, je conseil tout de même le Dual Boot de l'ancien tuto (a moins que ce soit pour une utilisation ponctuelle). Voila, j'espère que ce tuto aura servi. A plus les gens :).
22 notes · View notes
dontpanicit · 14 years ago
Text
CMS, Frameworks, où est donc passé la poésie?
Depuis quelques temps, je me rend compte que l'informatique à vraiment changer. Pourtant, je suis un jeune développeur/Admin sys de 22 ans, j'ai encore du temps devant moi, et ma carrière ne fait que commencé. Pourtant, j'ai déjà une attitude de vieux con.
J'ai été aspiré par l'informatique à cause de films comme Matrix, et par une discipline qui impliquait une passion véritable de passer des heures et des heures devant sa machine, pour coder, à partir de rien, un truc épique et complet, sur lequel on pouvait apposer son nom comme un blason pour dire "c'est moi qui ai tout fait". Dans l'AdminSys, on est encore là dedans; c'est de la console brutale sous Linux, où tout est encore fait à la main. Dans mes projets personnels ou en association, je procède encore de la même façon, ou on part de rien et on construit de la base (même si on se permet d'utiliser des moteurs graphiques ou des librairies libres pour nous permettre de combler des vides de compétences ou harmoniser du code sur plusieurs OS). Mais je remarques d'avantage, surtout dans le Web, que tout change.
C'est pas une mauvaise chose, objectivement, de fonctionner sur des CMS, de construire des modules sur quelques chose de déjà existant. Ça créé du business, et ça permet a de petites équipes de faire de grandes choses rapidement. Mais au final, on ne devient que des fabricants de plug-ins, des petits bonus qu'on implémentes. Loin de moi l'idée de dénigrer ça. Je les vois une semaine sur deux au boulot, c'est des gars compétents et pourtant ils s'arrachent les cheveux, preuve que le travail est hardu.
Mais d'un point de vue principe, je sais pas, je trouve qu'on a perdu quelque chose, une certaine originalité qu'il y avait au tout début du Web 2.0, quand le statique a fait place au dynamique, voir même avant, quand le HTML était fait par n'importe qui, et qu'on rivalisait d'ingéniosité pour faire les iframes les plus belles.
Aujourd'hui on a perdu tout ça, on a perdu cette originalité. On construit sur des bases codés par d'autres, sans vraiment de nouveau. Je trouve que c'est dommage au final, même si c'est évident que c'est l'évolution.
J'en vient quand même à me demander "Mais où est donc passé la poésie dans tout ça?"
0 notes
dontpanicit · 14 years ago
Text
Installer MacOS X en VM avec VirtualBox
Bonjour à tous!
Petit tuto marrant du Week-end pour vous apprendre à installer une machine virtuelle MacOS X sur VirtualBox, sous Windows 7 (ici) ou sur une version Linux de VirtualBox.
Utilité : Je me suis souvent demandé quelle utilité je pourrais avoir d'un système MacOS X sur un PC, tout simplement car en tant que développeur, le seul intérêt que je trouve aux systèmes Mac, c'est leur autonomie et leur design (et qu'en tant qu'utilisateur ultra-satisfait de l'iOS, je suis un peu devenu AppleFanBoy), mais en ce qui concerne mes applications professionnelles, ça restait assez vague (Windows me permet de développer du "tout public" et linux fonctionne de manière plus rapide, un troisième système me paraissait assez inutile). Au final l'utilité principale est de pouvoir procéder à des tests de compatibilités, et de porter sur MacOS certaines applications développés en C/C++ initialement pour Windows et Linux. De plus, pour les plus fourbes d'entre vous, l'utilité de cette partition peut être justifié par la création d'application pour iOS (iPhone, iPad, iTouch...), même si le coté officieux des versions Hackintoch posera certainement un problème lors de l'acquisition du SDK. L'utilisation VM est aussi conseillé dans le cas où vous n'auriez pas envie de galérer avec la création d'un système en Dual Boot Windows/Linux-MacOS X, qui est relativement complexe à mettre en place.
ATTENTION : Les versions hackintoch sont par définition illégales. Par conséquent vous êtes seuls responsables de ce que vous faites. Personnellement je m'amuse à faire ça par défi. Par principe, je vous conseillerai quand même d'acheter un Mac si vous voulez vous lancer dans la production avec votre Mac, que ce soit d'un point de vue légal, éthique, et même de performance, car il faut bien l'avouer, il n'y a rien qui tourne mieux qu'un MacOS X sur un MacBook :). Et ne comptez pas sur moi pour vous donner des liens pour télécharger les images hackintoch.
Pour commencer, il vous faudra forcement donc :
-Virtual Box. J'ai utilisé la 4.1.2.
-Une image .iso d'un hackintoch (iPC, iDeneb, iAtkOS etc...)
-Au moins 20Go de libre sur votre disque dur (pour créer un disque virtuel VM contenant MacOS X)
-Au moins 2Go de RAM sur votre PC, 4Go conseillé, surtout si vous tournez sous Windows 7 ou Windows Mierda Vista (Arg!).
Aller hop, c'est parti.
Donc, une fois VirtualBox installé, vous allez créer une nouvelle machine (bouton "Créer". Donnez lui le nom que vous voulez, et selectionnez "MacOS X" comme systèmes d'exploitation, et "MacOS X serveur" comme version.
Ensuite, choisissez la mémoire dédiée à votre VM. Personnellement, j'en donne un peut moins de la moitié de mes 4Go (1920Mo) par sûreté pour mon système parent.
Après, il va falloir créer un disque dur virtuel, pour ça VirtualBox est doté d'un très bon utilitaire, qui une fois l'option "créer un nouveau disque dur", il va vous permette de configurer le disque. On sélectionne VDI, et ensuite, c'est à vous de voir :
-Dynamiquement alloué : Votre disque virtuel prendra plus ou moins de mémoire par rapport aux quantités de données qui seront contenues à l’intérieur, i.e. à sa création, il pèsera quelques kilooctets, mais si vous installez un système de 10Go dedans, et bien sa taille va évoluer vers les 10Go.
-Taille fixe : Lui, il est à 20 Go des le départ. C'est pour les gens prévoyants qui ne veulent pas avoir un truc évolutif qui pourrait flouer leurs pronostics de "combien de place il me reste pour DL mon pr0n".
Bref, après on choisis son emplacement et sa taille, vous pouvez vous permettre de vous en tenir à 20Go, c'est amplement suffisant.
Une fois le disque créé, Il vous proposera de créer et de finaliser la création de la machine virtuelle.
Cliquez-droit sur la machine et choisissez "Configuration", là dans le menu "Système", il faut décocher "Activer EFI", et cocher "Horloge interne en UTC". Ces deux petites options sont capitales. Si ce n'est pas fait, le système pourra s'installer, mais pas se lancer après.
Petit plus : Si vous êtes détenteurs d'un processeur Multi coeur, vous pouvez aller dans l'onglet "Processeur" de "Système", et placer le curseur sur 1, 2, 3, 4 ou plus (chanceux).
Ensuite, allez dans le menu "Stockage", et cliquez sur l'icone de CD dans l’arborescence "Contrôleur IDE". A droite, dans "Attributs," cliquez sur l'icone de CD, et montez votre image hackintoch.
Voila, maintenant, il n'y a plus qu'a lancer votre machine, en double-cliquant dessus. Normalement, le bios, puis le CD virtuel va se lancer, et il faudra donc suivre les étapes d'installation de MacOS X. N’hésitez pas à vous reporter à la doc de votre distribution en cas de question. Une fois l'installation terminée, la VM va redémarrage. Je ne me souviens plus si il faut démonter l'image CD pendant le reboot (dans la config), si c'est le cas, le boot va boucler sur l'installation de toute façon, et il faudra donc démonter le CD.
Bref, votre système va se relancer et Tadaaa, vous avez votre MacOS X fonctionnel.
Personnellement j'ai utilisé iDeneb v1.6, et il gère bien les périphériques réseau de VirtualBox, ce qui permet de ne faire aucune config pour accéder à internet.En revanche, je suis cloîtré dans une configuration graphique 1024x768, mais je n'ai pas vraiment cherché pour le moment à aller plus loin dans la config, vu l'utilisation ultra restreinte que j'envisage pour mon OS X.
Enjoy!
6 notes · View notes
dontpanicit · 14 years ago
Text
INSTALLATION D'UN SYSTEME PFSENSE SUR UN SOEKRIS NET 4501
INSTALLATION D'UN SYSTEME PFSENSE
SUR UN SOEKRIS NET 4501
(depuis Linux Ubuntu 11.04)
Bonjour à tous. Aujourd'hui je vais vous présenter comment installer un système pfsense 2.0 sur un routeur Soekris net 4501.
Pourquoi faire ça ?
Dans mon cas, il y avait un boitier 4501 qui traînait sur un meuble. Dans le cadre de mon travail, on m'a demander de changer le vieux système dessus (freeBSD) par un système plus récent (ici pfSense 2.0 RC).
Pour faire tout ceci, il faut cependant un peu de materiel, le reste est assez simple quand on a tout :
-Le routeur Soekris net 4501 à portée de main (on peut être amener à faire des hard reboot en cas de problème )
-Un cable série (ou Série USB comme moi, qui apparaîtra sur /dev/ttyUSB0)
-Une version Embedded de pfSense (aujourd'hui ce sont les NanoBSD) configurés pour support Soekris (disponible ici : https://home.zhaw.ch/~maym/ )
-Un lecteur de carte Compact Flash (USB ou Interne).
-Une carte Compact Flash (celle d'origine faisait 64Mo, j'ai du en prendre une autre, plus importante, de 4Go, mais 1Go doit pouvoir suffire, surtout que pfSense sera quasiment qu'en lecture seule).
-minicom (apt-get install minicom), qui est un terminal pour modem, compatible avec notre cable.
-Au moins 3h devant soi (prévoir de la musique aussi, c'est important pour passer le temps).
Alors pour commencer, on va débrancher et démonter le routeur pour en extraire la carte CF (Compact Flash). Si c'est cette dernière que vous voulez utiliser, insérez-là dans le lecteur de carte. Sinon, dite lui adieu et insérez la nouvelle dans le lecteur de carte.
L’intérêt d'avoir une nouvelle carte est que Linux va la détecter et la monter de suite, alors qu'une carte déjà pré-formaté en BSD ne sera pas repérer, ce qui peut poser un problème simple de « Putin c'est laquelle ma carte dans le /dev/ ».
Pour trouver la carte, elle se trouvera dans les sdb. Personnellement j'ai fais une succession de fdisk -l /dev/sdb0-5 pour trouver une qui était effectivement formaté en FreeBSD, et ça peut marcher. Arrangez vous simplement pour n'avoir qu'une carte de connecté.
Une fois votre carte détecté, vous pouvez la démonter si elle s'est monté automatiquement (/ !\ Pensez a conserver quelque part le chemin qui mène à elle, qui, si elle est monté, apparaît après un « mount »):
umount /media/NOMDELACARTE
Dans mon cas, c'est /dev/sdb.
Pourquoi faut t'il une version spéciale pour le Soekris Embedded ?
Au départ j'ai cherché plusieurs solutions, en passant par la version simple NanoBSD, ou encore la memstick. Malheureusement toutes ont été soldés par un echec. En fait il se trouve que les nouvelles version Embedded (embarqué) ne sont pas vraiment compatible avec les vieux boitiers, dans le sens ou ces derniers n'arrivent pas à booter correctement sur les partition. Par conséquent, il faut légèrement modifier les versions NanoBSD. Pour ceux qui sont faignants, il y a des versions pré-modifiées sur le site donné plus haut, mais pour ceux qui n'auraient pas confiance, voici un tuto pour créer sa version perso. Il n'y a pas réellement de différence, mais c'est intéressant en cas de sortie de nouvelle version qu'il faudra alors re-compiler.
http://doc.pfsense.org/index.php/NanoBSD_on_WRAP
Ce tuto est légèrement planqué dans le site de pfsense, et c'est un énorme coup de chance d'être tombé dessus.
Bref.
Donc une fois votre image.gz créé ou téléchargé, nous allons pouvoir la porter sur la CF.
C'est assez simple, et ça se comprime en une commande :
gzip -dc pfSense-2.0-RELEASE-512mb-i386-nanobsd-WRAP.img.gz | dd of=/dev/sdb obs=64k
/!\ ATTENTION : la commande dd est une commande de copie bit à bit. Par conséquent, elle va annihiler toutes données sur le disque visé, y compris le bootloader ; SOYEZ CERTAINS DE CE QUE VOUS FAITES ! Si vous envoyez ce genre de commande vers votre propre disque dur (involontairement ou par faute de frappe), vous allez écraser définitivement votre système ainsi que tout bootloader, ce qui vous forcerai a faire un reformatage et une réinstallation complète de votre système, avec les pertes de données que ça implique.
Ça prend quelques minutes, pas de panique si le processus est un peu long..
Une fois terminé, vous avez donc fini pour la carte (et oui déjà) et vous pouvez l’insérer dans son support sur le Soekris. Ne l'allumez pas encore.
Ensuite, sous linux, lancez minicom sur le port de votre câble série avec cette commande :
minicom /dev/ttyUSB0
Ensuite configurez le pour qu'il tourne en 19200N8 (Ctrl+a puis o => Configuration port série, ou directement Ctrl+a puis p)
Branchez votre routeur à votre PC via le cable série, et banchez votre routeur sur le secteur. Normalement si vous avez bien configuré votre minicom, vous devriez voir une procédure de lancement sur la console. En fait c'est ce qui s'apparente le plus d'un bios à ce niveau là.
Et tout d'un coup, patatra ! La console commence à vous afficher des caractères en ascii étrange.
Pas de panique
C'est tout a fait normal. En fait, le soekris passe de 19800 baud de transmission, à seulement 9600, car pfSense prend le contrôle du port série, et lui impose une nouvelle vitesse de transmission. Il faut donc aller rapidement dans les paramètres de minicom pour changer la valeur, et les instructions de lancement recommenceront à s'écrire lisiblement.
Il serait judicieux d'ailleurs de chercher comment changer cette vitesse de transmission.
S'en suit une procédure de premier boot qui vous demandera quelques informations de configuration, comme les ports Ethernet concernés par les VLAN etc... A vous d'y répondre correctement selon vos besoins.
Une fois cette configuration terminée, vous aurez accès à un menu simple, et en choisissant « Shell », vous vous retrouverez avec un shell linux classique.
FELICITATION, vous avez installé votre routeur pfSense.
Reste maintenant à le configurer.
21 notes · View notes
dontpanicit · 14 years ago
Text
Installation d'un système nfsroot et le lancer via Grub2
Comment créer un système nfsroot linux ubuntu avec un bootloader grub2 sur machine locale. La première idée qu’on a quand on cherche à monter un système linux en réseau, est de tout lancer par le système de PXE. Mais dans certains cas, le PXE peut être endommagé, où ne peux être reconnu au démarage par la carte mère. Dans ce genre de cas, il est nécessaire de gérer donc en local le chargement de certains fichiers indispensables au boot.
Ici je vais expliquer la marche à suivre pour pouvoir lancer un linux, stocké sur un serveur, sur une machine locale.
Dans notre cas, nous aurons aussi à monter les partitions de dossiers personnels, issus de l'ancien système en place (à savoir une partition NFS stocké sur un autre serveur local).
Première Etape : Installation du serveur debian.
Pour commencer, on doit avoir une machine de type serveur vide, que ce dernier soit connecté à Internet ainsi qu'une version CD de Debian.
Pour mon cas, Debian 6.0.
Pour commencer, évidement, on installe et configure debian sur la machine serveur. Il faut cependant le configurer selon nos besoins :
-Partitions :
-Une partition Physique « /boot » (512 Mo)
Elle stockera le système de boot du serveur. Debian étant le seul système installé sur le serveur, il est inutile d'en donner plus.
-Une partition Physique « / » (512 Mo)
C'est la racine de debian. Il faudra veiller à ce qu'elle ne soit pas trop chargée.
-Une partition Swap (2Go)
La swap est votre mémoire vive sur disque. En gros elle permet de délester la RAM en cas de surcharge. De façon général, on en configure le double de votre RAM réelle (i.e. Pour 1Go RAM, on met 2Go SWAP)
-Une partition LVM
Une partition LVM est une partition physique qui contient plusieurs partitions virtuelles. En effet, un disque dur ne peut être partitionné qu'en 4 morceaux physiques. En temps normal, sur les systèmes d'utilisations quotidiens comme Windows ou Ubuntu, quand l'on dépasse cette limite, le système prend sur lui de gérer les nouvelles partitions en LVM. Ici sous débian, c'est nous qui allons prendre ça en charge. Voici donc les partitions virtuelles contenues dans le LVM :
-Une partition « ubuntu » (16 Go)
Cette partition sera en fait la racine de notre système Ubuntu. De fait, elle contiendra aussi tout les programmes que l'on voudra installer sur le systèmes. Dans le cadre d'une utilisations de programmes simples de développement sous linux, 16Go est donc suffisant.
-Une partition « log » (4 Go)
Cette partition aura l'emplacement /var/log. C'est a dire qu'elle contiendra les logs du serveur. Il est important à noter que la partition doit avoir comme paramètres : nodev, nosuid et noexec, afin d'éviter tout scripts hostiles qui pourraient se retrouver dans les logs, et exécutés de manière non autorisé.
-Une partition « var » (2 Go)
Inutile d'épiloguer sur la partition de var.
-Une partition « usr » (2 Go)
Idem.
-Une partition « tmp » (1 Go)
Idem.
-Une partition « home » (4 Go)
La taille de votre home dépend totalement de vous. En effet, selon l'utilisation que vous voulez avoir de votre serveur, il nécessitera plus ou moins de place. Ici j'ai placé 4Go, à vous de voir.
NB : Ce sont tous des ext4 (excepté le Swap)
Une fois les partitions créées, il faut maintenant configurer leurs points de montages respectifs. Dans mon cas, j'avais oublié de le faire à la création, ce qui pose d'assez gros problèmes par la suite, donc je vous conseille de ne rien oublier à ce moment là.
Donc, pour les points de montages, l’intérêt c'est que la plupart sont radicalement explicites.
Les partitions logiques virtuelles vont avoir un nom bien particulier. Chez moi elles sont sys/home, sys/log etc...
Bref, donc les points de montage sont les suivants :
ubuntu → /srv/ubuntu
var → /var
log → /var/log (nodev,noexec,nosuid)
tmp → /tmp
home → /home
usr → /usr
Voila, une fois ces points de montages terminés, vous pouvez terminer l'installation de debian. Pensez à désactiver toutes les extensions (DHCP, Apache etc...) si vous n'en avez pas de besoins précis. Nous en utiliserons par principe on les téléchargera directement sur Internet afin d'avoir les dernières versions.
Donc, Debian est installé, on reboot, on tente un « mount » dans la console pour veiller à ce que les partitions soit bien montées, et si c'est ok, on passe a l'étape suivante.
Dans le cas où vous auriez oublié de configurer les points de montage :
Pas de panique
Ce qu'il y a de bien sous Linux, c'est qu'il y a toujours 50 façon de récupérer une erreur (mais 100 façon de les provoquer soit même).
Suivez simplement point par point cette manipulation.
Tout d’abord, si l'on a oublié de monter les partitions pour l'installation, il a forcément lui même créé et remplis les dossiers /var, /var/log etc... Problème, vous n'aviez pas réservé énormément de place pour la racine, et cette dernière, si vous continuez dans cette voie, va vite saturer.
Heureusement, j'ai une parade :
On va commencer par aller chercher nos partitions, car elle sont bien là, dans /dev/. Chez moi, elles sont toutes dans /dev/sys/ car le groupe LVM avait été nommé ainsi. Si vous ne vous souvenez plus comment vous avez créé votre groupe, vous pouvez toujours faire un grep home dans le dossier /dev, il vous trouvera votre partition dans ce fatras.
Une fois votre partition trouvé, il faut la monter, mais attention, pas de var sur le /var actuel, sinon elle sera invisible car les deux dossier (l'actuel /var et la partition var) vont se mêler.
Par conséquent, il faut y aller élément par élément.
Je vais expliquer en détail pour /var, et /var/log, il faudra ensuite l'appliquer pour les autres partitions.
NB : N’hésitez pas à vous faire une liste pour n'en oublier aucune.
Pour var :
On monte var dans /mnt.
mount /dev/sys/var /mnt
Ensuite on copie le contenu du /var original dans la partition monté.
cp /var /mnt
On démonte /mnt.
umount /mnt
Ensuite, on va monter la partition log.
mount /dev/sys/log /mnt
On copie son contenu.
cp /var/log /mnt
Et on démonte.
umount /mnt
Et on fait de même pour tout les autres.
Et voilà. Maintenant, que l'on a terminé de faire toutes nos copies, c'est là que ça va se corser, et qu'il faut être ingénieux. On aura beau configurer le fstab pour que chaque partitions prennent leur place au démarrage, elles ne feront pas plus que cohabiter, sinon marquer, les fichiers toujours présents dans les dossiers d'origine /var etc... Seulement, ces dossiers sont important, interdiction de les supprimer dés maintenant en se disant qu'ils seront de toute façon remplacés par leurs homologues partitionnés lors du redémarrage, et ceci pour plusieurs raisons ;
-Linux va vous vomir dans le crâne car les dossiers contiendront encore actuellement des processus en cours, et même si vous forcez la suppression de la plupart, les processus en cours eux, refuseront de se supprimer. C'est d'ailleurs une très bonne façon aussi de faire planter son serveur, c'est aussi suicidaire que de faire un « sudo rm -rf / ».
-Parce que vous avez peut être omis de copier quelque chose, ou qu'un fichier s'est mal copié, bref, il peut s'être passé n'importe quoi et cette solution couperai court à toute position de retrait en cas de problème.
Il va donc falloir être plus ingénieux : Une fois le redémarrage effectué, et vos partitions bien montées (vérifier avec un mount), vous allez monter votre partition / sur le /mnt.
mount / /mnt
Pourquoi ? Et bien parce qu'en montant la racine, celle ci va être montée indépendamment de toutes les autres partitions qui sont montées au système, et donc laisser apparaître les anciens /var, /home etc... d'origine.
Il vous suffira ensuite d'en supprimer les contenus (attention à ne pas supprimer les dossiers, sinon les points de montages ne pourront se faire si le dossier d'arrivée n'existe pas et ça puera la kernel panic) puis à démonter votre / du /mnt. Une fois le serveur de nouveau redémarré, vous aurez alors vos partitions correctement montée (mais aurez perdu 2h de travail par rapport à ceux qui ont penser à régler les partitions des l'installation, donc pensez y!)
Deuxième Étape : Installation du linux en debootstrap et chroot.
Avant-propos sur le debootstrap et le chroot.
Ces deux outils sont des outils très puissants, à manipuler avec précaution. Debootstrap permet d'installer un système Linux/UNIX au sein d'un autre système Linux/UNIX. Son utilité réside dans le fait d'avoir deux système distincts, sans avoir nécessairement besoin d'installer une gestion de machines virtuelles. De plus, grâce au debootstrap, il est inutile d'avoir un .iso de linux, un simple acces aux mirroirs via internet suffit. Le chroot est le complément élémentaire de debootstrap car il permet de prendre en main le système installé (l'application de chroot sur le dossier correspondant fera en sorte que la console deviendra alors la console de Ubuntu, et plus de debian).
Ici, nous allons installer via debootstrap, linux Ubuntu 11.04 à l’intérieur de notre partition /srv/ubuntu.
Installation de Ubuntu 11.04
Il faut commencer par installer sur Debian, les deux outils cité ci dessus. Jusqu'ici, rien de bien particulier. Il suffit de faire :
sudo apt-get install debootstrap dchroot
Une fois les deux outils installés, on passe aux choses sérieuses :
sudo debootstrap –-arch i386 'lsb_release -c -s' /srv/ubuntu http://archive.ubuntu.com/ubuntu/
notez ici que je sélectionne l'architecture du système linux, à savoir 32bits. Vous pouvez, si vous voulez, sélectionner un système en 64bits, si votre parc informatique (les ordinateurs qui seront amenés à démarrer sur ce linux) est 100% compatible 64bits. Pour éviter les problèmes de compatibilité, je vous conseil cependant de vous en tenir au 32bits, même si cette recommandation sera obsolète d'ici quelques courtes années (car le 32bit est condamné à mort d'ici 2038 http://fr.wikipedia.org/wiki/Bug_de_l%27an_2038, ainsi que son incapacité à prendre en compte une RAM supérieurs à 3,5Go tout les systèmes sont amenés à être remplacés par des 64bits).
NB : Debootstrap accepte pas seulement les URLs, il peut aussi se lancer à partir d'un fichier. Par conséquent, on est pas soumis à la dernière version en date, ici, publié par Ubuntu, mais on peut par exemple lui soumettre une béta ou autre. Attention cependant a ne pas se méprendre sur les architectures. Si on lui précise une architecture 32bits avec une image de linux amd64, il risque de ne pas aimer.
NB 11.10 : Debootstrap n'a pas encore été mis à jour pour accueillir la 11.10, Oneiric. Il faut donc créer un script spécial qui va quand même lui permettre d’accéder aux sources. Pour ça on va dans
cd /usr/share/debootstrap/scripts/
cp natty oneiric
Et maintenant vous pouvez lancer :
debootstrap --arch amd64 'oneiric' /srv/ubuntu/new/ http://archive.ubuntu.com/ubuntu/
Bref, ensuite, il faut charger certaines configurations communes de domaine de Debian jusqu'à Ubuntu. Pour ce faire on va balancer la commandes suivantes.
cp /etc/resolv.conf /srv/ubuntu/etc/resolv.conf
C'est trop anecdotique pour s'étaler dessus.
Ensuite, on va monter les partitions de /dev et de /proc depuis Debian jusqu'à Ubuntu. Ça permet de pouvoir prendre le contrôle de linux. En effet, dans l'état actuel, linux n'est pas capable de gérer ses processus et ses périphériques. En fait il est totalement impuissant. C'est pourquoi on va lui permettre d'utiliser les éléments de debian comme références.
sudo mount –-bind /dev /srv/ubuntu/dev
sudo mount -t proc /proc /srv/ubuntu/proc
Voila, linux est maintenant près pour sa prise en main. On va donc passer en chroot sur notre partition Linux fraîchement chargée (mais pas encore installée).
Pour ce faire, on va envoyer la commande suivante :
sudo chroot /srv/ubuntu
Et voilà, vous ètes dans Ubuntu. Pour faire courts, gardez à l'esprit que vous ètes à la racine de votre Ubuntu, et que donc, votre cd / vous affichera root@blahblah:/# mais qu'en réalité, du point de vue de debian, vous serez dans /srv/ubuntu. Et oui, ubuntu sera devenu la racine de votre Ubuntu.
On rajoute une partition en interne :
mount -t devpts devpts /dev/pts
Maintenant que l'on a accès a notre base Linux, il va falloir l'installer. Et oui, le debootstrap n'a fait que lui donner des éléments pour pouvoir tourner en chroot, mais votre distribution est encore loin d'être complète.
Donc une fois en chroot, et le contrôle total acquit, on installe donc Ubuntu.
Voici la serie de commande à balancer pour que l'installation se passe correctement :
apt-get update
apt-get install ubuntu-minimal ubuntu-standard ubuntu-desktop language-pack-fr language-pack-gnome-fr nfs-client
apt-get dist-upgrade
dpkg-reconfigure locales
dpkg-reconfigure console-setup
NB 11.10 : Oneiric instaure un nouveau système de gestion des services, nommé upstart. Ce dernier étant totalement incompatible avec chroot (Connexion au socket impossible), il faut donc le court-circuiter via les commandes suivantes pour terminer correctement l'installation.
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl
C'est un bug connu qui je l'espère sera remédié rapidement. Une fois l'installation finalisée à 100% (c'est a dire que vous quittez le chroot) définitivement, il faudra supprimer ce court-circuit sinon votre système ne démarrera jamais. Voici les commandes de suppression
Dpkg-divert --remove /sbin/initctl
rm /bin/true
Normalement, au terme de ces commandes (et d'une attente de plus ou moins 30 minute, selon votre connexion et les capacités de la machine), le système linux est installé et fin prêt à démarrer. Seulement, pour le moment, il n'est pas configuré totalement pour le nfs, même si dans l'apt-get install, on lui a précisé nfs-client, il n'est pas configuré en natif pour pouvoir tourner avec.
Il va donc falloir modifier encore quelques détails très importants.
On va donc commencer par nommé le système Ubuntu en interne. On va lui donner le nom de « nfs-ub ». C'est important pour la suite de le nommer clairement.
Donc pour le nommer on fait :
echo « nfs-ub » > /etc/hostname
Ensuite, il faut configurer la boucle IP interne :
dans le fichier /etc/hosts :
127.0.0.1 localhost
127.0.1.1 nfs-ub
Le reste doit être inchangé.
On va ensuite configurer notre utilisateur principal. Il est impératif de conserver précieusement les identifiants donnés, car même si l'on possède un système de compte à l'origine, il va y avoir une étape de vide entre le démarrage final du nfsroot et son utilisation, et c'est durant cette étape que ce compte va servir. Pour ce faire on fait :
adduser NomDeCompte
usermod -G admin -a NomDeCompte
ensuite lancer visudo
et placer
%admin ALL=(ALL) ALL
Voila, à présent, le compte créé sera un compte admin de type root, ce qui permettra aussi de pouvoir appliquer facilement toutes les configuration en root.
Courage, on en voit le bout !
Maintenant on va configurer le fstab interne à Linux. Normalement, ce dernier est pour le moment vide, dans la mesure ou ce dernier s'est installé sans vraiment connaître ses partitions (via le chroot).
Nous allons donc fixer ça :
vi /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/nfs / nfs defaults 1 1 none /tmp tmpfs defaults 0 0 none /var/run tmpfs defaults 0 0 none /var/lock tmpfs defaults 0 0 none /var/tmp tmpfs defaults 0 0
Maintenant que le fstab est configuré, il faut enfin placer Ubuntu en situation de se lancer en NFS. Comme dit plus haut, même si la version installé est une version NFS, elle ne se considère pas encore comme tel.
Il faut donc lui préciser.
Ça se passe dans le fichier :
vi /etc/initramfs-tools/initramfs.conf
à la ligne
BOOT=local
changer en
BOOT=nfs
et à la ligne
MODULES=most
changer en
MODULES=netboot
A partir de maintenant, la configuration du noyau linux a changé, et il va pouvoir enfin démarrer en NFS. Enfin presque, puisqu'il faut quand même reconstruire une partie du noyau :
apt-get install linux-image-generic
#dpkg-reconfigure « linux-image-'uname -r' »
update-initramfs -u
Et voilà, normalement après ça vous avez une image toute neuve et prête à fonctionner en nfs.
Ensuite, une dernière chose à configurer : Quand un PC client va se connecter et charger le NFS, il aura d'ores et déjà une adresse IP, donné par le DHCP au lancement de la procédure de boot. Mais si on le laisse faire, une fois linux démarré, il pourrait cherché à relancer une procédure d’acquisition d'adresse, ce qui aurai pour conséquence probable de faire casher Linux car ce dernier n'aurai alors plus accès à sa base NFS. Ce serai donc très gênant d'avoir un système qui, parce qu'il marche bien, ne marcherai pas. Donc pour l’empêcher de boucler bêtement dans ce problème, il ne faut donc pas oublier de configurer l’acquisition d'adresse IP en manuel, de façon a ce qu'elle ne s'amuse pas à changer quand ça lui chante.
C'est donc ici que ça se passe :
vi /etc/network/interfaces
Et on change
iface eth0 inet dhcp
par
iface eth0 inet manual
Et voilà, vous pouvez lacher la prise en main de linux en quittant le chroot
exit
Voila, félicitation, votre linux est désormais prêt à tourner en NFS. Cependant, rien n'est encore totalement terminé sur le serveur.
Troisième Étape : Configuration du serveur NFS
Et oui il reste encore une certaine quantité de choses à installer sur votre serveur debian. Pour commencer, il faut simplement installer le serveur nfs :
apt-get install nfs-kernel-server
Une fois ce petit outil installé, il va falloir lui préciser où se situe la partition nfs à partager.
Ca se passe dans le fichier /etc/exports
/srv/ubuntu IpdesClients (pour moi c'est 192.168.1.* pour couvrir toute la plage IP)(rw,no_root_squash,async,subtree_check)
N'oubliez pas de relancer le service après chaque modification de ce fichier via cette commande :
sudo service nfs-kernel-server reload
ou
exportsfs -a
Voila, votre serveur nfs est prêt.
Voila, en fait on dirait pas comme ça mais vous avez terminé la configuration de votre serveur ! Alors ? Heureux ? J'espère ! Parce que c'est pas encore terminé, il y a encore du travail !
Quatrième Étape : Installation sur le système client.
Nous allons enfin aborder la problématique du système client.
Pour être clair, cette solution est envisageable dans un cas particulier : vous voulez booter via un support amovible bootable du style USB avec Grub2 dessus, ou alors vous possédez déjà un linux d'installé sur votre machine, muni de grub2 également, et vous voulez quand même conserver cette version.
Et oui car l’intérêt de cette méthode, c'est qu'elle laisse le choix au démarrage, entre la version en LAN, ou un système local, comme Linux ou même pourquoi pas Windows ou MacOS.
Si en plus on imagine que les fichiers personnels sont séparés, cela permet en cas de panne du serveur où est contenu Linux, de pouvoir quand même travailler via les versions installées sur les machines.
Donc, on va commencer. Déjà, un conseil, effectuez cette technique sur une machine banché au serveur en local ; déjà pour pouvoir communiquer avec lui via ssh, ce qui est plus agréable que de devoir être sur le serveur en question, et ensuite pour éviter d'avoir recours à des supports amovibles pour transporter les images et autres fichiers nécessaires.
On va d'abord préparer le terrain. Une fois en mode sudo, vous allez vous rendre dans le dossier /boot/grub (cd) de votre disque dur actuel, et effectuer cette commande :
mkdir LAN
cd LAN
Voila, on va se placer dans ce dossier pour placer les fichiers de linux en question. Maintenant assurez vous d'être sur le même réseau que le serveur, et que ce dernier est bien équipé de ssh.
On va aller chercher les deux fichiers de configuration de linux pour les mettre en local.
Voici la commande :
scp login@Adresse-serveur:/srv/ubuntu/boot/vmlinuz-votreversiondedistrib-generic vmlinuz
scp login@Adresse-serveur:/srv/ubuntu/boot/initrd.img-votreversiondedistrib-generic initrd.img
Voila, normalement votre dossier /boot/LAN est équipé des dernières images du noyau linux. Ce sont des fichiers extrêmement important, car ceux sont eux qui vont avoir les compétences pour lancer le NFS.
Une fois ça fait, il va falloir aller dans les fichiers de configuration de grub2, situé dans /etc/grub.d.
Ici, vous allez créer un nouveau fichier nommé 11_OnLANLinux
touch /etc/grub.d/11_OnLANLinux
Dans ce fichier, voici ce qu'on va y mettre :
#!/bin/sh
exec tail -n +3 $0
menuentry 'Ubuntu On Lan by Nak @ Your Mom'
{
insmod ext2
insmod fat
insmod ntfs
search --no-floppy --fs-uuid
linux /boot/LAN/vmlinuz root=/dev/nfs nfsroot=AdresseIPdevotreServeurNFS:/srv/ubuntu/ ip=dhcp rw quiet splash
initrd /boot/LAN/initrd.img
}
Comme on est sous Grub 2, il est nécessaire de recréer à chaque modification, le fichier de configuration général. Pour ce faire, il faut effectuer la commande suivante :
update-grub
Et voilà, normalement en dessous de vos linux habituels, vous devriez avoir votre distribution en ligne accessible.
Vous pouvez maintenant redémarrer sur ce nouveau système !
Cinquième Étape : LDAP et autres configuration de comptes
Pour le moment, votre système Ubuntu ne peux fonctionner qu'avec le compte que vous lui aviez paramétré pendant son installation. Quand on dispose d'une structure LDAP de comptes centralisé sur un réseau, il est alors nécessaire de lier la distribution Ubuntu avec tout ces comptes.
Mais tout l’intérêt est là. Vous avez entre les mains une distribution linux tout ce qu'il y a de plus normale et fonctionnelle. Par conséquent, rajouter quelque chose ou installer un paquet est aussi simple que sur une distribution classique.
Pour ldap, il faut utiliser votre gestionnaire de paquet préféré :
sudo apt-get install libpam-ldap libnss-ldap
Alors par contre, attention, ldap est a manier avec précaution. Veillez à connaître toute la configuration de votre serveur ldap pour être sur de ne pas vous tromper, sinon vous risquez de perdre totalement le contrôle de votre linux, et vous serez obliger de retourner en mode chroot.
Une fois ça fait, vous pourrez redémarrer, et vous logger avec votre compte stocké sur le ldap.
Ensuite, une dernière chose : Il est possible que certaines applications comme Thunderbird, rencontrent des problèmes pour se lancer. Dans ce cas, veillez à installer nscd. Ce dernier générera le cache nécessaire a son bon fonctionnement.
Voila, félicitation, vous avez un Linux en ligne tout neuf !
Enjoy !
NOTES :
Penser à fixer le serveur débian sur une IP précise avec le fichier /etc/network/interfaces. Ça évite de lui courir après sur le DNS.
Voici une petite copie du fichier de configuration.
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 192.168.0.8 (à voir dans votre cas)
netmask 255.255.255.0
gateway 192.168.0.252 (idem)
16 notes · View notes
dontpanicit · 14 years ago
Quote
apt-get purge, ou comment gérer son système Ubuntu de façon stalinienne.
0 notes