Tag: Astuces

Lorsque l’on fait du déploiement de poste (ou de serveur) à grande échelle, un des moyen les plus simple est de mettre en place un serveur PXE. Je ne reviendrais pas ici sur la façon de configurer un tel serveur, le net fourmillant de tutoriaux expliquant comment les mettre en place. Cette méthode fonctionne dans beaucoup de cas, mais peut vite devenir galère lorsqu’on utilise des équipements qui ne sont pas standard, comme des cartes réseaux vmware (vmxnet) ou alors des cartes HBA pour installer son système sur une baie de disque fibre, ou bien tout autre périphérique que l’on souhaite utiliser durant l’installation du système.
Je vais prendre pour exemple dans cet article l’ajout de pilotes pour les cartes vmware, sur une distribution CentOS, mais cet exemple est facilement transposable à n’importe quel driver, et à n’importe quelle distribution.
Pour commencer, on va se mettre sur une machine déjà installée avec la distribution que l’on souhaite déployer et les drivers que l’on souhaite ajoutés installés sur le système.
Tout d’abord, il faut récupérer le fichier initrd.img, qui se trouve dans les fichiers liés au PXE sur le CD ou DVD de la distribution (ou sur le serveur PXE). dans le cas d’un DVD CentOS, le fichier se trouve dans “images/pxeboot”.
On va commencer par préparer notre espace de travail :

mkdir /tmp/pxe
cd /tmp/pxe
cp /mnt/dvd/images/pxeboot/initrd.img .
mkdir initrd

Ensuite, on va décompresser le RAMDISK, afin d’avoir accès aux drivers.

cd initrd
zcat ../initrd.img | cpio -id

Maintenant, il convient de repérer le code du périphérique :

$ lspci
[...]
03:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)

puis, pour repérer le code :

$ lspci -n
[...]
03:00.0 0200: 15ad:07b0 (rev 01)

on utilise donc le code 03:00.0 pour repérer le code du périphérique qui nous intéresse : 15ad:07b0
Après avoir gardé ce code en mémoire, on va maintenant décompresser l’archive des modules du noyau PXE :

mkdir /tmp/pxe/modules
cd /tmp/pxe/modules
zcat ../initrd/modules/modules.cgz  | cpio -id

Puis, nous allons récupérer les drivers sur le système pour les inclure au module. Le chemin vers les drivers ainsi que celui du noyau PXE est à adapter en fonction de votre distribution et des drivers que vous souhaitez intégrer :

cd /tmp/pxe/modules/2.6.18-194.17.1.el5/x86_64
cp /lib/modules/2.6.18-194.el5/misc/vmxnet*.ko .
chmod 744 vmxnet*

il faut maintenant recompresser l’archive des modules :

cd /tmp/pxe/modules
find . | cpio -o -H crc | gzip -9 > /tmp/pxe/initrd/modules/modules.cgz

Puis, on édite le fichier des identifiants pci pour y ajouter nos modules :

cd /tmp/pxe/initrd/modules
vim pci.ids

et on cherche l’entrée correspondant au premier chiffre trouvé dans le lspci -n (ici 15ad pour vmware).
Si l’entrée n’existe pas, il faut la rajouter en lui donnant un nom. Puis, il faut rajouter une sous-entrée avec le deuxième chiffre. Dans mon cas, cela va donner ceci :

15ad  VMware Inc
        0405  Abstract SVGA II Adapter
        0710  Abstract SVGA Adapter
        07b0  VMware Adapter

ensuite, on édite le fichier modules-info afin de rajouter nos deux drivers, comme ceci :

vmxnet
      eth
      "VMware vmxnet ethernet driver"
vmxnet3
      eth
      "VMware vmxnet3 ethernet driver"

Puis, on rajoute les alias présent dans le système pour nos drivers au fichier modules.alias :

grep vmxnet /lib/modules/2.6.18-194.17.1.el5/modules.alias >> /tmp/pxe/initrd/modules/modules.alias

enfin, il ne reste plus qu’a ré-empaqueter le ramdisk :

cd /tmp/pxe/initrd
find . | cpio -o -H newc | gzip -9 > /tmp/pxe/initrd.img.vmxnet

et à le mettre sur le serveur PXE :

cp /tmp/work/initrd.img.vmxnet /tftpboot/centos/centos5.5/x86_64

