Boot sur DD USB?

Boot sur DD USB? - Installation - Linux et OS Alternatifs

Marsh Posté le 21-01-2004 à 20:17:06    

Bonjour à tous.
 
Je cherche à avoir un environnement linux de test (debian de préférence) sur mon disque USB externe (j'ai pas assez de place sur mon DD de portable). Je ne sais pas si cela est possible donc je viens demander conseil  :jap:.
 
En fait, dans le meilleur des cas je voudrai à partir de lilo (au pire à partir du CD - j'ai pas de disquette -)pouvoir sélectionner le système sur le disque externe.  
 
Je sais qu'il existe chroot mais n'est ce pas plutôt un moyen de récupérer une installation foireuse?
 
Voilà merci de vos conseils
 
 :hello:


Message édité par Niala le 27-01-2004 à 08:56:57
Reply

Marsh Posté le 21-01-2004 à 20:17:06   

Reply

Marsh Posté le 21-01-2004 à 22:30:26    

Il faut que ton portable puisse booter sur l'usb et ça roule.
Tu mets en premier l'usb, en second ton DD. Quand ton DD usb sera branchait ça va booter dessus en priorité. Lorsqu'il ne sera pas branché ça va booter sur ton DD normal...

Reply

Marsh Posté le 21-01-2004 à 23:01:37    

Autre solution, si tu ne peux pas amorcer directement sur l'USB:
1) préparer un RAMDisk qui charge les modules qui vont bien, montent l'USB, chroot dessus
2) le recopier avec le noyau correspondant sur ta partition Linux
3) rajouter "loadlin.exe", c'est prêt !

Reply

Marsh Posté le 23-01-2004 à 11:25:21    

Bon ça a avancé un peu.  
 
J'ai réussi à installer une fedora (même si j'ai pas mal galéré) sur mon DD usb. Maintenant par contre se pose le problème du boot :/.
 
Il me semble que mon BIOS me permet de booter sur le disque USB. Seulement lorsque celui ci est branché (avec la fedora dessus) il part quand même sur l'IDE.  
L'ordre de boot est le suivant: Removable devices (ça inclut l'USB d'aprés les indications de mon BIOS), CDROM, IDE, Network.
 
Vous avez pas une idée pour que je puisse booter dessus?
 
Merci

Reply

Marsh Posté le 23-01-2004 à 11:39:47    

t'es sur que ton install de fedora est bootable?


---------------
Non à l'utilisation de machines pour voter en France
Reply

Marsh Posté le 23-01-2004 à 11:48:23    

là justement je ne sais pas :/
 
En faisant le partionnement il m'averti que le système risque d'avoir  du mal à booter dessus et me propose la création d'une disquette de boot. Malheuresement j'en ai pas de lecteur de disquettes :cry:

Reply

Marsh Posté le 23-01-2004 à 11:49:54    

loadlin.exe copie_du_noyau initrd=petit_ramdisk_qui_va_bien.gz

Reply

Marsh Posté le 23-01-2004 à 12:18:12    

je viens de voir rapidement ce qu'est loadlin.exe.  
Si je me trompe pas ce n'est qu'un bootloader à part qu'il n'écrit pas dans le mbr comme lilo non? Il me faut aussi un windows aussi non?
 
Enfin merci de ton aide glacote mais j'ai du mal à comprendre ce qu'il ferait de plus que lilo.

Reply

Marsh Posté le 26-01-2004 à 20:44:33    

up :cry:

Reply

Marsh Posté le 27-01-2004 à 08:58:08    

Bon j'ai réussi à installer une fedora sur mon DD USB. Par contre j'arrive toujours pas à booter dessus :/.
 
Quelqu'un a une idée?

Reply

Marsh Posté le 27-01-2004 à 08:58:08   

Reply

Marsh Posté le 27-01-2004 à 15:12:45    

up

Reply

Marsh Posté le 28-01-2004 à 13:54:29    

La différence, c'est que loadlin marche après avoir chargé un OS (Windows en l'occurence). Donc l'idée ce serait
1) avoir une petite partition DOS de 8Mo avec io.sys, msdos.sys et command.com dessus.
2) rajouter loadlin.exe, le noyau de ta distribution, et le ramdisk qui va bien (vois plus bas)
3) dans le "autoexec.bat" tu rajoutes une ligne du genre

Code :
  1. @loadlin.exe c:\vmlinuz initrd=c:\ramdisk.img


4) et quand tu bootes là-dessus ça te charges le DOS, qui lance loadlin, qui écrase le DOS avec un noyau linux, qui charge le ramdisk, qui (voir plus bas) charge les pilotes usb-storage pour accéder à ton disque, le monte, chroot dessus, et boot ta Fedora normalement.
 
Cela dit je suis d'accord que tu peux faire la même chose avec lilo du moment que tu lui donnes le ramdisk-qui-va-bien, c'est juste que ça évite de toucher au MBR.
 
