# squashfs mit lzma

## schmidicom

Hallo allerseits,

Ich habe da ein kleines Problem mit einer Image-Datei die mir ein Kollege gegeben hatte. Er wollte das ich ihm diese entpacke damit der Inhalt am Computer ausgelesen werden kann.

```
laptop ~ # file rom.img

rom.img: Squashfs filesystem, big endian, version 2.1, 4058809 bytes, 1007 inodes, blocksize: 65536 bytes, created: Sat Dec 12 14:26:03 2009
```

Und wie zu sehen ist handelt es sich dabei um ein squashfs also dachte ich mir das einfachste wäre es diese einfach zu mounten wie ein ganz normalen Datenträger. Doch das funktionierte nicht:

```
laptop ~ # mount -o loop -t squashfs rom.img /mnt/loop

mount: wrong fs type, bad option, bad superblock on /dev/loop0,

       missing codepage or helper program, or other error

       Manchmal liefert das Syslog wertvolle Informationen – versuchen

       Sie  dmesg | tail  oder so

laptop ~ # dmesg | tail

[ 6996.417782] SQUASHFS error: Can't find a SQUASHFS superblock on loop0
```

Inzwischen fand ich heraus das dieses Mistding mit der Komprimierung LZMA erstellt wurde.  :Shocked: 

Und scheinbar tut sich Gentoo damit etwas schwer.

Kennt jemand eine Möglichkeit wie ich dennoch an den Inhalt ran komme?

----------

## Christian99

liegt nicht an gentoo, lzma support für squashfs ist nur nicht im kernel. 2 mögichkeiten:

1. kernel mit squashfs/lzma support (z.b. zen-sources) oder selber patchen

2. squashfs-tools emergen( mit lzma use-flag) und unsquashfs verwenden

----------

## schmidicom

 *Christian99 wrote:*   

> liegt nicht an gentoo, lzma support für squashfs ist nur nicht im kernel. 2 mögichkeiten:
> 
> 1. kernel mit squashfs/lzma support (z.b. zen-sources) oder selber patchen
> 
> 2. squashfs-tools emergen( mit lzma use-flag) und unsquashfs verwenden

 

Ich habe mich jetzt mal an der zweiten Möglichkeit versucht und das sys-fs/squashfs-tools-4.1 mit lzma support installiert, doch auch das scheint nicht wirklich zu funktionieren:

```
laptop # unsquashfs --help

SYNTAX: unsquashfs [options] filesystem [directories or files to extract]

   -v[ersion]      print version, licence and copyright information

   -d[est] <pathname>   unsquash to <pathname>, default "squashfs-root"

   -n[o-progress]      don't display the progress bar

   -no[-xattrs]      don't extract xattrs in file system

   -x[attrs]      extract xattrs in file system (default)

   -p[rocessors] <number>   use <number> processors.  By default will use

            number of processors available

   -i[nfo]         print files as they are unsquashed

   -li[nfo]      print files as they are unsquashed with file

            attributes (like ls -l output)

   -l[s]         list filesystem, but don't unsquash

   -ll[s]         list filesystem with file attributes (like

            ls -l output), but don't unsquash

   -f[orce]      if file already exists then overwrite

   -s[tat]         display filesystem superblock information

   -e[f] <extract file>   list of directories or files to extract.

            One per line

   -da[ta-queue] <size>   Set data queue to <size> Mbytes.  Default 256

            Mbytes

   -fr[ag-queue] <size>   Set fagment queue to <size> Mbytes.  Default 256

             Mbytes

   -r[egex]      treat extract names as POSIX regular expressions

            rather than use the default shell wildcard

            expansion (globbing)

Decompressors available:

   gzip

   lzma

   lzo

laptop # unsquashfs -dest ./files rom.img 

Reading a different endian SQUASHFS filesystem on rom.img

Parallel unsquashfs: Using 2 processors

gzip uncompress failed with error code -3

read_block: failed to read block @0x3dedad

read_fragment_table: failed to read fragment table block

FATAL ERROR aborting: failed to read fragment table
```

Falls ich dem unsquash sagen muss das es lzma benutzen muss wegen "gzip uncompress failed with error code -3" weiss ich nicht wie.

EDIT:

Wenn ich squashfs-tools nur noch mit lzma emerge so das nichts anderes mehr vorhanden ist kommt das:

```
laptop # unsquashfs -dest ./dreambox rom.img 

Reading a different endian SQUASHFS filesystem on rom.img

Filesystem uses gzip compression, this is unsupported by this version

Decompressors available:

   lzma
```

Jetzt verstehe ich die Welt nicht mehr...   :Question: 

Entweder verzapft dieses Programm Unsinn oder derjenige der mir das File gegeben hat. Normalerweise würde ich ja sagen das es der werte Kollege ist da dies nicht das erste mal wäre.  :Wink: 

Doch wenn dem so ist warum entpackte unsquash das File dann nicht gleich beim ersten mal wo gzip noch unterstützt wurde?

----------

## Christian99

naja, vermutlich ist die ausgabe so seltsam, weil die datei in nen uralten format ist (2.1) aktuell ist 4.0. Wahrscheinlich gibts deswegen etwas probleme.

vielleicht kann man ja mit unlzma was anfangen? (vemutlcih nicht, aber so als letzte idee)

edit: hiergibts auch noch alte versionen der squashfstools. vielleicht hast du damit erfolg

----------

## schmidicom

 *Christian99 wrote:*   

> naja, vermutlich ist die ausgabe so seltsam, weil die datei in nen uralten format ist (2.1) aktuell ist 4.0. Wahrscheinlich gibts deswegen etwas probleme.
> 
> vielleicht kann man ja mit unlzma was anfangen? (vemutlcih nicht, aber so als letzte idee)
> 
> edit: hiergibts auch noch alte versionen der squashfstools. vielleicht hast du damit erfolg

 

Ich gebs auf soll der Kollege einen anderen finden der im das Ding auseinander nimmt aber falls einer von euch Lust und Laune hat sich an dem File aus zu toben hier der Link:

ftp://schmidicom.dyndns.org/pub/rom.img

----------

