Автор Тема: Cpio проблеми  (Прочетена 1978 пъти)

pr0fessor

  • Напреднали
  • *****
  • Публикации: 70
  • Distribution: Slackware
  • Window Manager: KDE
    • Профил
Cpio проблеми
« -: Sep 08, 2007, 15:11 »
значи проблема е следния... имам едни файлове  (от едно цд дето е 3 мб и искам тва цд да го вкарам в мулти боот цд, но единствено syslinux може да лоадва  исо имиджи... а за това че на някои компютри със стари биоси той не зарежда ползвам http://www.nu2.nu/diskemu/ ) initrd.cgz и scsi.cgz като ги разархивирам (със 7зип) тоест архивирани gzip стават с разширение initrd.cpio и scsi.cpio, вадя им списъците със файловете:
Примерен код
Z:\>cpio -it < initrd.cpio > initrd.lst
Z:\>cpio -it < scsi.cpio > scsi.lst
и ги разархивирам:
Примерен код
cpio -ivd < initrd.cpio
cpio -ivd < scsi.cpio
... и проблемите идват... искам да ги напрая в един архив. прoблема е че под windows не мога да напрая списъка с cpio-то за уин и изявличам списъците от двата архива и ги събирам с нотпад в един. тва cpio само в главна директория ли работи? (директорите почват с / и трябва да местя всичкко в главна директория да напрая нов диск със subst
Примерен код
subst z: "C:\Program Files\GnuWin32\bin\cpio"
':crazy:'. добре накрая напраих архива...
Примерен код
cpio -ov -H newc < initrd.lst > initrd.cpio
 и като архивирам пак със 7зип initrd.cpio до initrd.cgz (initrd.cpio.gz) целта на тея гимнастики е да събера всичко на дискета щото като са по отделно не ми зарежда scsi.cgz-то
Примерен код
default boot
display boot.msg
timeout 250
prompt 1
label boot
  kernel vmlinuz

append rw vga=1 init=/linuxrc initrd=initrd.cgz,scsi.cgz

така на цд ги зарежда ма съшите параметри на дискета не ще
Примерен код
default floppy
display boot.msg
timeout 250
prompt 1
label floppy
  kernel vmlinuz

append rw vga=1 init=/linuxrc initrd=initrd.gz root=/dev/ram0 source=/dev/floppy/0

работата е че syslinux може да моунтва исо имиджи, но не е надежден колкото http://www.nu2.nu/diskemu което пък зарежда само боот сектори и флопи имиджи,а боот сектора на sislinux може да се зарежда само директно, при опит за зареждане от боот лоадер вади грешка за чексумата...
и накрая като напрая дискетата има м кернел паник че не може да зареди файловата система
http://img403.imageshack.us/img403/2053/untitledda1.gif (14 кб) и накрая въпроса дето май не интересува
какъв формат да сложа на cpio -H newc...bin...tar... или някой от другите... и забелязах и друго като архивирам initrd.cpio със 7zip до gz ми показва че файлова ситема на архива е fat a на оригиналния файл е unix дали трябва да намеря gzip за уин? или kernel panic-a е по друга причина?
Активен

ivo1204

  • Напреднали
  • *****
  • Публикации: 987
    • Профил
Cpio проблеми
« Отговор #1 -: Sep 08, 2007, 16:14 »
По принцип „kernel panic“ има , когато ядрото не намери програма , на която да предаде управлението („init“,“linuxrc“ „sh“
се пробват до дупка ...).В твоя случай това става ,ядрото казва , че не намира нищо подходящо...

"checking if image is initramfs ...it isn't (no cpio magic).Looks like an initrd. Freeing initrd memory:1801k freed. "

Дори в новите ядра имат има собствена („rootfs“) „/“ файлова система , която обаче е празна. Така че ти може да „набуташ“ тия 3Мбайта направо в ядрото:

General setup->Initial RAM filesystem and RAM disk (initramfs/initrd) support (YES)
General setup->Initramfs source file(s):
Тук пишеш или директорията(ийте) за „/“ , или „ cpio“ архива.
 
P.P Не ползвам "Win" , за да видя какъв е проблема с "cpio" .
Иначе , ми така трябва да е , не виждам  нещо нередно в командата...
 find . | cpio -o -H newc | gzip >init.gz



Активен

pr0fessor

  • Напреднали
  • *****
  • Публикации: 70
  • Distribution: Slackware
  • Window Manager: KDE
    • Профил
Cpio проблеми
« Отговор #2 -: Sep 08, 2007, 17:23 »
разбрах къде ми е грешката:
Примерен код
Z:\>cpio -it < initrd.cpio > initrd.lst

трябва да е
Примерен код
Z:\>cpio -it --absolute-filenames < initrd.cpio > initrd.lst

щото не извлича целия път в списъка и липсва главната /
после естествено като пусна да архивирам файловете не излизат в // ми в / и се плучава initrd.cpio\bin\modprobe вместо initrd.cpio\\bin\modprobe



Активен