Bref la partie difficile pour toi, c'est de créer le RamDisk. En gros il te faut:
1) les headers de ton noyau
2) les sources de ucLibc
3) les sources de busybox
4) tu compiles ucLibc en lui donnant le chemin de ton noyau
5) tu compiles busybox en lui disant d'utiliser ucLibc
6) tu mets tout ça dans un fichier loopback ext2
7) tu rajoutes les modules usb-uhci.o, usb-storage.o, ext3.o, etc.
8) tu rajoutes un /linuxrc qui ressemble à

Code :
  1. #!/bin/sh
  2. echo "Boot sous Linux"
  3. echo "J'essaie de trouver l'USB"
  4. /sbin/insmod usb-uhci.o
  5. echo "J'essaie de trouver le disque"
  6. /sbin/insmod scsi.o
  7. /sbin/insmod usb-storage.o
  8. mkdir -p /system
  9. for i in /dev/sd{a,b,c,d,e,f,g,h}; do
  10.   for j in 1 2 3 4 5 6 7 8 9; do
  11.      mount -t ext2 -o ro ${i}${j} && echo "J'ai trouvé la partition $j sur le disque $i"
  12.   done
  13. done
  14. pivot_root /system /initrd
  15. chroot /system && exec /sbin/init


9) tu gzip ce fichier, c'est ton RamDisk
 
N'hésite pas à te référer aux DiskLess how-to, où à utiliser le RamDisk fourni par exemple sur http://evms.sourceforget.net
 
Pour info toutes mes machines bootes sur le réseau comme ça ...

Reply

Marsh Posté le 28-01-2004 à 17:40:35    

je préfere quand même la solution lilo ;)
 
Et vu que je n'ai jamais fait de ramdisk, je me demande s'il est possible de booter à partir d'un noyau du DD IDE de mon portable avec un lilo.conf qui ressemble à :

Code :
  1. image=/vmlinuz-usb
  2. label=LinuxUSB
  3.       read-only
  4.       root=/dev/sda1  //donc la partition où est installé la fedora


 
en prenant soin de mettre le nécessaire (USB, SCSI) dans le dit noyau?
 
J'ai déjà essayé de chercher de ce côté là mais au boot j'ai un "unable to mount root filesystem". J'ai sans doute oublié qqch en dur ... à moins que ce ne soit impossible.
 
Donc avant de partir vers le ramdisk y'a une possibilité avec cette méthode?
 
En tous les cas merci de ton aide glacote :jap:


Message édité par Niala le 28-01-2004 à 17:42:21
Reply

Marsh Posté le 29-01-2004 à 09:46:43    

Tu rajoutes "initrd=/chemin/vers/initrd" dans ton lilo.conf
 
Le problème, c'est qu'il va écrire le programme d'amorçage sur le disque principal, en lui disant d'aller chercher le noyau et le ramdisk sur le disque USB. Vu que ledit programme n'a pas de pilotes USB/etc., aucune chance que ça marche. D'où ma proposition d'utiliser loadlin.exe (c'est ce que j'ai dû faire sur le portable de mon épouse).

Reply

Marsh Posté le 29-09-2004 à 13:25:13    

Up de la mort :o
 
Bon j'ai une p4p800 et je boot sur l'usb 2 (un disque dur externe dual boot 2k/mdk 10.1b). Lilo apparait, je selectionne linux et c'est la que tout va mal :o :
 
Loading ext3.0 module  
mounting /proc filesystem  
Creating root device  
mounting root filesystem with flags noatime  
mount: error 6 mounting ext3 flags noatime  
well, retrying without the option flags  
mount: error 6 mounting ext3  
well, retrying read-only without any flag  
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: 176k freed  
Kernel panic:No init found.Try passing init=option to kernel  
 
D'apres ce que j'ai vu, les modules usb ne sont pas chargés par defaut. Comment faire ? J'ai pas vu de tuto sur le net sur ce (gros) probleme :/
 
thx


Message édité par hfrfc le 29-09-2004 à 13:26:13

---------------
D3/Hots/Hs Doc#2847
Reply

Marsh Posté le 29-09-2004 à 20:37:07    

Reply

Marsh Posté le 03-10-2004 à 10:48:05    

Bon je remet ma question dans ce post car ce topic est recensé sur google, dc si ca peut aider qqu.. Si ca gene je le vire.
 
J'ai une p4p800 qui boot bien en usb.
 
Bon j'ai testé en recompilant le noyau avec les bonnes options (usbcore, usb storage, usb support, ehci, ohci, uhci, scsi support et emulation). J'ai installé le noyau et booter. Au boot, j'apercois que les modules sont chargés en dur. Cependant, j'ai cette magnifique erreur :
kernel panic : VFS unable to mount root fs on unknow block (3.5)
 
