initrd aanpassen live distro

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • BitByter
  • Registratie: Juli 1999
  • Laatst online: 22-09 16:22

BitByter

Prutst dit forum

Topicstarter
Ik ben al een tijdje bezig om een te proberen om een ultieme boot usb stick te maken.
Ook moet ik erbij zeggen, dat ik een redelijke linux n00b ben, maar met veel trial and error en lezen kan ik meestal redelijk ver komen.

Het lijkt (voor mij) onmogelijk, om HP Smartstart (de firmware upgrade iso van HP) bootend te krijgen vanaf USB stick met Grub4dos, wanneer deze NTFS geformatteerd is.

De reden van NTFS is omdat er zo'n 20 iso's op staan, waarvan somigge groter zijn dan 4 gig, en ik ook windows wil installeren vanaf die usb stick.

de hp smartstart live menu.lst entry ziet er zo uit.

title HP smartstart
find --set-root /system/initrd.img
kernel /system/vmlinuz media=usb:/ rw root=/dev/ram0 ramdisk_size=806184 init=/bin/init loglevel=3 ide=nodma ide=noraid nopat pnpbios=off vga=791 splash=silent hp_fibre showopts noexec32=off numa=off nox2apic TYPE=MANUAL AUTOPOWEROFFONSUCCESS=no
initrd /system/initrd.img
boot

Wanneer ik de content copyeer naar een fat32 usb disk, start de live distro zonder problemen. Echter, met NTFS kan hij tijdens het booten van linux het NTFS Filesystem van de usb stick niet mounten.

Ik heb dit proberen uit te zoeken, en overal waar ik heb gezocht wordt uitgelegd dat er in de initrd.img extra modules gezet kunnen worden voor de kernel, en zo ook filesystem modules.

Na een halve dag klooien om die initrd.img van de livecd fatsoenlijk uitgepakt te krijgen in een ubuntu virtualmachine, zag ik dat in de lib/module/kernel/fs directory, geen NTFS module staat.

Ik ben zo vrij geweest om alle FS modules die in ubuntu64 aanwezig waren, erbij te copyeren, en de initrd opnieuw in te pakken, en er van te booten.

De modules lijken niet te worden opgepakt (misschien ook wel logisch ;))
Modprobe kan de modules niet laden, omdat het ongeschikte modules zijn.

Ik heb zo het idee dat ik die modules moet compileren voor de distributie waarin ik ze wil gaan gebruiken. Hoe dat moet ?? geen idee, echt niet. Zoiezo kan ik niet op het terminal prompt komen wanneer de live distro geboot is. De UI laat dat niet toe, en toetsencombinaties lijken eruit gesloopt te zijn.

Kan iemand mij op weg helpen ? Klopt het uberhaubt dat ik de initrd probeer aan te passen en zou dat genoeg zijn als dat lukt? hoe kom ik aan de juiste modules?

Acties:
  • 0 Henk 'm!

  • Mijzelf
  • Registratie: September 2004
  • Niet online
Wanneer je de ISO wilt booten, maakt het toch niet uit op welk filesysteem hij staat? Oftewel, waarom niet ext2/3 gebruiken?

Acties:
  • 0 Henk 'm!

  • CAPSLOCK2000
  • Registratie: Februari 2003
  • Laatst online: 16:39

CAPSLOCK2000

zie teletekst pagina 888

Mijzelf schreef op donderdag 10 oktober 2013 @ 13:14:
Wanneer je de ISO wilt booten, maakt het toch niet uit op welk filesysteem hij staat? Oftewel, waarom niet ext2/3 gebruiken?
TS heeft z'n ISO op NTFS staan. Binnen die iso is het een normale Linux-iso. Het boot proces bestaaat uit twee delen. Eerst laadt je bootloader je kernel (en initramfs). Vervolgens zoekt de kernel het root-FS. Als de bootloader NTFS snapt maar de kernel niet dan heb je dus een probleem.
BitByter schreef op donderdag 10 oktober 2013 @ 12:53:
Kan iemand mij op weg helpen ? Klopt het uberhaubt dat ik de initrd probeer aan te passen en zou dat genoeg zijn als dat lukt? hoe kom ik aan de juiste modules?
Ik denk dat je op het goede pad zit. Hoe heb je die initramfs opnieuw ingepakt? update-initramfs is de juiste manier.
Ik kan me voorstellen dat de autodetectie niet snapt dat er NTFS nodig is. Je kan het systeem dwingen om die driver te laden door hem op te nemen in /etc/modules (en dan initramfs te herbouwen).

De juiste module kun je vinden in /lib/modules/$(uname -r)/kernel/fs/ntfs/ntfs.ko . Als update-initramfs snapt dat die module nodig is dan wordt de module vanzelf ingepakt.

