Le site de Beuz
Slogan du site

Le site de Beuz contient une rubrique pour chacun de mes centres d’intérêts : mandriva linux, tarot, full metal planete, mes logiciels, etc...

Mandriva Linux 2007 sur disque USB

Le présent article décrit pas à pas comment j’ai installé mandriva linux 2007 sur un disque dur usb et créé un CD de boot pour les PC qui ne savent pas démarrer un disque USB.

Article mis en ligne le 21 janvier 2007
dernière modification le 23 mai 2010

par beuz
logo imprimer
Enregistrer au format PDF

Cet article donne une méthode pour installer la Mandriva Linux 2007 sur un disque dur USB. Cette méthode n’est probablement pas la meilleure car mes connaissances sont parcellaires. Elle se base sur des tests empiriques (ça veut dire que j’ai fait plein d’essais qui n’ont pas fonctionné et que je n’ai pas pris le temps de lire l’encyclopédie en 35 volumes du noyau linux).

Le matériel

Pour notre recette, nous avons besoin d’un disque dur USB, d’un CDR vierge, d’une mandriva 2007 et d’un PC avec un graveur de CD. Il faudra avoir un "linux en état de marche" donc soit un liveCD de type Mandriva One, soit avoir un linux qui va bien installé sur le PC.

Ici, j’ai utilisé un boitier USB 3,5 pouces (alimenté par 1 ou 2 ports USB) dans lequel j’ai glissé un vieux disque dur IDE de portable de 10 Go. Le DVD est une mandriva 2007. Mon CDROM de boot est un mini cd-rw de 80 Mo, dont la petite taille permet de le glisser dans la pochette du disque dur.

Le principe

On va installer la mandriva linux sur le disque dur USB à partir d’un PC. Peu nous importe le contenu de ce PC car on ne touchera pas à son propre disque dur. Dans un second temps, nous allons adapter le noyau de démarrage pour tenir compte de la spécificité "USB" du disque dur. La troisième très courte étape consistera à s’intéresser aux PC capables de démarrer sur disque USB. La dernière étape consistera à faire un CD de démarrage spécial pour pouvoir démarrer notre disque USB sur des PC qui ne peuvent pas le faire.

Installation de la Mandriva 2007

Branchez le disque USB sur votre PC, mettez le DVD Mandriva (ou le CD1) dans son lecteur et allumez votre PC. S’il ne démarre pas sur le CDROM, vérifiez dans le bios la séquence de démarrage. "CD-ROM" doit être en premier.

L’installation de la Mandriva se fait de façon tout à fait traditionnelle SAUF l’étape du choix de la partition où installer votre Mandriva. Sélectionnez "partitionnement personnalisé" et prenez bien soin de sélectionner le bon disque dur. Vous devez voir plusieurs onglets dénommés hda, hdb, sda, sdb... Tous ceux qui commencent par hd sont des disques durs internes IDE. On n’y touche pas ! Pour les sd, ce sont soit des disques SATA, soit votre disque dur USB (ou votre clef usb). Soyez sûr de prendre le bon pour ne pas risquer d’écraser les données de votre disque dur interne SATA. Si vous ne savez pas le reconnaitre, si vous avez un doute, arrêtez-là ! Dans tous les cas, c’est le moment de vous dire que je (l’auteur de ces lignes) ne suis pas responsable des dégâts : vous avez fait vos sauvegardes et pris toutes les précautions !

Dans le partitionnement automatisé, si votre disque n’était pas partitionné, choisissez "partitionnement automatique". S’il reste d’anciennes partitions sans intérêt, supprimez-les d’abord. Si par contre, vous avez des partitions linux existantes à conserver, renseignez simplement leur point de montage. Si vous avez une partition windows, vous pouvez aussi essayer de la réduire pour faire un partitionnement automatique sur la place ainsi libérée.

Le reste de l’installation se fait normalement : Il faut lire ce que Mandriva vous écrit, faire vos choix et cliquer...