D'ou ca vient ? Est ce que je dois modifier lilo pour indiquer un disque  type sda a la place d'un hda (a cause de l'emulation scsi ) ?
 
 
J'ai testé le ram disk (4mo) et j'ai foutu les modules dedans. Le probleme c pour le linuxrc.. Je sais pas trop quoi mettre dedans.
Voila le mien (trouve sur un site pour red hat :/) Je pense que  le mount est mauvais :

Code :
  1. #!/bin/nash
  2. echo "Loading jbd.o module"
  3. insmod /lib/jbd.ko
  4. echo "Loading ext3.o module"
  5. insmod /lib/ext3.ko
  6. echo Mounting /proc filesystem
  7. mount -t proc /proc /proc
  8. echo "Loading usb modules"
  9. insmod /lib/usbcore.ko
  10. insmod /lib/scsi_mod.ko
  11. insmod /lib/sd_mod.ko
  12. insmod /lib/usb-storage.ko
  13. insmod /lib/uhci-hcd.ko
  14. insmod /lib/ehci-hcd.ko
  15. insmod /lib/ohci-hcd.ko
  16. /bin/sleep 5
  17. echo Creating block devices
  18. mkdevices /dev
  19. echo Creating root device
  20. mkrootdev /dev/root
  21. /bin/sfdisk -R /dev/sda
  22. echo 0x0100 > /proc/sys/kernel/real-root-dev
  23. echo Mounting root filesystem
  24. mount -o defaults --ro -t ext3 /dev/root /sysroot
  25. pivot_root /sysroot /sysroot/initrd
  26. umount /initrd/proc


 
Le ram disk se charge mais la boum , meme erreur :
kernel panic : VFS unable to mount root fs on unknow block (3.5)
 
ALors ca vient d'ou ? De lilo ?  :heink:  
Si je trouve la solution, je ferais un tutorial car il n'y a pas de doc claire et precise sur le sujet, sur internet  [:zoutte]


Message édité par hfrfc le 04-10-2004 à 11:51:36

---------------
D3/Hots/Hs Doc#2847
Reply

Marsh Posté le 21-01-2005 à 09:26:30    

Bonjour,
 
peut-être ceci peut vs aider :
 
j'ai eu ce mme pb et au bout de qq jours de tâtonnement ai trouvé une solution simple qui marche !
 
1. Il faut un bios qui permet de booter sur l'usb
2. On installe une debian récente en mode expert (qui permet de compiler à la volée les modules qui vont bien)
3. Pour le reste, la solution se trouve ici (pour l'usb externe):
 
http://lists.debian.org/debian-boo [...] 01601.html
 
je m'en suis inspiré, et cela marche !
4. Au redémarrage, il faudra probablement retoucher le script de grub que l'on peut modifier live, cad au démarrage (option e, suivre les indications à l'écran) pour mettre le disque de démarrage en (h0,0) et après un démarrage si encore suivi d'un kernel panic, voir dans les msg à l'écran juste avant le kernel panic s'il se produit, comment le disque externe est identifié au démarrage car au moment de l'installation il est reconnu parfois différemment en fonction de tt l'environnement largement à ce stade reconnu (sdc1 ds le script de grub alors que :)  pour moi sdg1!!!)
5. Il faudra alors revenir dans le script de grub  et modifier la ligne qui contient root=/dev/sdc1 en par ex. root=/dev/sdg1)
6. En principe, le redémarrage se fera alors normalement mais il faudra à chaque fois modifier le script initial de grub ou faire en dur une modi du fichier /boot/grub/menu.lst
 
 :)  :)  :)


Message édité par linuxafficion le 22-01-2005 à 16:23:13
Reply

Marsh Posté le 21-01-2005 à 11:40:54    

Bonjour,
 
je sais pas si vous êtes au courant mais avant de booter Linux sur de l'USB faut un patcher le noyau, sinon vous allez avoir un beau message d'erreur et ça va pas booter
voici un lien qui explique tout ça très bien: http://www.enseirb.fr/~kadionik/em [...] here7.html
 
Oliv'

Reply

Marsh Posté le 22-01-2005 à 16:21:56    

Pas obligatoirement.
 
Il suffit de charger les bons modules qui permettent au boot de reconnaître le disque usb.
 
Voir la solution avec Debian.
 
On peut effectivemnt recompiler le noyau, mais il faut y incorporer les modules nécessaires.
 
Il y a aussi une solution alternative avec mkinitrd qui marche avec Fedora. (voir http://www.benusa.com/linux/boot.htm et http://simonf.con/usb)
 
On  peut aussi le faire en mode expert à l'instal de debian sarge. Voir ma précédente contrib.


Message édité par linuxafficion le 22-01-2005 à 16:23:50
Reply

Marsh Posté le 07-11-2005 à 21:09:15    

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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