Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Décomprésser et monter un initrd
Envoyé par: oZen

Bonjour a tous, je cherche a modifier linuxrc dans un initrd, mais apres décompréssion avec un truc du type

gzip -dc /mnt/boot/initrd.img >/tmp/initrd.ext2

et essai de montage avec:

mount -o loop /tmp/initrd.ext2 /mnt/initrd
ou encore
mount -o loop /tmp/initrd.ext2 /mnt/initrd -t ext2

il m'est invariablement retourné:
ioctl: LOOP_CLR_FD: Périphérique ou ressource occupé
mount: vous devez spécifier le type de système de fichiers

ou:
mount: wrong fs type, bad option, bad superblock on /dev/loop7,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so

Merci d'avance pour toute piste winking smiley



Poste le Friday 17 March 2006 14:14:15
Répondre     Citer    
Re: Décomprésser et monter un initrd
Envoyé par: ozen

Personne pour me dire si c'est moi qui est faut ou si il y a quelque chose de pas normal ?
Up !

Poste le Friday 17 March 2006 18:15:04
Répondre     Citer    
Re: Décomprésser et monter un initrd

Je n'ai jamais fait ça, car quand je touche à un noyau, je le configure pour l'adapter à mon système, et je n'ai pas d'initrd.

J'ai l'impression que faire un initrd ne sert que si on veut faire un noyau générique (celui d'une distribution, capable de tourner sur tout et n'importe quoi). Si c'est juste pour son système, il me parait plus simple de le configurer spécialement.

Mais j'avoue que j'ai commencé à compiler le noyau (en 0.99.12 ou .13) avant l'existence de initrd, et j'ai gardé les mêmes habitudes...


----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Friday 17 March 2006 18:19:05
Répondre     Citer    
Re: Décomprésser et monter un initrd
Envoyé par: oZen

Ok merci,

Je cherche a avoir le support du firewire pour un disque dur externe, pour pouvoir booter dessus via Grub et chainloader. Est ce que c'est possible d'apres toi ?

Le probleme c'est que je ne sais pas si Grub a deja chargé et lancé le noyau + ses modules quand il essaye d'acceder au disk firewire, parce là il me retourne qu'il ne trouve pas le disque.

Est ce qu'il est possible d'avoir le support Firewire AVANT que grub ne tente d'acceder a ce disque ou est impossible ??

Merci d'avance !!

Poste le Friday 17 March 2006 18:57:09
Répondre     Citer    
Re: Décomprésser et monter un initrd
Envoyé par: oZen

En fait quand je fais:
grub> kernel /vmlinuz root=/dev/hda1
grub> kernel /vmlinuz root=/dev/hda1
grub> initrd /initrd (simplifié)

puis:
grub> rootnoverify (hd1,0) (le disque firewire)
grub> makeactive
grub> chainloader +1
grub> bootgrub> kernel /vmlinuz root=/dev/hda1

est ce que le kernel et initrd sont chargés et executés avant que le reste arrive ou est qu'il place simplement le nouyau et les modules en memoire puis attent la fin de la sequence pour les executer ?
Parce que dans ce cas il est normal que le support firewire soit absent puis le noyau + module n'ont pas été lancé...

Poste le Friday 17 March 2006 19:03:03
Répondre     Citer    
Re: Décomprésser et monter un initrd

Grub est chargé par le BIOS, donc ne peut être que sur un disque (ou autre) connu du BIOS.

Il me semble (mais je peux me tromper) que GRUB accède au disque via le BIOS. Par contre, il connait (quelques) systèmes de fichiers (dont VFAT & ext2|3).

Une solution pourrait être d'avoir une partition /boot sur le disque usuel, voire même d'avoir /boot dans une partition VFAT connue de GRUB et pouvant contenir autre chose (un système microsoftien par exemple). A partir du moment ou Linux est booté, et où tu peux compiler le noyau qui est booté, il n'y a plus de problème majeur.

je crois aussi que la lecture de man initrd pourrait être utile...

je n'ai pas compris pourquoi tu veux chainloader un GRUB sur un disque externe.... En gros, pourquoi ne pas mettre GRUB et /boot sur la partition Windows (je dis peut-être là une bêtise, je ne connais pas Windows et pas du tout sa séquence de démarrage).

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Friday 17 March 2006 19:08:35
Répondre     Citer    
Re: Décomprésser et monter un initrd

Grub est chargé par le BIOS, donc ne peut être que sur un disque (ou autre) connu du BIOS.

Il me semble (mais je peux me tromper) que GRUB accède au disque via le BIOS. Par contre, il connait (quelques) systèmes de fichiers (dont VFAT & ext2|3).

Une solution pourrait être d'avoir une partition /boot sur le disque usuel, voire même d'avoir /boot dans une partition VFAT connue de GRUB et pouvant contenir autre chose (un système microsoftien par exemple). A partir du moment ou Linux est booté, et où tu peux compiler le noyau qui est booté, il n'y a plus de problème majeur.