Et voilà, le tour est joué. Dans ce cas précis, cela permet de déclarer directement des machines virtuelles avec des drivers vmxnet, au lieu de faire l’installation avec des drivers e1000, puis de modifier la carte réseau une fois le système installé.

Tags: , , , ,

Migration Ubuntu/OpenGEU ou Gnome/Enlightenment

L’autre jour, un collègue m’a fait découvrir une distribution appelée OpenGEU. Cette distribution est un dérivé d’Ubuntu, mais avec une interface Enlightenment modifiée, intégrant des gadgets et des beauxthèmes.

Cette distribution n’apporte rien en terme de fonctionnalités, mais est très jolie. Vous pouvez en voir un exemple ici.

Si vous avez une Ubuntu et que vous souhaiter essayer ce nouvel environnement, rien de plus simple, il suffit d’ajouter les deux lignes suivantes :

deb http://opengeu.linuxfreedom.com/ubuntu intrepid e17
deb http://opengeu.linuxfreedom.com/ubuntu intrepid opengeu

dans le sources.list (sudo gedit /etc/apt/sources.list)

puis vous importez la clé du dépot :

wget -q http://opengeu.linuxfreedom.com/ubuntu/dists/repo.key -O - | sudo apt-key add -

enfin, il vous suffit de taper :


sudo aptitude update
sudo aptitude install opengeu-desktop

Une fois l’installation terminée, vous n’avez plus qu’a configurer l’écran de connexion pour changer le thème de gdm,
puis, de sortir de votre session et choisir la session Ecomorph E17. et là, vous n’avez plus qu’à jouer…

Tags: , , , ,

Cet été, j’étais en vacances. et en vacances, on ne réfléchit pas trop.

Bref, à un moment, une personne de ma famille m’a amené son portable en me demandant de supprimer Ubuntu de son disque dur afin de redonner de l’espace à Windows. J’aurais préféré faire le contraire, mais là n’est pas le propos.

Ayant toujours un live cd de Ubuntu sur moi, j’ai démarré l’ordinateur sur le cd, et à l’aide du gestionnaire de partitions, j’ai supprimé les partitions / et swap, et redonné l’espace à la partition Windows.

Au redémarrage, je me suis retrouvé avec une belle erreur de grub (qui est placé sur le master boot record) me disant qu’il ne trouve plus la partition racine (normale, puisque je l’avait effacée). Impossible donc de démarrer l’ordinateur avec ce MBR défectueux.

Voulant réparer le MBR, j’ai redémarré sur le livecd, et j’ai cherché un moyen de refaire le MBR. Ma deuxième erreur a été de lire trop vite le manuel de fdisk. En effet, j’ai lu le paragraphe suivant :

The  bottom  line is that if you use cfdisk or fdisk to change the size
of a DOS partition table entry, then you must also use dd to  zero  the
first 512 bytes of that partition before using DOS FORMAT to format the
partition.  For example, if you were using cfdisk to make a DOS  parti‐
tion table entry for /dev/hda1, then (after exiting fdisk or cfdisk and
rebooting Linux so that the partition table information is  valid)  you
would  use the command "dd if=/dev/zero of=/dev/hda1 bs=512 count=1" to
zero the first 512 bytes of the partition.

par contre, j’ai complètement ignoré le paragraphe suivant :

BE EXTREMELY CAREFUL if you use the dd command, since a small typo  can
make all of the data on your disk useless.

J’ai donc lancé un :

dd if=/dev/zero of=/dev/hda1 bs=512 count=1

qui ne m’a pas du tout réparé le MBR, mais qui a flingué les 512 premiers bits de ma partition Windows.

Après avoir réfléchi un peu à la situation, je me suis dit : MAIS QUEL CRÉTIN CE GARS !!!

Après avoir chercher un peu dans la mallette du portable, j’ai trouvé un beau CD de Windows XP, qui m’a donné la solution à mon premier problème :

Restauration du Master boot Record Windows

Afin de restaurer le MBR pour Windows, il suffit de lancer l’installation de Windows, puis de passer en mode réparation (R). Il s’ouvre alors une console, où il suffit de taper :

fixmbr c:

Une fois le PC redémarré, cela fonctionne correctement, lorsqu’on a pas flingué les partitions.

J’ai donc ensuite cherché comment réparer une partition NTFS cassée, et là, j’ai retrouvé mon couteau suisse : l’outil testdisk (évoqué dans la restauration de données dans un article précédent).

Restauration d’une partition NTFS abimée

lancer testdisk en tant que root.

Au démarrage, le programme propose trois choix :

[ Create ]  Create a new log file
[ Append ]  Append information to log file
[ No Log ]  Don't record anything

c’est juste pour les logs, donc, on choisit ce qu’on veux.

Puis choisir son disque, puis l’entrée [ Intel ]  Intel/PC partition.

Ensuite il faut aller dans [ Advanced ]  Filesystem Utils.

On se retrouve alors devant la liste des partitions du disque.

Il suffit alors de choisir la partition NTFS cassée, et de lancer le menu [Repair MFT]. TestDisk va alors récupérer la sauvegarde de la table principale des fichiers (Master File Table Mirror), et écrase ensuite la MFT avec.

Une fois fini, j’ai quand même été obligé de reprendre le cd d’installation de XP et de repasser en mode réparation, puis de taper la commande fixboot c:

Voilà pour mes aventures de l’été…

moralité, toujours réfléchir à deux fois avant de faire une connerie.

Et du coup, je me pose la question : Est-ce qu’un utilisateur lambda est vraiment libre de sortir du monde libre ? Ca n’est pas si facile que ça de supprimer Linux… Moins facile que d’y entrer… Moralité :  Il faut pas en sortir !

Tags: , , , , , ,

J’ai découvert screen il n’y a pas longtemps, mais depuis, je m’en sers tous les jours. Vous me direz : ” Oui, c’est très bien tout ça, mais c’est quoi, screen ?”.

Screen est un terminal que l’on ouvre sur un serveur, et qui peut être détaché et ré-attaché à volonté. Cela permet donc de lancer un processus assez long, comme une compilation, de détacher le terminal, couper la connexion au serveur, éteindre l’ordinateur, rentrer chez soi. Le lendemain, lorsque l’on reviens, et que l’on se reconnecte sur le serveur, on retrouve son terminal dans l’état où on l’avais laissé la veille.

Pour installer screen, sous Ubuntu, il suffit de taper :

sudo apt-get install screen

ensuite, pour ouvrir ce terminal, il suffit de taper :

screen

après un écran d’accueil, on se retrouve avec un terminal. on peut ensuite faire ce que l’on veut dans ce terminal. puis lorsque l’on veut s’en détacher, il suffit de faire :

[Ctrl]+a d

on peut ensuite fermer son gnome-terminal (ou autre).

Lorsque l’on souhaite récupérer le terminal détaché, il suffit de taper :

screen -r

Lorsque l’on a plusieurs screen, le -r demande l’identifiant de celui qu’on veut ré-attacher. on peut avoir la liste des processus screen ouverts avec screen -ls

Lorsque l’on veut avoir plusieurs terminaux dans screen, il faut éditer le fichier ~/.screenrc et y mettre :

bindkey T title
hardstatus on
hardstatus string "%{.bW}%-w%{.rW}%f%n %t%{-}%+w %=%{..G}[%H %l] %{..Y} %m/%d %c"
hardstatus alwayslastline "%{=b}%{G} Screen(s): %{b}%w %=%{kG}%C%A  %D,%M/%d/%Y "

Dès lors, on obtient une barre en bas du terminal, permettant de naviguer entre les différents onglets.

Les commandes utiles sont :

[Ctrl]+a c              pour créer un nouvel onglet
T (et non t)          pour renommer un onglet
[Ctrl]+a [0..9]    pour mettre tel ou tel onglet au premier plan
[Ctrl]+a S              pour spliter le terminal à la vertical
[Ctrl]+a s              pour verrouiller le terminal
[Ctrl]+a [TAB]      pour se déplacer entre les zones splitées
[Ctrl]+a X              pour détruire une région splittée

On peut voir ci-dessous un screenshot d’un Screen splitté en 3 avec 3 commandes s’exécutant :

Voilà pour ce petit outil, qui peut s’avérer très utile lorsque l’on a des processus longs à lancer, ou que l’on veut garder ses terminaux toujours ouverts.

Tags: , , ,

Comment ça marche Ubuntu

Juste un petit billet pour montrer un lien vers le site de comment ça marche, qui présente en vrac un certain nombre de petits articles sur Ubuntu, expliquant notamment comment avoir un démarrage plus rapide, désactiver IPV6, utiliser truecrypt… bref un tas de petites infos utiles a découvrir ou redécouvrir.

Tags: , ,