Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/06/2008, à 01:10

CHUCKYCHUCK

Booter un linux situé sur un disque dur externe

Bonjour !!
Voilà j'adore tester tout plein de distributions linux, je suis actuellement en triple boot windows xp + Kubuntu Hardy Heron + openSUSE 11 ( ma distrib "principale" étant pour l'instant suse tongue )

j'aimerais bien en essayer d'autre, mais mon disque interne est un peu juste ( 60 Go ), je sais bien qu'il y a Virtualbox, ou qemu pour tester des os, mais j'aimerais vraiment apprécier les performances de ces systèmes, tester comment ils gèrent ma carte wifi, ma carte graphique, bref je dois les installe pour de vrai.

Tout d'abord mon bios ne peut pas booter directement sur un disque dur externe, j'avais donc pensé que cela ne pourrait jamais marcher chez moi, jusqu'à ce que je tombe sur cet excellent tutorial, dédié aux bios qui ne peuvent booter sur de l'usb :

https://help.ubuntu.com/community/BootFromUSB  ( c'est en anglais désolé )

en gros le principe, vu que le bios ne peut accéder au disque usb, c'est de tester si Grub , lui, le peut
( apparemment des bios ne peuvent booter sur l'usb, mais "voient" quand même les disques usb )

j'ai effectué le test décrit dans le tutoriel, et ca marche !! Grub est capable de lire le contenu de mes partitions situées sur mon disque usb

ensuite la technique c'est tout simplement de chainloader le mbr du disque externe ou l'une de ses partitions

j'installe alors une mandriva sur mon disque externe ( qui contient 2 partitions de données, et de l'espace non partionné en fin de disque ), je crée des nouvelles partitions pour mandriva sans toucher aux 2 autres, et surtout j'installe Grub sur la partition racine mandriva ( et non le mbr du disque externe )

je reboot, et la normal, je ne peux encore booter mandriva, je dois en effet rajouter une entrée sur le menu.lst de ma suse :


title Mandriva
    rootnoverify (hd0,3)  ## La partition de mon disque interne ou est installé suse
    chainloader (hd1,4)+1 ## La partition ou est installée Mandriva

et je croise les doigts en appuyant sur entrée, et BAM,j'obtiens un très violent :

GEOM ERROR

sad sad
je me disais bien que ca aurait été trop beau ...
apres quelques recherches, j'apprend que ce type d'erreur survient lorsque

The BIOS contains incorrect hard disk values or LBA [wikipedia] is not activated. 
You installed your Linux system on a new hard disk but forgot to register it in the BIOS. Therefore, stage 1 of the boot loader is loaded, but stage 2 cannot be accessed. 
The BIOS is not able to detect the full hard disk capacity. For example, in case of a 40 GB disk, it only detects the first 32 GB. However, Linux is installed on the last 8 GB. 
The computer BIOS is not able to address the hard disk area beyond cylinder 1024. However, the Linux boot partition (or the partition containing the kernel or other files needed for booting) is partly or entirely located beyond cylinder 1024. Usually, this problem only occurs on old machines. However, it may still happen occasionally even with new BIOS versions. 
The BIOS cannot boot from disks attached to the second IDE controller. However, the Linux hard disk is attached to the second IDE controller. This problem, too, is rather uncommon. 
The hard disk geometry set in the BIOS during the GRUB installation was changed posteriorly or the hard disk was inserted in a different machine or attached to a different controller after the installation.

en gros ya des chances que ce soit mon bios, vous savez si il reste un moyen de booter ma mandriva ( la pauvre elle n'a encore jamais été bootée !!! ) via Grub ??

peut-être devrais-je installer grub sur le mbr du disque externe plutot que sur la partition de mandriva, ou alors c'est meme pas la peine que j'essaye ?

j'aimerai vraiment que ce soit possible via Grub, le coup du /boot sur le disque interne, et le reste sur l'externe, ca serait vraiment en dernier recours :s


merci beaucoup
( j'espère que les gourous de Grub et des disques durs sont nombreux par ici !!! )

Dernière modification par CHUCKYCHUCK (Le 26/06/2008, à 01:15)


Dual Boot Win 7 Pro + Lucid Lynx
Asus G60JX 16'' - Core i5 430M 2.26 Ghz - 4 Go Ram - Geforce GTS 360 M 1GB

Hors ligne

#2 Le 26/06/2008, à 07:15

Compte anonymisé

Re : Booter un linux situé sur un disque dur externe

Salut

J'avais le même pb que toi il y a qq temps (pc sans boot usb).
La seule méthode que j'avais trouvé est :
1) Créer sur le DD interne une partition particulière ext3.
2) Utiliser le grub d'une distribution installée sur le DD interne et bien penser à mettre les lignes qui pointent sur les distributions de l'USB en dehors des procédures auto afin d'éviter leur disparition à chaque maj du kernel.
Par exemple sur ubuntu elles doivent se trouver dans le menu.lst après la ligne :
### END DEBIAN AUTOMAGIC KERNELS LIST .
La méthode étant pour chacune des distribs installées sur usb de copier les 2 fichiers :
vmlinuz..... et initrd...... vers la partition citée au point 1.
A l'époque il fallait, pour certaines distribs, mais je ne me souviens plus lesquelles (Mandriva, Suze et Ubuntu installées), reconstruire un initrd.... en imposant le préchargement des modules :

usbcore
sd_mod
ehci_hcd
uhci_hcd
ohci_hcd
usb-storage
scsi_mod

Je ne suis pas sûr que ce soit toujours indispensable.

Le seul problème est de penser à récupérer(adapter) les derniers kernels installés sur le DD usb.

Bon courage

Pour info voici les lignes que j'avais ajouté dans menu.lst :

title linux-Suse-10.2
kernel (hd1,6)/usb/suse_vmlinuz_10.2 root=/dev/sda5 resume=/dev/sda7 vga=0x31a showopts
initrd (hd1,6)/usb/suse_usbinitrd_10.2

title Mandriva-2007
kernel (hd1,6)/usb/mandriva_vmlinuz_2007 root=/dev/sda8 resume=/dev/sda7 vga=0x31a
initrd (hd1,6)/usb/mandriva_usbinitrd_2007

title Ubuntu_Lacie
kernel (hd1,6)/usb/ubuntu_vmlinuz root=/dev/sda5 resume=/dev/sda7 splash=silent 
initrd (hd1,6)/usb/ubuntu_usbinitrd.img

@+

Dernière modification par Compte anonymisé (Le 26/06/2008, à 07:23)

#3 Le 26/06/2008, à 09:12

CHUCKYCHUCK

Re : Booter un linux situé sur un disque dur externe

ok, en gros on n'a pas forcément besoin de créer une partition /boot sur le dd interne, il suffit de copier ces 2 fichiers ( initrd & vmlinuz ) sur une partition ext3 du dd interne ( j'ai déjà 2 linux sur mon dd interne donc c'est bon )

par contre les paramètres que tu passes au kernels m'intriguent un peu, par exemple

le "root=/dev/sda5 resume=/dev/sda7", sda5 ca correspond à la 5ème partition du 1er disque ( le disque interne ) non ??
à moins que, lorsque l'on boot sur le disque usb, c'est le disque usb qui devient sda, et le disque interne le sdb ... ( casse-tête en gros ^^ )

et aussi tes fichiers initrd et vmlinuz ils sont situés sur ton hd1 ?? c'est pas le disque usb  ( sinon je comprend plus rien tongue ) ??? ( tu avais 2 disques internes ? )


Dual Boot Win 7 Pro + Lucid Lynx
Asus G60JX 16'' - Core i5 430M 2.26 Ghz - 4 Go Ram - Geforce GTS 360 M 1GB

Hors ligne

#4 Le 26/06/2008, à 10:00

Compte anonymisé

Re : Booter un linux situé sur un disque dur externe

En effet tu as droit à qq explications :
C'était sur une ancienne config avec 2 disques IDE donc seul l'usb était reconnu comme SATA ce qui explique le /dev/sdax.
Si on détaille les lignes pour "Ubuntu_Lacie" (sur usb) :

title Ubuntu_Lacie
kernel (hd1,6)/usb/ubuntu_vmlinuz root=/dev/sda5 resume=/dev/sda7 splash=silent 
initrd (hd1,6)/usb/ubuntu_usbinitrd.img

kernel (hd1,6)/usb/ubuntu_vmlinuz  indique :
aller chercher ubuntu_vmlinuz sur le deuxième DD ide interne (ma machine n'accédait pas à l'usb au boot)

root=/dev/sda5   là on va chercher le root (/) sur le dd USB

resume=/dev/sda7 là on valide la mise en veille sur la swap (peut être plus indispensable!!! A vérifier)

initrd (hd1,6)/usb/ubuntu_usbinitrd.img  là on va chercher l'initrd sur le  2ème DD interne.

@+

Dernière modification par Compte anonymisé (Le 26/06/2008, à 10:01)

#5 Le 26/06/2008, à 10:20

CHUCKYCHUCK

Re : Booter un linux situé sur un disque dur externe

ca marche !!!! ( pas eu besoin de regénérer l'initrd )

merci beaucoup, je t'écris depuis la mandriva installée sur mon disque externe !!!

voilà pour ma part la nouvelle entrée de mon menu.lst :

title Mandriva
    root (hd0,3)
    kernel /boot/usb/vmlinuz-2.6.24.4-laptop-1mnb root=/dev/sda5  resume=/dev/sda6 splash=silent vga=791
    initrd /boot/usb/initrd-2.6.24.4-laptop-1mnb.img

faut pas se gourrer par contre lol, chaque système linux a ses conventions de nommage de partition ( sous mandriva ya encore du hda par exemple )

sinon j'ai configuré mon wifi en 3 clics, sans ligne de commande !!! ( sous Suse j'avais du tapé une ligne de commande )


Dual Boot Win 7 Pro + Lucid Lynx
Asus G60JX 16'' - Core i5 430M 2.26 Ghz - 4 Go Ram - Geforce GTS 360 M 1GB

Hors ligne

#6 Le 26/06/2008, à 10:29

Compte anonymisé

Re : Booter un linux situé sur un disque dur externe

CHUCKYCHUCK a écrit :

faut pas se gourrer par contre lol, chaque système linux a ses conventions de nommage de partition ( sous mandriva ya encore du hda par exemple )

Content pour toi. Je répète, il s'agit d'une config un peu ancienne et si tu veux te passer des conventions de nommage (pour la partie root=), tu peux utiliser les UUID.

La syntaxe est:

title Mandriva
    root (hd0,3)
    kernel /boot/usb/vmlinuz-2.6.24.4-laptop-1mnb root=UUID=xxxxxx-xxxxxxx-xxxxxx  resume=/dev/sda6 splash=silent vga=791
    initrd /boot/usb/initrd-2.6.24.4-laptop-1mnb.img

tu peux récuperer les UUID par la commande :
sudo ls -l /dev/disk/by-uuid

@+

Dernière modification par Compte anonymisé (Le 26/06/2008, à 10:30)

#7 Le 26/06/2008, à 11:14

CHUCKYCHUCK

Re : Booter un linux situé sur un disque dur externe

ok, en fait sur le menu.lst de mandriva il y avait un root=UUID=xxxx, je savais pas ce que c'était alors je l'avais remplacé parle le root=/dev/sda5

sinon Mandriva c'est un peu lent je trouve sad, bien que le score à glxgears soit plus élevé que sur ma suse, ya une légère impression de lenteur générale ( dans leur centre de config surtout ... )

j'essaierai prochainement une fedora, et plein d'autres !!


Dual Boot Win 7 Pro + Lucid Lynx
Asus G60JX 16'' - Core i5 430M 2.26 Ghz - 4 Go Ram - Geforce GTS 360 M 1GB

Hors ligne

#8 Le 26/06/2008, à 11:24

valAa

Re : Booter un linux situé sur un disque dur externe

salut,

CHUCKYCHUCK a écrit :

sinon Mandriva c'est un peu lent je trouve sad, bien que le score à glxgears soit plus élevé que sur ma suse, ya une légère impression de lenteur générale ( dans leur centre de config surtout ... )

cette lenteur est peut-être due au fait qu'elle soit sur dd externe... tous les accès disque se font via usb, ça fait un petit facteur limitant quand même (enfin je pense) smile

Hors ligne

#9 Le 26/06/2008, à 11:39

CHUCKYCHUCK

Re : Booter un linux situé sur un disque dur externe

je me suis posé la question aussi, j'ai fait un test de performance disque sur suse et sur mandriva avec un

hdparm -Tt

j'obtiens quasi ( moins de 0.5Mo/s  de différence ) les mêmes scores sur suse ou mandriva, mais je ne sais pas si ce test permet de dire que les accès disque sont aussi performant sur le dd interne que sur l'externe

en gros si on a 2 disques durs identiques au niveau des perfs ( trs/min cache et autre .. ), mais que l'un est interne et l'autre externe, est ce qu'il y aura forcément une différence de performance ??
autrement dit est-ce que le type d'interface  ( usb, interne ), indépendemment des disques, joue un role dans les performances ?

merci


Dual Boot Win 7 Pro + Lucid Lynx
Asus G60JX 16'' - Core i5 430M 2.26 Ghz - 4 Go Ram - Geforce GTS 360 M 1GB

Hors ligne