je crois aussi que la lecture de man initrd pourrait être utile...

je n'ai pas compris pourquoi tu veux chainloader un GRUB sur un disque externe.... En gros, pourquoi ne pas mettre GRUB et /boot sur la partition Windows (je dis peut-être là une bêtise, je ne connais pas Windows et pas du tout sa séquence de démarrage).

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Friday 17 March 2006 19:08:48
Répondre     Citer    
Re: Décomprésser et monter un initrd

Citation
oZen
....
est ce que le kernel et initrd sont chargés et executés avant que le reste arrive ou est qu'il place simplement le noyau et les modules en memoire puis attent la fin de la sequence pour les executer ?

Il me semble que GRUB ne fait que charger des "segments" en mémoire. Rien n'est executé avant l'ordre boot de GRUB. la différence (pour GRUcool smiley entre un noyau et un module serait juste que le noyau a un point d'entrée.

(mais je me trompe peut-être...)

Lire la doc de GRUB pour les détails

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Friday 17 March 2006 19:13:56
Répondre     Citer    
Re: Décomprésser et monter un initrd
Envoyé par: oZen

Citation
auteur
je n'ai pas compris pourquoi tu veux chainloader un GRUB sur un disque externe...
Je ne veux pas chainloader grub sur un disk externe, je pense que c'est a cause d'un malheureux copier/colier en trop (satanée roulette de souris !) que tu as cru ca.

Citation
auteur
Il me semble que GRUB ne fait que charger des "segments" en mémoire. Rien n'est executé avant l'ordre boot de GRUB. la différence (pour GRUcool smiley entre un noyau et un module serait juste que le noyau a un point d'entrée.
Si c'est la cas, comment je pourrais avoir le support Firewire avant que Grub ne tente d'acceder au disk firewire ?
Est-ce qu'il est, dans ce cas, possible de Booter un noyau + modules pour le support Firewire, puis relancer Grub une nouvelle fois pour enfin chainloader le systeme non-*nix sur le disk externe firewire ?
Ce qui nous donnerais le shéma suivant:

Grub -> noyau + modules pour support FW -> Grub -> Chainloader du systeme etranger sur Firewire.

J'essaye de mettre en pratique une doc assez theorique de chez IBM, si tu as le temps de la lire je la met a disposition:

[www-128.ibm.com]

Sauf que le gars boot un systeme linux sur Firewire alors que moi c'est un system non-*nix que je veux booter

Merci beaucoup de me lire et m'aider.

Poste le Friday 17 March 2006 19:39:17
Répondre     Citer    
Re: Décomprésser et monter un initrd

Citation
oZen
Ce qui nous donnerais le shéma suivant:

Grub -> noyau + modules pour support FW ->
Grub -> Chainloader du systeme etranger sur Firewire.

Ca ne devrait pas marcher, car Grub charge un noyau, qui ne peux pas exécuter Grub (GRUB doit être chargé par le BIOS en mode 16 bits, ou par un chargeur à la chainloader en mode 16 bits).

Quel est cet OS mystérieux ("système étranger") que tu veux charger? Si c'est Windows, faudrait peut-être demander ailleurs comment (par exemple) diviser un système Windows en deux...

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Friday 17 March 2006 19:44:21
Répondre     Citer    
Re: Décomprésser et monter un initrd
Envoyé par: oZen

Je pense que je vais abandonné là... C'est un systeme pas autorisé grinning smiley celui du fruit de cupertino version X86 si tu vois ce que je veux dire :-))

Poste le Friday 17 March 2006 20:08:17
Répondre     Citer    
Re: Décomprésser et monter un initrd
Envoyé par: ryko

Salut,
... Dans ce cas l'initrd utilise peut être le fs de l'os du fruit de cupertino (et pas ext2) ? Parce que ton mount paraissait bon.

Sinon, tu as fait un "file initrd.ext2"

Sur ma fedora l'initrd c'est du cpio gzipé (cpio -ivcBd < initrd.img) (dans un répertoire temporaire après l'avoir dé gzipé)

Pour grub :

Il vaut mieux que grub soit en mesure d'acceder au /boot donc qu'il soit sur un device bootable et d'un des fs que grub connais. (BSD FFS, DOS FAT16 and FAT32, Minix fs, Linux ext2fs, ReiserFS, JFS, XFS, and VSTa fs)
Théoriquement tu peux donc tout a fais recopier ton /boot sur une fat32 et demander a grub de booter la dessus. (?)

Si tu veux plus d'options et moins de fioriture tu peux aussi essayer lilo (chez moi j'ai viré grub pas capable de booter du reiser4 et/ou pas compilable avec cette option).

Poste le Saturday 18 March 2006 19:18:56
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Décomprésser et monter un initrd
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons