installer mandrake 10 sur disque dur usb

installer mandrake 10 sur disque dur usb - Linux et OS Alternatifs

Marsh Posté le 21-07-2004 à 00:13:05    

bonsoir, je vous presente mon probleme,
 
je voudrais une version "transportable" de linux donc j'ai decidé de le mettre sur mon DD externe.
 
L'install se passe sans probleme sur /sda, par contre pas moyen de booter dessus. Il semblerait que LILO ne puisse pas trouver le /root quand celui ci se trouve sur un periph usb ou SCSI.
 
qq peut il m'aider ? je suis pas habitué a linux donc be indulgent dans vos explications... ;)

Reply

Marsh Posté le 21-07-2004 à 00:13:05   

Reply

Marsh Posté le 21-07-2004 à 01:06:37    

Quel est le critère qui conditionne absolument l'installation sur disque externe ?

Reply

Marsh Posté le 21-07-2004 à 07:40:15    

le coté pratique et sécurité, c'est un disque de transport de données (que j'ai deja sur mes DD internes) donc si je fais une boulette sur ce disque pas de soucis, je format et puis basta.
 
je veux installer linux pour apprendre et tester plein de logiciels donc je prefere l'avoir sur ce disque.
 
personne n'a installer linux sur un dd usb ?

Reply

Marsh Posté le 21-07-2004 à 07:50:38    

pourquoi ne pas utiliser simplement un live cd couplé avec une clef usb ?( style mandrake move )

Reply

Marsh Posté le 21-07-2004 à 08:51:45    

bien en fait, je voudrais quand meme exploiter linux au max (si jamais c'est possible :) donc pouvoir retirer le CD, passer un DVD tout en utilisant openoffice....
 
avec la move, on peut retirer le CD certes mais pas pendant de grosses appli (tel que openoffice). Enfin vous m'avez compris, je ne veux pas de move  :D  
 
ça doit bien etre possible d'utiliser linux sur un DD externe quand meme. J'ai vu des questions semblables sur d'autres forum et pas de reponses.
 
donc je l'ai installée mais LILO ne boot pas car au moment ou il se charge, il ne trouve pas de /sda (alors qu'a l'install tout allait bien)
 
je vous previens chuis un teigneux, je lacherais pas l'affaire avant d'avoir reussi, non mais, c'est pas linux qui m'aura  :lol:  
 
euh...je paye a bouffer a celui qui me trouvera la soluce  :)

Reply

Marsh Posté le 21-07-2004 à 09:41:18    

voila le mess d'erreur si vous voulez...
 
 
 
 
Mounting root filesystem with flags noatime
mount: error 6 mounting ext3
well, retrying without the option flags
mount: error 6 mounting ext3
well, retrying read-only without any flags
mount: error 6 mounting ext3
pivotroot: pivot_root(/sysroot, /sysroot/initrd) failed: 2
Remounting devfs at correct place if necessary
Mounted devfs on /dev
Freeing unused kernel memory: 272k freed
Kernel panic: No init found.   Try passing init= option to kernel.
   _


Message édité par lokham le 21-07-2004 à 11:04:08
Reply

Marsh Posté le 21-07-2004 à 10:50:20    

Le noyau que tu amorces est accompagné d'un RamDisk, sorte de mini système chargé en RAM qui sert à initialiser les périphériques. La commande "pivot_root" sert normalement, lorsque la vraie racine ("root" ) du système, ici ton disque externe, a été trouvée, à dire à Linux de l'utiliser à la place du RamDisk.
Ici ça échoue, visiblement le disque usb n'a pas été correctement monté sur /sysroot
 
Visiblement, le script d'initialisation du RamDisk (/linuxrc) ne charge pas les pilotes USB (usb-ohci) ni le pilote de disque dur (usb-storage).
 
Solution: modifies le ramdisk.
A supposer que le RamDisk s'appelle "/boot/initrd.gz" :

Code :
  1. cd /tmp
  2. cp /boot/initrd.gz .
  3. gunzip initrd.gz # décompresse le ramdisk
  4. mkdir tt
  5. mount -o rw,loop initrd tt # affiche son contenu dans "tt"
  6. vi tt/linuxrc # édite le script de démarrage, voir plus bas
  7.               # les modifications sont sauvegardées directement
  8. umount tt # un-mount
  9. gzip initrd
  10. mv /boot/initrd.gz{,.old}
  11. cp -f initrd.gz /boot/


Pour le fichier "/linuxrc" rajoutes les lignes suivantes:

Code :
  1. insmod /lib/modules/2.4.x/kernel/drivers/usb/usb-uhci.o
  2. insmod /lib/modules/2.4.x/kernel/drivers/usb/usb-storage.o
  3. n=5 # le système est sur la partition 5
  4. for i in a b c d e f ; do
  5.   /bin/mount -o ro -t ext2 /dev/sd${i}${n} /sysroot && break
  6. done


Voilà, tu adaptes comme il faut, et n'oublie pas de mettre les modules dans le ramdisk s'ils n'y sont pas ...

Reply

Marsh Posté le 21-07-2004 à 11:07:39    

oula, chuis pas ters doué pour tout ça moi, je croyais que c'etait bien plus simple....
 
voici mon lilo :
# File generated by DrakX/drakboot
# WARNING: do not forget to run lilo after modifying this file
 
boot=/dev/sda
map=/boot/map
default="linux-i686-up-4GB"
keytable=/boot/fr-latin1.klt
prompt
nowarn
timeout=100
message=/boot/message
menu-scheme=wb:bw:wb:bw
disk=/dev/sda bios=0x80
disk=/dev/hda bios=0x81
image=/boot/vmlinuz
 label="linux"
 root=/dev/sda1
 initrd=/boot/initrd.img
 append="noapic devfs=mount acpi=ht splash=silent"
 vga=788
 read-only
image=/boot/vmlinuz
 label="linux-nonfb"
 root=/dev/sda1
 initrd=/boot/initrd.img
 append="noapic devfs=mount acpi=ht"
 read-only
image=/boot/vmlinuz-i686-up-4GB
 label="linux-i686-up-4GB"
 root=/dev/sda1
 initrd=/boot/initrd-i686-up-4GB.img
 append="noapic devfs=mount acpi=ht splash=silent"
 read-only
image=/boot/vmlinuz-2.6.3-7mdk
 label="263-7"
 root=/dev/sda1
 initrd=/boot/initrd-2.6.3-7mdk.img
 append="noapic devfs=mount acpi=ht splash=silent"
 read-only
image=/boot/vmlinuz
 label="failsafe"
 root=/dev/sda1
 initrd=/boot/initrd.img
 append="noapic failsafe acpi=ht devfs=nomount"
 read-only
other=/dev/hda1
 label="windows"
 table=/dev/hda
 map-drive=0x80
    to=0x81
 map-drive=0x81
    to=0x80
other=/dev/hdb1
 label="windows2"
 table=/dev/hdb
 map-drive=0x80
    to=0x82
 map-drive=0x82
    to=0x80
other=/dev/fd0
 label="floppy"
 unsafe


Message édité par lokham le 21-07-2004 à 13:22:03
Reply

Marsh Posté le 21-07-2004 à 14:33:54    

Je vois que tu as édité largement ta réponse précédente qui était vraiment limite limite. Car ce que Glacote t'invite à faire est parfaitement juste et sensé.
 
Mais si tu préfères, installe donc XP sur ton disque usb.

Reply

Marsh Posté le 21-07-2004 à 14:46:43    

OK je m'excuse, je voulais pas vexer. Je suis content que quelqu'un m'aide, par contre qu'est ce qu'il faut que j'adapte ?
 
je recopie en root sous knoppix par exemple exactement ce qui glacote a ecris ?  
 
ça veut dire quoi mettre les modeules dans le ramdisk ?
 
désolé si ces questions vous paraissent stupides mais je connais tres peu les systemes unix ...
 
EDIT : rajout de questions  ;)  
 


Message édité par lokham le 21-07-2004 à 18:21:05
Reply

Marsh Posté le 21-07-2004 à 14:46:43   

Reply

Marsh Posté le 21-07-2004 à 18:58:24    

un petit up car je voudrais essayé ça ce soir...
 
Merci

Reply

Marsh Posté le 21-07-2004 à 23:06:56    

j'ai fait ce que glacote a ecrit mais ça bloque des le debut..... :-(
 
cp /boot/initrd.gz .  
no such file or directory
 
j'ai bien le rep /boot mais pas le fichier initrd.gz
 
je laisse tomber, j'install quand meme linux (chuis pas reticent sagittarius ;) mais sur un DD interne....

Reply

Marsh Posté le 22-07-2004 à 05:01:58    

c'est /boot/initrd.img
 
fais un :
ls -l /boot/initrd*
 
et tu veras les différents fichiers init.
initrd.img est un lien vers ton vrai initrd utilisé par défaut


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
Reply

Marsh Posté le 22-07-2004 à 12:25:07    

Merci pour vos reponses....bon j'ai pas laissé tomber....
j'ai trouvé ça  
 
http://www-106.ibm.com/developerwo [...] eboot.html
 
et je suis sur que ça va m'aider :)
 
a dans 2 ans quand j'aurai reussi :)

Reply

Marsh Posté le 22-07-2004 à 13:46:57    

merci dark schnieder.
 
quand je cherche sous win avec un editeur de partition linux, je trouve bien plusieurs fichiers initrd sous /boot
 
initrd.img
initrd2-6-3-7mdk.....img
 
par contre quand j'essaie de le copier selon les conseils de glacote, ça me fait  
initrd.img
un no such file or directory
 
peux tu m'aider encore un peu ? :)

Reply

Marsh Posté le 22-07-2004 à 14:41:52    

lokham a écrit :

merci dark schnieder.
 
quand je cherche sous win avec un editeur de partition linux, je trouve bien plusieurs fichiers initrd sous /boot
 
initrd.img
initrd2-6-3-7mdk.....img
 
par contre quand j'essaie de le copier selon les conseils de glacote, ça me fait  
initrd.img
un no such file or directory
 
peux tu m'aider encore un peu ? :)


Bon OK, mon post était un peu "à l'arrache" et supposait que tu t'y connaissais un minimum. Bravo à toi de t'accrocher ...
 
En quelques mots:
 
1) lilo lis dans le fichier /etc/lilo.conf qu'il doit charger un "mini système" en RAM stocké dans le fichier compressé /boot/initrd.img, puis qu'il doit charger le noyau stocké dans le fichier (compressé) /boot/vmlinuz, et enfin donner la parole au noyau en lui disant d'utiliser le mini-système comme système (au lieu, par exemple, d'une partition de disque dur).
 
2) dans le fichier /boot/initrd.img tu mets donc tout ce qu'il faut pour trouver le vrai système, l'activer, et te brancher dessus. Le fichier "/linuxrc" à la racine de ce mini-système est un script qui est exécuté automatiquement et qui justement fait tout ça.
 
3) ton fichier actuel est conçu pour charger les pilotes SCSI, activer les disques SCSI, et booter dessus. Mais il n'est pas prévu pour booter depuis un disque USB.
 
4) Mes instructions (approximatives) étaient pour t'aider à modifier ce mini-système afin qu'il cherche aussi les disques durs USB.

Reply

Marsh Posté le 22-07-2004 à 14:58:53    

Reprenons dans l'ordre:
 
1) "ouvrir" le mini-système actuel:
ls -l /boot/initrd.img va te donner un lien vers un fichier tu genre /boot/initrd2-6-3-7mdk.img
On va partir de celui-là

Code :
  1. cp /boot/initrd2-6-3-7mdk.img /tmp/monInitrd.img
  2. gunzip /tmp/monInitrd.img # on décompresse ;)
  3. mkdir /tmp/miniSysteme
  4. mount -o loop /tmp/monInitrd /tmp/miniSysteme/ # on "ouvre"
  5. ls -l /tmp/miniSysteme/  # on regarde ce qu'il y a dedans
  6. emacs /tmp/miniSystem/linuxrc # on modifie le script afin de lui
  7. # faire chercher notre disque USB


 
[b]2) Le modifier
Maintenant il faut modifier le script à proprement parler:

Code :
  1. # A rajouter au début du fichier /linuxrc
  2. kernel=2.4.x # remplacer "x" par "17mdk" ou autre
  3.              # taper "uname -r" pour le savoir
  4. # D'abord on charge les pilotes USB
  5. for pilote in uhci ohci ehci ; do # on essaie tous les pilotes !
  6.   insmod /lib/modules/2.4.${kernel}/kernel/drivers/usb/usb-${pilote}.o
  7. done
  8. # On charge le pilote de disque dur sur USB
  9. insmod /lib/modules/2.4.${kernel}/kernel/drivers/usb/usb-storage.o
  10. # Je suppose que la partition sur laquelle se trouve Linux est la n°5
  11. n=5
  12. for i in a b c d e f ; do  # j'essaie tous les disques durs USB trouvés
  13.   /bin/mount -o ro -t ext2 /dev/sd${i}${n} /sysroot && break
  14. done


Pour que ça marche, il faut bien-sûr que les pilotes USB soient présents eux aussi dans le mini système.

Code :
  1. ls -l /tmp/miniSysteme/lib/modules/2.4.x/kernel/drivers/usb/


S'il n'y sont pas, il faut les y mettre:

Code :
  1. # on crée le dossier
  2. mkdir -p /tmp/miniSysteme/lib/modules/2.4.x/kernel/drivers/usb/
  3. # on copier les pilotes
  4. for pilote in uhci ohci ehci ; do # on essaie tous les pilotes !
  5.   cp -v {,/tmp/miniSysteme}/lib/modules/2.4.x/kernel/drivers/usb/usb-${pilote}.o
  6. done


 
3) L'installer
On va remettre le nouveau mini-système en place

Code :
  1. umount /tmp/miniSysteme # on démonte
  2. gzip /tmp/monInitrd # on compresse
  3. mv /tmp/monInitrd{.gz,.img} # on met l'extension ".img"
  4. cp -v {/tmp,/boot}/monInitrd.img # on le copie
  5. emacs /etc/lilo.conf


Là on rajoute une nouvelle entrée pour faire nos tests:

Code :
  1. # File generated by DrakX/drakboot
  2. # WARNING: do not forget to run lilo after modifying this file
  3. ...
  4. disk=/dev/hda bios=0x81
  5. # Nouvelle entrée
  6. image=/boot/vmlinuz
  7.   label="USB-boot"
  8.   root=/dev/sda1
  9.   initrd=/boot/monInitrd.img
  10.   append="noapic devfs=mount acpi=ht splash=silent"
  11.   read-only
  12. # La suite ...


Puis on tape "lilo -v" et c'est tout.
 
Remarque: la ligne "root=/dev/sda1" force le noyau à utiliser "/dev/sda1" comme périphérique d'amorçage. Or pendant la détection du mini-système, si ça se trouve le vrai Linux sera sur un autre disque, par exemple /dev/sdb, et une autre partition, par exemple /dev/sdb5.
Là on va à nouveau avoir une erreur VFS: no root found.
Dans ce cas il faudra mettre "root=/dev/ram" dans le lilo.conf, puis modifier le ramdisk pour y mettre la commande "echo 0xJeNeSaisPasQuoi >> /dev/realrootdev" . Si tu as le problème tiens-nous informés !

Reply

Marsh Posté le 22-07-2004 à 15:04:58    

Vous etes vraiment sympa de prendre du temps pour m'expliquer ça...merci beaucoup, je vous tiens au courant ce soir :)

Reply

Marsh Posté le 22-07-2004 à 20:27:35    

:(  
 
ça commence tres mal....
 
je comprends pas pourquoi mais il me trouve pas de fichier initrd*.*
 
quand je list le rep /boot, il me trouve grub et c'est tout  :(  
 
pourtant quand j'edite sous win2000 avec un editeur de partition, je vois bien les differents initrd....
 
je tape les commandes depuis le boot du cd d'install de mandrake et je fais rescue puis console ok ?
 
question con : faut d'abord que j'aille sur ma partition /sda pour pouvoir faire ta manip glacote ? heu... (j'ai honte :) mais comment faire pour aller sur le bon disque ?
 
Merci de vos reponse...

Reply

Marsh Posté le 22-07-2004 à 21:41:27    

Merci encore, je pense que j'ai tout saisi en en meme tmps j'apprends pas mal de truc :)
 
 
bon, le probleme majeur est que quand je suis en mode rescue, je n'ai pas acces aux fichiers importants (initrd.img) qui sont sur mon DD externe...
 
je suis obligé de faire  
modprobe usb-storage
 
et
 
mount /dev/sda1 /mnt/disk
 
 
et a partir de /mnt/disk/boot j'ai acces a tous les fichiers que je modifie selon Glacote, sauf qu'a la fin je renome (avec la commande mv ?) mon fichier moninitrd.img en initrd.img et je reboot.
 
est ce qu'en faisant de cette maniere les modifs sont pris en compte ?
j'ai pas l'impression, c'est comme si j'avais rien fais...


Message édité par lokham le 22-07-2004 à 23:55:57
Reply

Marsh Posté le 23-07-2004 à 09:30:28    

lokham a écrit :

Merci encore, je pense que j'ai tout saisi en en meme tmps j'apprends pas mal de truc :)
 
 
bon, le probleme majeur est que quand je suis en mode rescue, je n'ai pas acces aux fichiers importants (initrd.img) qui sont sur mon DD externe...


Normal, par défaut il ne charge qu'un minimum de périphériques.
 

lokham a écrit :


je suis obligé de faire  
modprobe usb-storage [em]="charge le pilote de disque dur USB"[/em]
 
et
 
mount /dev/sda1 /mnt/disk [em]= "active la première partition du permier disque dur USB"[/em]
 
et a partir de /mnt/disk/boot j'ai acces a tous les fichiers que je modifie selon Glacote, sauf qu'a la fin je renome (avec la commande mv ?) mon fichier moninitrd.img en initrd.img et je reboot.


Dans mes explications plus haut, chaque fois que tu vois "/boot/" remplace-le par "/mnt/disk/boot/", le reste est inchangé. Tu devrais pouvoir adapter mon code avec mes explications ...
 

lokham a écrit :


est ce qu'en faisant de cette maniere les modifs sont pris en compte ?
j'ai pas l'impression, c'est comme si j'avais rien fais...


Déjà, commence par copier le /mnt/disk/boot/initrd.img , l'ouvrir, le modifier et le recompresser. Puis tiens-nous au courant ...

Reply

Marsh Posté le 23-07-2004 à 13:21:01    

lokham, ton post s'avère très intéressant puisque glacote est en train de nous faire un super topic. :jap:
 
Une fois, la solution entrevue et éprouvée, peut-être pourrais-tu l'éditer pour en faire une synthèse ?
 
Enfin, courage tu dois être pas loin.   ;)

Reply

Marsh Posté le 23-07-2004 à 14:26:52    

Pour info, moi je démarrer systématiquement tous mes ordis avec un RamDisk de 16Mo qui contient tous les modules, pleins de programmes, je ne me casse même plus la tête avec busybox.
 
Ca permet en trois lignes dans le /linuxrc de choisir d'amorcer sur disque dur, sur NFS, sur une partition cryptée par-dessus un RAID5 au milieu de 3 paritions FAT, sur une clef USB, un disque firewire ...
 
En fait je ne comprends pas pourquoi ça n'est pas ce que tout le monde fait.

Reply

Marsh Posté le 23-07-2004 à 15:27:10    

Glacote: merci pour tout, c'est ce que je vais faire.
 
je testerais ça dimanche soir desormais (copine ce week end :) : allergique a l'informatique :) donc plus de news dimanche soir.
 
je pense que ça va marcher en combinant le lien suivant :
http://www-106.ibm.com/developerwo [...] eboot.html  
avec ce qu'ecrit glacote.
 
j'ai pas encore eu le temps de tester. Mais a dimanche soir :)

Reply

Marsh Posté le 25-07-2004 à 23:34:08    

salut a vous.
 
j'ai fait quelques essais en modifiant linuxrc sous knoppix en root.
 
il faut que je faisse quelques modifications, du style : changer la ligne de modules insmod....usb-storage.o il vaudrait mieux mettre modprobe usb-storage ou insmod....usbstorage.ko...
enfin j'ai encore plein de choses a voir mais je vais y arriver.
 
juste un truc, quand a la fin j'ai modifié lilo, il faut obligatoirement que je lance lilo -v ? car si je le fais, il me met : vous devez d'abord modifier le fichier lilo.conf avant de lancer lilo....alors que je viens de le faire ...
 
enfin bon..
 
a+

Reply

Marsh Posté le 26-07-2004 à 10:05:06    

lokham a écrit :

salut a vous.
 
j'ai fait quelques essais en modifiant linuxrc sous knoppix en root.
 
il faut que je faisse quelques modifications, du style : changer la ligne de modules insmod....usb-storage.o il vaudrait mieux mettre modprobe usb-storage ou insmod....usbstorage.ko...


Au temps pour moi, tu es en 2.6 (le format et le nom des pilotes ont changé depuis le 2.6).
 

lokham a écrit :


enfin j'ai encore plein de choses a voir mais je vais y arriver.


L'idéal serait que tu postes un "find ." depuis ton RamDisk pour nous dire ce que tu y a mis, ainsi que ton /linuxrc .
 

lokham a écrit :


juste un truc, quand a la fin j'ai modifié lilo, il faut obligatoirement que je lance lilo -v ? car si je le fais, il me met : vous devez d'abord modifier le fichier lilo.conf avant de lancer lilo....alors que je viens de le faire ...


Pas d'avis, c'est space, essaie avec "lilo -C /etc/lilo.conf -vv" pour être bien sûr ...

Reply

Marsh Posté le 26-07-2004 à 16:37:36    

merci glacote,  
malgré toutes tes recommandations, j'ai du mal :( mon boot plante toujours, c'est comme si j'avais rien fais...
ça fais une semaine que je cherche des soluces sur le net et personne n'a reussi a installer linux sur DD externe.
 
Merci beaucoup en tout cas. Ce soir j'install sur mon DD interne partitionné pour l'occasion...

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed