Archive for Info & technique

Commandes pratiques pour gérer le RAID soft sous Linux

Introduction

Je vous propose ici un aide-mémoire aussi synthétique que possible pour découvrir ou retrouver les commandes les plus usuelles dans les cas de mise en place ou de maintenance d’un système de disque en RAID (0,1,4,5 …) logiciel.

Les outils de gestion du RAID logiciel (mdadm, etc.) sont supposés être installés au sein de votre système, ce qui est plutôt courant dans la majorité des distributions mises à disposition de nos jours (je parle de l’année 2010) ; ceci ne sera donc pas l’objet du présent article.

Il n’est pas non plus ici question d’expliquer ou de comparer les différents modes de RAID : 0, 1, 4, 5, 10, etc.

Voici donc les principales commandes (avec exemples) nécessaires à la gestion responsables de ses grappes RAID soft sous Linux.

Vérifier de l’état du RAID

Etat global

monlinux:~ #cat /proc/mdstat
Personalities : [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [linear]
md2 : active raid1 sdc3[1]
974656448 blocks super 1.0 [2/1] [_U]

md0 : active raid1 sdd1[4] sdc1[2]
1051636 blocks super 1.0 [2/2] [UU]
bitmap: 0/9 pages [0KB], 64KB chunk

md1 : active raid1 sdb3[0] sda3[1]
242093944 blocks super 1.0 [2/2] [UU]
bitmap: 8/462 pages [32KB], 256KB chunk

 

 

Autres commande pour avoir une identification des grappes avec des informations plus synthétiques :

monlinux:~ #mdadm --examine --scan

ARRAY /dev/md/0 metadata=1.0 UUID=e7d78e16:ac222ac5:4480ce5c:2fad9651 name=linux:0
ARRAY /dev/md/1 metadata=1.0 UUID=30967b39:e498bede:01964510:68b45134 name=linux:1
ARRAY /dev/md/2 metadata=1.0 UUID=017d152b:ad18a24b:5b3bfd84:ef1d8c26 name=linux:2

Ces informations doivent être conformes au contenu du fichier « /etc/mdadm/mdadm.conf » (ou « /etc/mdadm.conf » sous openSUSE par exemple). Dans le cas contraire, il est impératif de le mettre à jour comme suit :

( Sauvegarde datée de la version actuelle, en cas où !! )
monlinux:~ #cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_backup_AAAA-MM-JJ

( Mise à jour avec les info de la commande scan )
monlinux:~ #mdadm --examine --scan >> /etc/mdadm/mdadm.conf

monlinux:~ #cat /etc/mdadm/mdadm.conf

 

Penser à éditer ensuite le contenu de mdadm.conf afin de le nettoyer des lignes doublons éventuelles ou de l’enrichir d’options par défaut par exemple.

Pour vérifier le détail d’une grappe en particulier :

monlinux:~ #mdadm --detail /dev/md1
/dev/md1:
Version : 1.00
Creation Time : Tue Aug  3 02:21:56 2010
Raid Level : raid1
Array Size : 1460292296 (1392.64 GiB 1495.34 GB)
Used Dev Size : 1460292296 (1392.64 GiB 1495.34 GB)

Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Intent Bitmap : Internal

Update Time : Tue Aug  3 17:42:31 2010
State : active
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Name : linux:1
UUID : 30967b39:e498bede:01964510:68b45134
Events : 16262

Number   Major   Minor   RaidDevice State
0       8       19        0      active sync   /dev/sdb3
1       8       35        1      active sync   /dev/sdc3

 

 

Vérification de l’état d’un disque (device) :

monlinux:~ #mdadm --examine /dev/sda1
/dev/sda1:
 Magic : a92b4efc
 Version : 1.0
 Feature Map : 0x1
 Array UUID : e7d78e16:ac222ac5:4480ce5c:2fad9651
 Name : linux:0
 Creation Time : Tue Aug  3 02:21:55 2010
Raid Level : raid1
Raid Devices : 3

 Avail Dev Size : 3148648 (1537.68 MiB 1612.11 MB)
 Array Size : 3148648 (1537.68 MiB 1612.11 MB)
 Super Offset : 3148656 sectors
 State : clean
 Device UUID : 1e039ddb:be30d627:b6e36dd2:688d42d7

Internal Bitmap : -8 sectors from superblock
 Update Time : Tue Aug  3 17:42:02 2010
 Checksum : ef4b7dc8 - correct
 Events : 52

 Device Role : Active device 0
 Array State : AAA ('A' == active, '.' == missing)

 

 

Créer une grappe RAID

( Création d'une grappe RAID1 avec deux disques )
monlinux:~ #mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1

( Création d'une grappe RAID1 de deux disque dont un est absent pour l'instant )
monlinux:~ #mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda1 missing

( Création d'une grappe RAID1 avec d'autres paramètres ... )
monlinux:~ #mdadm --create --verbose /dev/md0 --level=1 --name=xyz --metadata=1.0 (...)
            --raid-devices=2 /dev/sda1 /dev/sdb1
( nommage explicite de la grappe avec --name=xyz
  forçage du type de superblock  avec --metadata=1.0 )

J’attire spécialement l’attention sur le paramètre metadata=<version>. Il permet de préciser le mode de gestion du « superblock » RAID.

Version du superblock (métadonnée RAID)

Le « superblock » désigne l’ensemble des données stockées sur les disques et servant à fournir au système les informations lui permettant de gérer les grappes RAID. Le format et le mode de stockage de ces métadonnées sont indiqué par un numéro de version :

0.90 : valeur par défaut, sauf indication contraire dans mdadm.conf

1.0 : « superblock » stocké en fin de partition, cette valeur est utilisée automatiquement par le partitioneur de openSUSE pour une compatibilité avec l’amorçage du système avant montage des volumes en RAID (avec GRUB2 ou Lilo)

1.1 : « superblock » stocké en début de partition

1.2 : « superblock » stocké à 4K du début de la partition

Changer le nombre de disques dans une grappe

( Changement du nombre de disques de la grappe )
monlinux:~ #mdadm --grow --raid-devices=2 /dev/md0

( Ajout d'un disque (/dev/sdb1) à une grappe (/dev/md0) )
monlinux:~ #mdadm --add /dev/md0 /dev/sdb1


Changer la taille d’une grappe

( Changer l'espace disque utilisé par la grappe )
monlinux:~ #mdadm --grow /dev/md2 --size=max

Le paramètre –size=max indique qu’il faut passer à la capacité maximale possible en fonction des disques utilisés dans la grappe. Il est tout aussi possible de préciser une taille en Koctets.

Si la grappe à un « write-intent bitmap », il est fortement recommandé de supprimer le « bitmap » avant le changement de taille et de le reconstruire après. C’est en particulier nécessaire si la commande « grow » retourne le message d’erreur suivant : « Device or resource busy ».

monlinux:~ #mdadm --grow /dev/md2 --size=max

mdadm: Cannot set device size for /dev/md0: Device or resource busy

Cette précaution peut éviter la destruction de la grappe et de ses données, notamment si le bitmap existant n’est pas suffisamment grand et que l’augmentation de la taille de la grappe risque d’entrainer un changement de la taille des bloques (chunksize) du bitmap.

Augmentation de la taille avec régénération du bitmap :

( Suppresion du bitmap )
monlinux:~ #mdadm --grow /dev/md2 --bitmap none

( Changement de taille de la grappe à la valeur maximale )
monlinux:~ #mdadm --grow /dev/md2 --size=max

( Force à attendre la fin de l'action ci-dessus avant de lancer la suite )
monlinux:~ #mdadm --wait /dev/md2

( Reconstruction du bitmap (interne) )
monlinux:~ #mdadm --grow /dev/md2 --bitmap internal

 

Attention, il est nécessaire de redimensionner le système de fichier (Ext2, Ext3, Ext4, RaiserFS, etc.) ensuite pour finir la prise en compte du changement de taille.

Redimensionnement du système de fichier de type Ext2/3/4

( Vérifier ... )
monlinux:~ #e2fsck -f /dev/md2

( ... redimensionner ... )
monlinux:~ #resize2fs /dev/md2

( ... revérifier )
monlinux:~ #e2fsck -f /dev/md2


Retirer des disques d’un volume RAID

( Désactiver le disque )
monlinux:~ #mdadm /dev/md0 --fail /dev/sdb1

( Avant de le retirer de la grappe )
monlinux:~ #mdadm /dev/md0 --remove /dev/sdb1

( Si c'est un retrait définitif, il est nécessaire de supprimer le superblock du disque )
monlinux:~ #mdadm --zero-superblock /dev/sdb1

 

 

Arrêter et supprimer une grappe

( Arrêt de la grappe )
monlinux:~ #mdadm --stop /dev/md0

( Écrasement des superblocks pour finaliser la suppression de la grappe )
monlinux:~ #mdadm --zero-superblock /dev/sda1

( Pour tous les disques de la grappe )
monlinux:~ #mdadm --zero-superblock /dev/sdb1

( Un examine scan permet de férifier que la grappe a bien été définitivement supprimé )
monlinux:~ #mdadm --examine --scan

 

 

Actualiser la configuration

(Vu plus haut)

//Mise à jour du fichier mdadm.conf
monlinux:~ #mdadm --examine --scan >> /etc/mdadm.conf

 

 

Sources :

http://www.howtoforge.com/software-raid1-grub-boot-debian-etch
http://www.howtoforge.com/how-to-resize-raid-partitions-shrink-and-grow-software-raid
http://www.unixgarden.com/index.php/administration-systeme/la-souplesse-du-raid-logiciel-de-linux-2
https://raid.wiki.kernel.org/index.php/Growing

Commandes pratiques pour gérer les volumes logiques (LVM) sous Linux/Unix

Introduction

LVM pour Logical Volume Management ou gestion de volumes logiques (in french), est un système de gestion de volumes logiques pour les plate-formes Linux/Unix. Il est utilisé principalement pour apporter de la souplesse dans la gestion des espaces de stockage. Le principe est de dé-corréler l’organisation des systèmes de fichiers (types, tailles, point de montage, etc.) de l’organisation physique des disques matériels et autres dispositifs de stockage par une couche de structure en volumes logiques par dessus les espaces physiques alloué.

Il est ainsi possible d’assembler plusieurs disques afin de disposer d’une seule partition logique hébergeant toute l’arborescence du système de fichier. Il est également possible de modifier la taille des volumes alloué pour chaque point de montage du système (root, /home, /usr, /var, /tmp, etc. ) afin de l’adapter à l’évolution du besoin sans être obliger de tout sauvegarder / reconfigurer / formater / restaurer, et ceci indépendamment de la taille des partitions et disques physiques utilisés.

Cela permet également d’apporter une couche logique très commode pour gérer d’une façon transparente et souple les nouveaux dispositifs de stockage de données qui se démocratise de plus en plus dans les salles machines et autres datacenters (SAN avec ou sans Multipath, iSCSI, etc.).

Les outils

J’utiliserais LVM2 qui est pré-installé dans mon système sous OpenSUSE Linux en version 11.3. Mais cela ne devrais pas causer de problèmes aux utilisateurs des autres distributions.

Je ne décrirais pas ici les phases d’installation des outils LVM2 ni de tout autre système de gestion de volumes logiques compatible et considère donc les outils comme disponibles.

Néanmoins, n’hésitez pas à me signaler ici tout problème afin d’ajuster le contenu de ce post pour être utile au plus grand nombre d’entre vous.

Définitions

Volume physique (Physical Volume : PV) : disque, partition physique ou volume RAID qui servira de support de stockage.

Groupe de volumes (Volume Group : VG) : les volumes physiques sont organisés au sein d’un ou plusieurs groupes de volumes. Chaque volume physique ne peut être que dans un seul groupe.

Volume logique (Logical  Volume : VG) : un groupe de volume une fois créé et constitué d’un ou de plusieurs volumes physiques peut être utilisé pour créer un ou plusieurs volumes logiques qui seront accessibles comme des partitions « classiques », qu’il sera possible de formater avec le système de fichier que l’on souhaite (Ext2, Ext3, Ext4, Fat32, NTFS, RaiserFS, JFS, XFS, etc.), et d’associer à un point de montage.

Visualisation de l’état des groupes de volumes

Commande : vgdisplay

monlinux:~ # vgdisplay
--- Volume group ---
VG Name               vg1
System ID
Format                lvm2
Metadata Areas        2
Metadata Sequence No  12
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                1
Open LV               1
Max PV                0
Cur PV                2
Act PV                2
VG Size               200.00 GiB
PE Size               4.00 MiB
Total PE              51200
Alloc PE / Size       51200 / 200.00 GiB
Free  PE / Size       0 / 0
VG UUID               41GILT-UW8P-Li19-SyRW-ohUF-Q2N1-Sz1Tnq


Remplacement d’un volume physique

Mise en situation : un groupe de volumes vg1 (/dev/vg1), constitué de deux volumes physiques /dev/sda1 et /dev/sdb1 et de un ou plusieurs volumes logiques /dev/vg1/lv1, /dev/vg1/lv2, etc.

Disons, pour notre exemple que le disque B (/dev/sdb), contenant la partition /dev/sdb1, a besoin d’être remplacé car il montre des signes de faiblesse ou pour le réaffecter à un autre usage. Pour cela nous avons arrêté notre système afin d’installer le nouveau disque C. Après redémarrage, nous avons « partitioner » le nouveau disque /dev/sdc en prenant modèle sur le disque B ou selon une nouvelle organisation qui répond à notre nouveau besoin. Supposant que /dev/sdc2 est la partition du disque C qui a vocation à remplacer celle du disque B (/dev/sdb1) au sein du groupe de volumes vg1, nous l’avons idéalement marquée de type « Linux LVM » (code 8E).

Etape 1 : Préparer le volume physique. La commande pvcreate sert à créer un descripteur de groupe de volumes au début de la partition.

monlinux:~ # pvcreate /dev/sdc2



Etape 2 : Ajouter le volume physique au groupe de volumes par la commande vgextend.

monlinux:~ # vgextend vg1 /dev/sdc2



Etape 3 : Déplacer les données pour libérer le volume physique avec la commande pvmove. Cette commande travaille « à chaud » et intelligemment pour déplacer toutes les données des volumes logiques se trouvant sur le volume physique à libérer, vers les autres volumes physiques disposant d’espace libre. Ceci suppose que l’espace libre disponible est largement suffisant. (C’est clair non ?)

Attention, ce travail peut prendre de quelques minutes à plusieurs heures, selon la quantité de données (photos, mp3, divx, etc. ;-) à déplacer.

monlinux:~ # pvmove /dev/sdb1
/dev/sdb1: Moved: 0.0%
/dev/sdb1: Moved: 0.3%
/dev/sdb1: Moved: 0.7%
/dev/sdb1: Moved: 1.0%

...

/dev/sdb1: Moved: 99.6%
/dev/sdb1: Moved: 99.8%
/dev/sdb1: Moved: 100.0%
/dev/sdb1: Moved: 100.0%



Etape 4 : Retirer le volume physique du groupe de volume par la commande vgreduce. A partir de ce moment (et si aucune autre partition du disque B n’est en utilisation) le disque B peut être retirer du système ou être réaffecté à d’autres usages.

monlinux:~ # vgreduce vg1 /dev/sdb1
Removed "/dev/sdb1" from volume group "vg1"



Etape 5 : Visualiser les informations sur les volumes logiques avec la commande lvdisplay.

monlinux:~ # lvdisplay
  --- Logical volume ---
  LV Name                /dev/vg1/lv-home
  VG Name                vg1
  LV UUID                9tnijT-md5T-8cvz-SOpT-KcGM-gtTJ-kNY8r3
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                150,00 GiB
  Current LE             5600
  Segments               3
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Name                /dev/vg1/lv-root
  VG Name                vg1
  LV UUID                6U8UO0-PHWK-3dP5-0okf-XkzV-49kI-K5hzpp
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                50,00 GiB
  Current LE             1600
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1



Etape 6 : Etendre un volume logique pour profiter d’une éventuelle capacité supplémentaire, obtenue suite à l’ajout d’un volume physique ou le remplacement d’un volume physique par un autre plus grand.

L’extension n’est pas obligatoire, et l’espace de stockage additionnel peut être gardé comme espace de sécurité, à utiliser pour étendre dans l’avenir, un volume logique qui viendrait à manquer de place.

Utiliser pour cela la commande lvextend.

monlinux:~ # lvextend -L200G /dev/vg1/lv-home
(L200G pour passer à 200Go, L+50G pour ajouter 50Go à la taille actuelle)

Etape 7 : Redimensionner le système de fichier pour l’adapter au nouvel espace logique offert. En effet, le changement de taille du volume logique ne se répercute pas automatiquement sur l’espace de stockage et les structures du système de fichier hébergé.

La commande resize2fs prend en charge ce travail, à chaud pour les systèmes de fichier : Ext2, Ext3 et Ext4.

monlinux:~ # resize2fs -p /dev/vg1/lv-home

Références :
LVM HOWTO

Un Fennec pour N900 sous Linux Maemo

Enfin, Fennec est arrivé (en RC1) sous Linux Maemo 5, l’OS qui fait tourner le tout nouveau smartphone N900 (mais également le N810) de chez Nokia.

Fennec, pour ceux qui n’ont pas suivi, est le nom de code de Firefox Mobile, la version allégée de Firefox destinée aux terminaux mobiles. Concernant les autres plates-formes, pour Windows Mobile et Android les développements continus, par contre pour l’iPhone cela ne semble pas être à l’ordre du jour, car selon Jay Sullivan, responsable mobilité de la Fondation Mozilla : « Apple est très restrictif et n’autorise pas les autres navigateurs ».

Parmi les points forts de FireFox Mobile en plus du fait que ce soit un vrai navigateur web (support total de HTML/XHTML, CSS, JavaScript, AJAX, Flash, etc.), on peut citer le support de plug-in et d’extensions, et notamment une : « Weave Sync », for appréciable puisqu’elle permet de synchroniser ses favoris et ses préférences (mots de passe) entre le Firefox du PC de bureau (et/ou de la maison) et celui du mobile. C’est une vraie innovation non ?!

Cela dit, afin de compenser le retard pris par l’équipe de développement de Fennec, Nokia a déjà intégré et d’une façon très réussie (je trouve) un navigateur nommé MicroB, qui n’est autre qu’une version adaptée de Firefox, vraisemblablement basé sur le noyaux de Fennec. C’est le beau fruit de l’excellent travail en étroite collaboration sur les deux produits des équipes de Nokia et de Mozilla.

Ce sera à vous de voir quelle version vous préférez. Je pense également que les prochaines évolutions des deux produits ne manqueront pas d’orienter les choix des utilisateurs dans les mois ou les années qui viennent, à moins que le choix de la convergence des deux produits ne soit fait par les équipes de développement.

Alors si vous être un heureux possesseur (ou une joyeuse détentrice ;-) ) du N900 ou du moins nouveau N810 et voulez essayer Fennec en avant première, allez sur http://www.mozilla.com/mobile avec votre mobile pour lacer l’installation.

Libérer les PC de la vente liée !

Ce texte est le résultat d’une réflexion et la rédaction d’un commentaire suite à la lecture d’un poste sur le blog de Motofix (adresse : http://blog.jujunie.com).

Pour résumer le problème de la vente liée (ou vente subordonnée) des logiciels commerciaux avec les ordinateurs, c’est le fait qu’il est toujours (quasi) impossible d’acheter un ordinateur sans qu’il ne soit déjà équipé de WindowsXYZ avec l’impossibilité d’obtenir l’installation d’un système libre ni même la désinstallation avec remboursement du prix du système pré-installé.

Ceci malgré l’existence des lois qui interdisent ce genre de pratiques et malgré la disponibilité de systèmes d’exploitation complètement libres, gratuits, opérationnels, simples d’utilisation, sécurisés et reconnus. D’ailleurs, plusieurs ministères et organismes étatiques ne sont plus équipés que d’ordinateurs et serveurs sous Linux (d’autres exemples abondent dans la littérature et sur la toile).

Cette situation dure depuis trop longtemps malgré plusieurs dénonciations notamment au niveau des instances européennes. Mais cela peu évoluer si chaque personne sensibilisée à ce problème utilisait tous les canaux dont elle dispose pour faire pression et inverser les tendances face aux actions de lobbying qui tendent à maintenir le « statu quo « . Pour cela il faut :

  • Adhérer aux associations de consommateurs (UFC Que Choisir, etc.) et leur demander des actions dans ce sens ou les y encourager si c’est déjà le cas.
  • Déposer des demandes chez les commerçants de HiTech, les grandes surfaces, les sites de vente en ligne, etc. pour leur demander de développer l’offre autour des logiciels libres.
  • Interpeller ses élus (son maire, son député, etc.) par courrier, par mail, dans les permanences, etc. et leur demander de faire avancer l’application des lois.
  • Interpeller les candidats aux différentes élections pour connaitre leurs engagements sur ces questions mais aussi les leur rappeler après.
  • Interpeler les médias notamment en ligne pour leur demander d’en parler.

Il y a aussi les associations et les acteurs économiques du libre (April, Mozilla, Novell, RedHat, les différentes SSLL, etc.) qui peuvent jouer un grand rôle et à un plus haut niveau (institutions, ministères, fournisseurs, etc.).

Il suffit que la minorité consciente agisse dans sa vie de tous les jours en tant que citoyen, consommateur, client, internaute, etc.

Pendant que j’y pense, un « texte type » pourrait être rédigé et proposé pour simplifier toutes ces démarches !

Une autre idée, la création d’un site web (2.0 bien sûr !) qui permet à chacun d’envoyer quelques dizaines de mails (ou plus !) à destination de différents organismes et institutions par une simple action de remplissage d’un formulaire et validation. Le mail contiendrait le texte type et/ou du texte personnalisé ainsi que les coordonnées de l’utilisateur et en copie, une adresse commune pour la « traçabilité » des retours.

Au fait, ces idées sont sous « Licence Creative Commons »

Actions à suivre donc, selon vos mobilisations ou encouragements ;-)

Grub et les démarrages un peu RAID !

Vous avez installé un serveur sous Linux, c’est bien !
Vous utilisez Grub pour le démarrage (boot loader), c’est très bien ! (laissons de côté la polémique Grub vs Lilo !).
Vous avez configuré vos disques en RAID1 logiciel, c’est très très bien ! (laissons de côté également la polémique RAID hard vs RAID soft !).
Vous avez configuré le RAID1, y compris pour les partitions de démarrage /boot, c’est une bonne idée … mais, il faut s’assurer que le second disque puisse démarrer (booter) sans encombres s’il arrive un problème au premier, et qu’il ne cherchera pas à accéder aux partitions du disque défaillant.

Pour cela, il est nécessaire de configurer Grub sur les deux disques indépendamment. Voila donc la démarche à suivre :

  1. Lancer Grub en mode « ligne de commande » avec les bons droits :
    monlinux:~ # grub
    
    GNU GRUB  version 0.97  (640K lower / 3072K upper memory)
    
    [ Minimal BASH-like line editing is supported.  For the first word, TAB
      lists possible command completions.  Anywhere else TAB lists the possible
      completions of a device/filename. ]
    grub>

  2. Définir le premier disque hd0 qui correspond à /dev/sda (ou /dev/hda dans le cas de disque IDE) comme racine pour les commandes de configuration :
    grub> root (hd0,0)
    root (hd0,0)
     Filesystem type is ext2fs, partition type 0xfd
    grub>

    (hd0,0 : premier disque hd0, première partition 0)

  3. Demander l’installation des données de démarrage sur ce disque :
    grub> setup (hd0)
    setup (hd0)
     Checking if "/boot/grub/stage1" exists... yes
     Checking if "/boot/grub/stage2" exists... yes
     Checking if "/boot/grub/e2fs_stage1_5" exists... yes
     Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  17 sectors are embedded.
    succeeded
     Running "install /boot/grub/stage1 (hd0) (hd0)1+17 p (...)
                             (hd0,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded
    Done.
    grub>

  4. Définir le deuxième disque (/dev/sdb ou /dev/hdb si IDE) comme racine mais en s’y référant comme premier disque pour grub (hd0) et installation des données de démarrage comme précédemment :
    grub> device (hd0) /dev/sdb
    device (hd0) /dev/sdb
    grub> root (hd0,0)
    root (hd1,0)
     Filesystem type is ext2fs, partition type 0xfd
    grub> setup (hd0)
    setup (hd0)
    Checking if "/boot/grub/stage1" exists... yes
    Checking if "/boot/grub/stage2" exists... yes
    Checking if "/boot/grub/e2fs_stage1_5" exists... yes
    Running "embed /boot/grub/e2fs_stage1_5 (hd1)"...  17 sectors are embedded.
    succeeded
    Running "install /boot/grub/stage1 (hd0) (hd0)1+17 p (...)
                             (hd0,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded
    Done.
    grub>

  5. Et pour finir, on sort de la ligne de commande Grub avec un petit « quit » (logic ! ) :
    grub> quit
    quit
    monlinux:~ #

J’espère que ces quelques commandes vous ont été utiles comme elles l’ont été pour moi. N’hésitez pas à me laisser des commentaires, questions ou suggestions d’amélioration.