[megoldva] initrd kibontása

Fórumok

Üdv!
Az lenne a problémám, hogy egy Palm T|X-hez van initrd-m, és ezt sehogyan sem tudom kibontani.
Első próbálkozás:
$ gunzip initrd.gz
gzip: initrd.gz: not in gzip format
$ file initrd.gz
initrd.gz: data

Később a headerből ítélve rájöttem, hogy squashfs lehet, (shsq) de unsquashfs-re csak ennyit dob:
Can't find a SQUASHFS superblock on initrd.gz

Hozzászólások

Le kell szedni az elejéről dd-vel a bootloader formátumára jellemző headert, utána azon belül valószínűleg gzippelt cpio lesz. A dd bs és skip opcióival bontottam én U-Boot-hoz használatos uImage-eket, de a header 8-tól 64k-ig általában bármekkora lehet. Utána a dd of-ját nyilván gunzip -c | cpio -d ...

http://www.micros~1

Valami tényleg történt amikor ezt csináltam:
$dd bs=32K skip=1 if=initrd.gz of=initrd2.gz
$cpio -iv initrd2.gz

Most nem a szokásos, végtelenített: "cpio: Malformed number" volt, hanem:

cpio: warning: skipped 748 bytes of junk
cpio: figyelem: az archív fájl fejléce fordított byte-sorrendű

Utána pedig csak maszlag :)
---
Where there is a shell, there is a way.

zcat initrd.gz | cpio -i -H newc -d

Esetleg?

up!
---
Where there is a shell, there is a way.

Sokat segítene, ha idemásolnád a file elejét, vagy a linket ahol elérhető.
Egy rendes initrdinitramfs cpio-val van tömörítve és 0707-el kezdődik, ha minden igaz.

http://atrey.karlin.mff.cuni.cz/~miska/initrd.gz
shsq-val kezdődik ez biztos:
$ cat initrd.gz | more
shsq���]��p��}����H����(&����;n�*CnZ��_����D�ȆX}�7Z�Th��pq7�+�S} <ʿ}iA
����gkJ�����k������zV���
���˄���������+�<���

---
Where there is a shell, there is a way.