Attention : Au moment du choix de l’emplacement du secteur de démarrage, c’est comme pour le partitionnement : Ne vous trompez pas, il faut le mettre sur le MBR (Master Boot Record) du disque usb. Si vous n’avez pas de disque interne SATA, votre disque USB s’appelait SDA (à l’étape "partitionnement") et donc vous choisirez d’installer LILO sur /dev/sda

On refait le démarrage

Arrivé à ce stade, cela ne roulera pas. En effet, Lilo va charger deux fichiers ("initrd" et "vmlinuz") en mémoire vive et "leur donner le volant". Le rôle de Lilo est terminé, à eux de se débrouiller maintenant pour conduire ce PC. Ici, il va y avoir une série de tests, initialisations et autres préparatifs. Parmi ceux-ci, il va falloir accéder au disque dur donc lire la partition et le système de fichier (appelé ext3). Oui mais voilà avant de pouvoir lire le système de fichier, il faudrait déjà qu’il puisse accéder à l’USB et pour cela il a un driver (pilote logiciel) USB sous la forme d’un fichier... qui se trouve sur le disque dur USB. Hé, hé, hé ! Dit plus clairement, vous avez fermé les portes de la bagnole en laissant les clefs à l’intérieur : plus moyen d’y entrer !

Nous allons donc ajouter dans initrd les drivers USB et les charger en tout premier. Pour cela, vous avez besoin d’accéder à la partition à partir d’un autre linux. Donc lancez votre Mandriva One, votre liveCD ou votre linux qui va bien sur vote disque IDE.

Ouvrez une console d’administrateur (root) par le menu système->terminaux->konsole ou mieux quittez le mode graphique par l’appui simultané sur CTRL+ALT+F2 (vous y reviendrez par CTRL+ALT+F7.

Voici les instructions à lancer et leur explication (précédé d’un # signalant un commentaire) :

mkdir /mnt/toto
# on crée un dossier toto dans mnt
mount /dev/sda5 /mnt/toto
# on en fait un point d'accès vers notre partition USB racine
# Attention, pour vous ce peut être /dev/sda1 ou /dev/sdb1...
# Vous vous en souvenez on l'a vu plus haut
chroot /mnt/toto
# maintenant on travaille sur notre disque USB exclusivement
# Bref, on en prend les commandes

Maintenant que nous avons "ouvert la bagnole sans la clef", nous allons construire notre nouveau initrd pour ne plus nous faire avoir.

cd /boot
ls
mkinitrd -v --force-usb --preload=ohci-hcd --preload=uhci-hcd --preload=ehci-hdc --preload=usb-storage --preload=sd_scsi --preload=sd_mod /boot/usbinitrd.img 2.6.17-5mdv

Quelques explications :
cd /boot permet d’aller dans le dossier de démarrage.
ls permet de voir ce qu’il y a dedans. C’est là que vous vérifiez le numéro de noyau qui doit être 2.6.17-5mdv. Si ce n’est pas le bon, changez le dernier paramètre de la ligne mkinitrd.
mkinitrd va créer le démarrage du noyau avec les options demandées, à savoir que tous les drivers usb sont préchargés ainsi que les modules qui en dépendent (usb-storage, scsi...). le fichier résultant s’appelle usbinitrd.img et se trouve dans le dossier /boot. Vous pouvez vérifier sa présence par un nouveau ls

les bios capable de démarrer un système sur disque USB

Nous allons ajouter dans /etc/lilo.conf une nouvelle entrée ainsi :

image=/boot/vmlinuz
       label="USB"
       root=/dev/sda5
       initrd=/boot/usbinitrd.img
       append=" splash=silent"
       vga=788

pour faire cela, tapez simplement :
mcedit /etc/lilo.conf

Attention remplacez /dev/sda5 par votre propre valeur (/dev/sda1 ou /dev/sdb1 etc)

Une fois que c’est fait, nous allons mettre à jour le MBR en tapant simplement la commande lilo

Pour sortir de cette console, tapez exit. Si vous aviez fait CTRL+ALT+F2, c’est le moment de faire CTRL+ALT+F7.

Dans le BIOS de votre PC, pensez à mettre HDD-USB en premier dans la séquence de démarrage (BOOT ORDER).

les bios qui ne démarrent pas sur disque USB

Pour ceux-là, nous allons créer une image iso de CD qui va contenir vmlinuz, usbinitrd.img et ce qu’il faut pour les lancer : isolinux. Cette image ISO devrait faire moins de 3 Mo et pourtant ça devrait suffire à contourner les bios récalcitrants.

Vous êtes maintenant revenu sur votre distribution qui marche bien. Créez un dossier "moncd" sur votre disque USB et un sous-dossier "noyau". En console, cela se fait ainsi :

mkdir /mnt/toto/isolinux
mkdir /mnt/toto/isolinux/noyau

Vous allez mettre dans /mnt/toto les fichiers isolinux.bin et fr-latin1.klt. Ces fichiers se trouvent sur le CD1 de votre Mandriva ou sur le DVD dans un dossier nommé isolinux.
De plus vous allez y ajouter les fichiers vmlinuz et usbinitrd.img qui se trouvent dans le dossier /boot du disque USB.

Utilisez votre explorateur de fichiers habituel ou en console :

cp /mnt/cdrom/isolinux/isolinux.bin /mnt/toto/isolinux/
#le binaire isolinux.bin va démarrer le CD et lancer votre initrd
cp /mnt/toto/boot/usbinitrd.img /mnt/toto/isolinux/noyau/
# notre fameux usbinitrd.img que nous avions créé tantôt
cp /mnt/toto/boot/vmlinuz-2.6.17-5mdv /mnt/toto/isolinux/noyau/vmlinuz
#le vmlinuz. Notez bien que l'on prend dans /boot le vmlinuz avec
#son numéro derrière (donc le vrai fichier, pas un lien)
# et on le renomme en vmlinuz sans numéro

Notre futur CD commence à prendre forme. Il ne reste plus qu’à y ajouter deux fichiers texte que vous allez créer avec votre éditeur de texte préféré : kwrite, mcedit, gedit, vim, emacs...

Le premier : isolinux.cfg

default usb
prompt 1
timeout 150
display boot.msg
label usb
 kernel noyau/vmlinuz
 append initrd=noyau/usbinitrd.img ro root=/dev/sda5

Le second : boot.msg

Bienvenue sur le CD de lancement du disque dur USB

Tapez sur la touche ENTREE en croisant les doigts

C’est prêt ! Créons maintenant l’image ISO de notre CD :

cd /mnt/toto
mkisofs -o /mnt/toto/bootcd.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -r -l isolinux

Voilà, vous devriez trouver dans la racine de votre disque USB un fichier nommé bootcd.iso à graver avec K3B (menu Outil -> Graver une image de CD) sur votre cd vierge.

améliorations possibles

Dans la génération du usbinitrd, on précharge les 3 drivers possibles : uhci, ohci et ehci. Si vous savez quel driver utilise votre PC et que votre disque n’ira pas sur d’autres PC, vous pouvez ne précharger qu’un des 3 drivers.

Dans le /etc/lilo.conf, on pourra ensuite changer la ligne "defaut" pour qu’elle lance l’entrée "usb" et non plus "linux".

Le boot.msg peut être graphique mais cela semble assez délicat à faire.

Le CD contient plein de place disponible qu’on aurait pu remplir avec des outils de secours.

Sur le CDROM que j’ai créé, j’ai mis une entrée pour chaque sdX au cas où : sda1 sda2 sda5 sdb1 sdb2 sdb5

P.S. :

Un clubiste Mandriva a fait le CD à partir de mandriva 2007.1 et me signale que l’ISO se fait avec genisoimage au lieu de mkisofs et qu’une nouvelle version de isobin est sur le DVD.


Forum
Répondre à cet article
Mandriva Linux 2007 sur disque USB
dejan - le 1er juin 2007

Merci pour votre tutoriel

Pourrais-je avoir le lien pour faire la même chose pour mandriva 2007.1 ?

quand je fais la commande "mkinitrd" celle-ci n’est pas reconnue (dans mandriva 2007.1)
merci d’avance

Mandriva Linux 2007 sur disque USB
beuz - le 1er juin 2007

Il faut iinstaller le paquet mkinitrd par la commande :
urpmi mkinitrd

et ce dernier se trouvera alors dans le dossier "sbin" :
mkinitrd-4.2.17-30mdv2007.1.i586 :/sbin/mkinitrd

Toutefois, avec la 2007.1 , je n’ai pas eu besoin de refaire un noyau : le noyau installé par défaut a permis de booter en usb immédiatement.

Mandriva Linux 2007 sur disque USB
Juronius - le 4 mai 2007

Salut Merci pour le tuto, fonctionne t’il avec la version free ? pour info le disque dur de mon portable est HS et je n’ai pas les moyens d’en racheter un donc se sera pour une utilisation unique, j’avais essayé sous Windows win98 ça fonctionne je charge l’OS même très rapidement mais mon matériel n’est pas pris en charge (audio, vidéo, réseau, etc...) et win 2000, XP, Vista ne prennennt carrément pas le chargement par USB.
Bon je vais essayer et si ça fonctionne hop direction tuto pour jour a WoW sur linux.

Mandriva Linux 2007 sur disque USB
beuz - le 4 mai 2007

Oui, oui la free suffit.

Mandriva Linux 2007 sur disque USB
Haiphong - le 8 mars 2007

Salut Beuselinck,

J’ai utilisé ton CD "Bootable" avec switch sur le Disque Dur Externe et ça marche "Nickel". Pourrais-tu rajouter une entrée à "SDA6" et "SDA7".

Merci mille fois !!!

Mandriva Linux 2007 sur disque USB
- le 16 mars 2007

Bonjour,

Merci pour tous ces conseils.

Malheureusement pour moi, bien que j’aie suivi scrupuleusement absolument tout à la lettre, j’obtiens toujours un "Kernel panic" avec l’erreur : error opening /dev/console

Idem avec le cd de boot fourni ici.

Une idée ?

Merci

Mandriva Linux 2007 sur disque USB
- le 27 février 2007

Bonjour et merci pour le tuto,

j’ai réalisé la même chose avec un petit disque laCie alimenté par le port USB (le même que pour la globe trotter) et avec la 2005 puis la 2006.
Je n’ai pas eu besoin de modifier le fichier initrd, j’ai fait une install basique sur Sda1, au moment de choisir l’emplacement de lilo je n’ai pas eu le choix il ne m’était proposé qu’une install sur le MBR. J’ai donc fait cela, puis après un premier lancement à partir du disque dur interne, j’ai utilisé le control center de la mandriva pour déplacer lilo vers sda1.
Après modification de l’ordre du boot dans le bios, linux se lance quand le disque USB est branché.
Il m’a fallu restaurer le MBR de mon disque dur interne avec un CD windows pour que windows se lance normalement quand le disque USB n’est pas branché.
Pour moi c’est vraiment la solution idéale, je ne me proméne qu’avec le portable de mon boulot et un disque dur de la taille d’un paquet de cigarettes. Pas besoin de deux ordis (un pour le perso et un pour le boulot), par sécurité le disque dur interne de l’ordi n’est pas monté automatiquement, comme cela pas de risque de mélanger les deux systèmes.

Moz

Mandriva Linux 2007 sur disque USB
beuz - le 27 février 2007

Ha tiens ? Quel version du noyau ?

Un autre truc à "penser", c’est de mettre le driver VESA pour la configuration vidéo. ça permet de passer sur n’importe quel PC (sinon, il faut mettre tous les drivers : nvidia, intel, ati, mga...)

Mandriva Linux 2007 sur disque USB
- le 27 février 2007

2.6.12-12mdk-i686-up-4GB

moz




pucePlan du site puceContact puceMentions légales puce

RSS

2001-2018 © Le site de Beuz - Tous droits réservés
Site réalisé sous SPIP
avec le squelette ESCAL-V3
Version : 3.87.78
Version Escal-V4 disponible pour SPIP3.2 Hébergeur : Beuselinck