PS. Laat het me weten als je het werkend krijgt want ik zou het zelf ook goed kunnen gebruiken. Ik heb het recent met syslinux geprobeerd en bij mij lukte het ook niet om de installer de ISO te laten vinden. Ik ben niet zo ver gegaan dat ik initramfs ben gaan herbouwen maar heb toen de ILO gebruikt om de ISO te booten via Virtual Media.

[ Voor 11% gewijzigd door CAPSLOCK2000 op 10-10-2013 13:48 ]

This post is warranted for the full amount you paid me for it.


Acties:
  • 0 Henk 'm!

  • BitByter
  • Registratie: Juli 1999
  • Laatst online: 22-09 16:22

BitByter

Prutst dit forum

Topicstarter
Ik heb de initrd.img vanuit de iso gecoyeerd naar een ubuntu virtual machine.
Die is weer uitgepakt met lzma -dc -S .lz /home/test/iso/initrd.lz | cpio -id
daarna heb ik alle FS modules gecopyeerd die er nog niet instonden (waaronder ntfs)

van /lib/modules/3.8.0-31-generic/kernel/fs
naar /home/test/iso/lib/modules/3.0.58-0.6.2-default/kernel/fs

De modules zijn dus van een kernel 3.8, en die zijn gecoypeerd naar een 3.0 (denk ik?)

Daarna heb ik find . | cpio --quiet --dereference -o -H newc | lzma -7 > /home/test/new/new-initrd.lz gedaan.

Deze heb ik los gecoypeerd naar de usb stick, en die roep ik aan met grub4dos.
De initrd.lz file wordt geladen zonder problemen of foutmeldingen. (in het goede formaat inpakken is belangrijk ;))

Echter, tijdens de boot kan hij nog steeds in de tweede fase de usb stick niet mounten.

Ik krijgt dan:
'Warning!!! Unable to mount the file system [usb]
'Warning!!! Unable to mount the file system
Dropping to a shell. Good luck!

En dan kom ik in een prompt.

als ik naar /lib/modules/3.8.0-31-generic/kernel/fs ga vanuit dit prompt, zie ik daar de ntfs directory staan.
als ik lsmod doe, zie ik dat ntfs niet als module geladen is
met insmod (insmod /lib/modules/3.8.0-31-generic/kernel/fs/ntfs/ntfs.ko) kan ik de ko file ook niet laden. '-1 invalid module format'

de KO files die ik heb gecopyeerd, komen van een compleet andere linux distributie. ik heb een beetje het idee dat ze incompatible zijn. Ik vraag me ook af hoe die modules geladen worden. Als je ze er gewoon bij zet, worden ze dan een voor een geladen ? ik zag in het init filetje iets van 'load_modules', dus ik ging hier eigenlijk van uit.

Ik kan in het squashfs image van de livecd iso, ook helemaal geen ntfsmodules vinden die ik zou kunnen copyeren naar het initrd, als dat al zo werkt.

Hoe kan ik update-initramfs gebruiken ? Het probleem is dat ik dan (denk ik?) moet zien te booten naar de livecd, en dat ik dan op het prompt moet zien te komen ? of kan dat ook vanaf een andere linuxdistributie, offline zeg maar ?

ps, Mocht ik het werkend krijgen, wordt de iso 'uiteraard' geupload ;)

[ Voor 20% gewijzigd door BitByter op 10-10-2013 14:38 ]


Acties:
  • 0 Henk 'm!

  • CAPSLOCK2000
  • Registratie: Februari 2003
  • Laatst online: 16:39

CAPSLOCK2000

zie teletekst pagina 888

initramfs is misschien toch niet de juiste oplossing voor je probleem, ik zat een beetje te veel aan m'n eigen problemen te denken.

Je KO files lijken inderdaad niet compatible te zijn. Je hebt versie 3.0.58-0.6.2-default nodig. Als ik daar op zoek kom ik bij iets van SUSE uit maar ik kan zo snel geen kant en klare binaries vinden. Je kan de source downloaden en het zelf compileren.

Ik denk dat je ook nog iets met depmod moet doen om de module automatisch te laten herkennen.

This post is warranted for the full amount you paid me for it.


Acties:
  • 0 Henk 'm!

  • BitByter
  • Registratie: Juli 1999
  • Laatst online: 22-09 16:22

BitByter

Prutst dit forum

Topicstarter
Ik heb de hoop opgegeven voor dit aan te passen :)

Ik heb het nu wel werkend gekregen, maar niet met aanpassingen in de linux distro. ik heb een extra partitie aangemaakt (FAT32) op de usbstick met EaseUS Partition Master. Ik kan grub dan files laten laden van hd(0,1), en dan werkt het, linux mount die partitie en start door.

Bedankt voor alle hulp :)
Pagina: 1