Installer openSUSE sur un disque USB
Cet article explique comment installer une version boutable d'openSUSE sur un disque USB externe]]
Sommaire
Corriger les problèmes
Avant de commencer un travail de ce genre, il est sage de savoir comment résoudre un problème éventuel...
Comme vous allez avoir à modifier le système de démarrage de votre ordinateur, vous risquez d'obtenir un système de démarrage incorrect sur votre disque dur.
Il n'y a pas de quoi s'effrayer, c'est facile à corriger.
Aussi, si après avoir débranché votre périphérique USB vous obtenez une erreur GRUB au démarrage, la meilleure solution est de démarrer une installation avec n'importe quel disque d'installation openSUSE. Démarrer avec le CD/DVD, faites "installer" continuez jusqu'à l'écran qui vous demande le type d'installation (mise à jour ou installation nouvelle) et cliquez sur "autre". On vous proposera de bouter le système installé. Faites-le.
N'utilisez pas l'option "Réparation", elle est très longue, pas nécessaire dans notre cas et peut même provoquer des erreurs.
Après le démarrage du système (et sans disque USB connecté, pour ne pas risquer de le modifier à la place du dusque interne), allez dans YaST, Système, configuration du chargeur d'amorçage. Allez à l'onglet qui vous permet où le système de démarrage est installé et ne laisser que le seul choix que vous aviez au départ (probablement le MBR).
Sauvegardez
Essayez (redémarrez), ca devrait être bon.
Preparation
Ce dont vous avez besoin:
- Un CD ou DVD d'installation d'openSUSE
- un disque USB
C'est tout!
NOTA: une installation graphique minimale demande 2Go, 1Go suffit pour une installation sans graphique.
Démarrage
Démarrez avec votre CD/DVD
Installation
Suivez les indications jusqu'à la configuration du chargeur d'amorçage. Sélectionnez ensuite le "mode expert", et choisissez de "démarrer sur la partition racine".
Après l'installation, openSUSE redémarrera automatiquement, mais il ne sera sans doute pas possible de bouter directement votre disque USB, même avec la bonne option du BIOS.
Donc utilisez la focntion de démarrage du système vue ci-dessus pour terminer l'installation.
Avertissement
- Le démarrage sur l'USB géré par les cartes mères est délicat, mal normalisé et échoue souvent, souvent sans avertissement ni raison.
- Certains BIOS n'inscrivent les périphériques USB que sur demande, aussi il n'est généralement pas possible de démarrer un disque USB depuis un menu GRUB usuel, car GRUB ne voit aucun disque USB.
- Si vous utilisez un disque dur USB (par opposition à une clé USB), il faut noter que ces disques consomment beaucoup de courant et qu'il faut parfois les brancher sur deux connecteurs USB. Ils sont dans ce cas livrés avec à câble à deux embouts ad hoc.
Drapeau boutable
(fdisk dit "fanion").
Même sur une clé USB, il faut que la partition ai le drapeau "boutable" activé pour qu'elle puisse bouter, même avec GRUB ou sys/extlinux.
Utilisez donc fdisk ou une de ses variantes pour vérifier ca, il n'est sans doute pas prudent de le faire avec YaST, cette situation est trop inhabituelle.
Première option
Logez-vous comme root sur la nouvelle installation. Exécutez:
grub-install /dev/sdb "adaptez à votre disque
Pour installer GRUB dans le "MBR" de votre disque externe.
- Notice: A ce stade, n'installez pas GRUB sur le "vrai" MBR, celui de votre disque dur principal, car il risquerait de ne plus vouloir démarrer, faute de pouvoir accéder à /boot/grub sur le disque externe.
La première option peut marcher ou non. Il est possible, avec certains BIOS, de rester bloqué avec "GRUB..." en haut à gauche de l'écran et rien d'autre.
En fait, cette option ne devrait pas marcher (ce qui ne veut pas dire qu'elle ne marche pas :-), car il n'y a qu'un seul MBR, sur le premier disque dur de votre système. Vous feriez donc aussi bien de mettre (aussi) GRUB sur la partition racine de votre disque USB.
Deuxième option
Vous pouvez aussi utiliser "syslinux", le système de démarrage des disquettes, CD, DVD et maintenant périphériques USB.
"syslinux" est pour les systèmes de fichier "FAT" et peut être utile pour bouter une image iso copiée sur une clé USB. "Extlinux" est pour les systèmes de fichier ext2/3 , aussi il est possible d'utiliser ces systèmes pour installer Linux sur un périphérique USB.
Suivez la procédure indiquée plus haut en entier (en utilisant évidemment un système de fichier ect2 ou 3). Si GRUB ne démarre pas, boutez avec n'importe quel disque d'installation. Peu importe quelle installation de Linux vous utilisez (même celle que vous venez d'installer sur la clé USB), pourvu que syslinux soit installé.
Ensuite, passez root et, sur le système USB monté faites ceci:
cd <chemin d'accès du noyau> extlinux -i <chemin d'accès du noyau>
Par exemple, si le disque USB est monté sur /media/disk, et que vous avez votre noyau dans /boot sur la clé USB:
cd /media/disk/boot/ extlinux -i /media/disk/boot/
Puis, dans ce même répertoire (/media/disk/boot/), créez un fichier de configuration appelé "extlinux.conf" et remplissez-le avec:
default vmlinuz append initrd=initrd.gz
Puis copiez l'initrd réel du disque USB avec son nouveau nom:
cp initrd initrd.gz
Ceci, pour permettre à extlinux de savoir que l'initrd est comprimé grâce à son extension. Démarrez... et amusez-vous.
Configurer GRUB
Si vous avez un disque sata et un disque externe USB installés, le fichier /boot/grub/device.map devrait être:
(hd0) /dev/sda (hd1) /dev/sdb
- Notice: Quand on boute sur le disque externe, il se peut que GRUB regarde le disque externe comme /dev/sda (hd0) et le disque interne comme /dev/sdb (hd1), soit exactement l'opposé de la situation usuelle.
Dans ce cas, vous devrez éditer /boot/grub/menu.lst, et remplacer tous les hd0 par hd1 et hd1 par hd0 (peut-être aussi dans /etc/fstab?). Ce n'est plus nécessaire avec openSUSE 10.3.
Il se peut que cette correction soit à faire à nouveau en cas de mise à jour du noyau, qui entraine une réécriture du fichier de démarrage.
Bouter Windows depuis GRUB
Si Windows ne veut pas bouter avec votre configuration (à la suite de l'échange des disques durs), essayez d'utiliser la syntaxe suivante:
###Don't change this comment - YaST2 identifier: Original name: windows### title Microsoft Windows XP Professional map (hd0) (hd1) map (hd1) (hd0) rootnoverify (hd1,0) chainloader +1
Conclusion
Maintenant le système peut bouter sur le système extérieur quand celui-ci est connecté (et le BIOS configuré pour). Si le disque externe est retiré, le démarrage se fait normalement sur le disque interne.
Quand on ne peut pas bouter sur l'USB
Certains PC ne peuvent pas bouter depuis un boitier USB externe, quel que soient les paramètres utilisés dans le BIOS, ou quoi que vous mettiez dans menu.lst. Nous allons voir quelques solutions.
Utiliser le disque interne
openSUSE n'a besoin que de /boot pour démarrer, il est donc possible d'utiliser une petite partition du disque dur interne pour y mettre /boot.
Utiliser l'image du noyau de votre CD
Il est possible de préparer un CD boutable basé sur votre système installé, comme si vous démarriez l'installation depuis un CD.
Il faut bien sûr que le noyau puisse ouvrir un disque USB. Ca devrait être par défaut aujourdh'ui, mais si vous utilisez une vieille version de SuSE, il vous faudra peut-être faire une des maniplations suivantes:
- Compiler votre noyau avec l'option USB;
- Inclure USB-modules dans l'initrd;
- Modifier /etc/sysconfig/kernel, section INITRD_MODULES pour contenir usb-storage et ohci-hcd/uhci-hcd/ehci-hcd selon votre système. Utilisez lsmod et vérifiez duquel vous avez besoin.
- Executez mkinitrd pour créer le nouvel initrd (faites une sauvegarde de l'ancien auparavant).
- Maintenant votre initrd contient les bons modules. Vous pouvez créer l'image de démarrage.
Vérifiez que vous avez mkisofs et syslinux installés.
Vérifiez la version de votre noyau (cat /proc/version or ls -l /boot/vmlinuz*) et exécutez le script:
./mkbootdisk --device boot.iso -v --iso 2.6.18.2-34-default
boot.iso est le nom du fichier image à créer.
2.6.18.2-34-default est la version du noyau à mettre dans l'image.
Vous n'avez plus qu'à graver l'image sur un CD.
Xen
If you're running Xen, the above boot image will not work. The command line for Xen-kernels is:
./mkbootdisk.from.rh5-modified --device boot.iso -v --iso --xen 2.6.18.8-0.5-xenpae
boot.iso is the filename of ISO image to be created.
2.6.18.8-0.5-xenpae is the kernel version to be put into the image.
Utiliser LVM pour la racine du disque USB
Si votre disque USB utilise LVM pour contenir le système de fichier racine le script init<tt>original ne le trouvera pas et se rabattra sur un terminal dans l'environnement initrd. Modifiez /sbin/mkinitrd de la façon suivante et exécutez-le à nouveau:
--- /root/mkinitrd-orig 2007-03-24 20:54:03.000000000 -0700 +++ mkinitrd 2007-03-24 21:22:26.000000000 -0700 @@ -2445,6 +2445,16 @@ | break; | fi | sleep 1 + EOF + + if [ -n "$root_lvm2" ]; then + cat_linuxrc <<-'EOF' + | /sbin/lvm vgscan + | /sbin/lvm vgchange -ay + EOF + fi + + cat_linuxrc <<-'EOF' | echo -n "." | timeout=$(( $timeout - 1 )) | done