SquashFS

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page SquashFS and the translation is 100% complete.
Other languages:

A SquashFS egy nyílt forráskódú, kizárólag olvasható, rendkívüli módon összetömöríthető fájlrendszer. Más fájlrendszerekhez hasonlóan a SquashFS is képes az átadott adatok de-duplikálására, ami tovább segíti az adatok összetömörítését. Bár a megfelelő működés érdekében nem feltétlenül szükséges, a SquashFS fájlrendszert általában valamilyen union fájlrendszerrel párosítják, amikor Live adathordozókhoz (LiveUSB adathordozókhoz és LiveCD adathordozókhoz) használják.

Telepítés

Kernel

A SquashFS fájlrendszer támogatásának az érdekében aktiválni kell a következő kernelopciókat:

KERNEL SquashFS 4.0 támogatásának az engedélyezése a kernelforráskód beállításában
File systems  --->
   [*] Miscellaneous filesystems  --->
      [*]   SquashFS 4.0 - Squashed file system support

Opcionális SquashFS támogatás

KERNEL Opcionális SquashFS funkciók engedélyezése a kernelforráskód beállításában
File systems  --->
   [*] Miscellaneous filesystems  --->
         File decompression options (Decompress file data into an intermediate buffer)  --->
         Decompressor parallelisation options (Single threaded compression)  --->
      [*]     Squashfs XATTR support
      [*]     Include support for ZLIB compressed file systems
      [*]     Include support for LZ4 compressed file systems
      [*]     Include support for LZO compressed file systems
      [*]     Include support for XZ compressed file systems
      [*]     Use 4K device block size?
      [*]     Additional option for memory-constrained systems
      (3)       Number of fragments cached

USE jelölőzászlók

Mint a legtöbb Linux fájlrendszer esetében, a SquashFS fájlrendszerhez tartozó segédszoftverek is külön szoftvercsomagban találhatóak meg. Ez a szoftvercsomag a sys-fs/squashfs-tools nevet viseli. A szoftvercsomag kívánt támogatását a USE jelölőzászlók megfelelő beállításával lehet meghatározni.

USE flags for sys-fs/squashfs-tools Tools to create and extract Squashfs filesystems

debug Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
lz4 Enable support for lz4 compression (as implemented in app-arch/lz4)
lzma Support for LZMA compression algorithm
lzo Enable support for lzo compression
xattr Add support for extended attributes (filesystem-stored metadata)
zstd Enable support for ZSTD compression

Emerge

Miután a jelölőzászlókat beállította a kívánt módon, frissítse az operációs rendszert annak érdekében, hogy a változtatások érvénybe lépjenek:

root # emerge --ask --changed-use --deep sys-fs/squashfs-tools

Használat

Fájlrendszer létrehozása

A SquashFS fájlrendszerek létrehozása a mksquashfs parancs segítségével történik. Annak érdekében, hogy egy SquashFS fájlrendszert létrehozzunk az orbanviktor nevű felhasználó saját könyvtárában, az alábbi parancsot kell futtatni:

orbanviktor@example $ mksquashfs /home/orbanviktor /home/orbanviktor/home.squashfs

Attól függően, hogy milyen kernelfunkciókat választottunk ki a SquashFS támogatásához, a mksquashfs parancs kimenete a következőképpen fog kinézni:

Parallel mksquashfs: Using 4 processors
Creating 4.0 filesystem on /home/orbanviktor/home.squashfs, block size 131072.
[=========================================================================|] 4/4 100%

Exportable Squashfs 4.0 filesystem, gzip compressed, data block size 131072
        compressed data, compressed metadata, compressed fragments, compressed xattrs
        duplicates are removed
Filesystem size 0.82 Kbytes (0.00 Mbytes)
        58.79% of uncompressed filesystem size (1.39 Kbytes)
Inode table size 104 bytes (0.10 Kbytes)
        46.02% of uncompressed inode table size (226 bytes)
Directory table size 96 bytes (0.09 Kbytes)
        77.42% of uncompressed directory table size (124 bytes)
Number of duplicate files found 1
Number of inodes 7
Number of files 5
Number of fragments 1
Number of symbolic links  0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 2
Number of ids (unique uids + gids) 1
Number of uids 1
        orbanviktor (1001)
Number of gids 1
        orbanviktor (1001)

Figyelje meg, hogy a parancs kiváló összegzést nyújt az újonnan létrehozott home.squashfs fájl tartalmáról. Az olyan információk, mint a fájlrendszer mérete, inode tábla, könyvtártábla, duplikált fájlok száma, UID azonosítók és GID azonosítók könnyen olvashatóak. Ezek az adatok nagyon hasznosak lehetnek, amikor konkrét információkat próbál gyűjteni a fájlrendszerből.

Felcsatolás

Egy SquashFS fájlrendszer felcsatolása érdekében használja a mount parancs -o loop opcióját emelt szintű jogosultsággal:

orbanviktor@example $ mkdir ~/tmp
orbanviktor@example $ mount -o loop ~/home.squashfs ~/tmp
Note
Ha a mount parancs futása sikertelen, akkor tekintse meg az alábbi hibaelhárítási szakasz megfelelő bejegyzését.

Most már az összes fájl, amely a home.squashfs fájlban található, elérhető a ~/tmp felcsatolási pont alatt. A fájlok listázása érdekében használja a -la opciót, hogy minden fájlt láthasson:

orbanviktor@example $ ls -la ~/tmp
total 3
drwxr-xr-x 3 orbanviktor orbanviktor 125 Mar 31 13:51 .
drwxr-xr-x 1 orbanviktor orbanviktor 130 Mar 31 13:52 ..
-rw------- 1 orbanviktor orbanviktor  10 Mar 31 13:49 .bash_history
-rw-r--r-- 1 orbanviktor orbanviktor 127 Mar 24 13:19 .bash_logout
-rw-r--r-- 1 orbanviktor orbanviktor 193 Mar 24 13:19 .bash_profile
-rw-r--r-- 1 orbanviktor orbanviktor 551 Mar 24 13:19 .bashrc
-rw-r--r-- 1 orbanviktor orbanviktor   0 Mar 31 13:51 home.squashfs
drwx------ 2 orbanviktor orbanviktor   3 Oct 23 06:52 .ssh

Lecsatolás

A fájlrendszer lecsatolása érdekében használja a umount parancsot emelt szintű jogosultsággal:

larry@example $ sudo umount ~/tmp

Kicsomagolás

A SquashFS fájlok kicsomagolása a unsquashfs parancs segítségével végezhető el. Feltételezve, hogy a ~/tmp könyvtár és a ~/home.squashfs fájl már létre lett hozva a fenti lépések során, a kicsomagolás érdekében a következő parancsot kell futtatni:

orbanviktor@example $ unsquashfs -d tmp/ -f home.squashfs
Important
* Ha a fájlrendszer célhelye nincs megadva (az ~/tmp a fenti példában a célhely), akkor a unsquashfs egy squashfs-root nevű könyvtárat hoz létre a jelenlegi könyvtárban, és oda csomagolja ki a fájlokat. [1]
  • Ha a könyvtár már létezik a unsquashfs parancs futtatása előtt, akkor a -d <könyvtár> és -f opciókat kell használni a SquashFS kicsomagolásához létező könyvtárba való kényszerítéséhez [1]
  • Ha új könyvtárba történik a kicsomagolás, akkor a -f opció nem szükséges.

A unsquashfs parancs segítségével egy adott fájl is kicsomagolható a SquashFS fájlrendszerből (tehát a SquashFS fajból). Ismét feltételezve azt, hogy a ~/home.squashfs fájl már létre lett hozva a fenti lépések során, a .bashrc fájl a ~/tmp könyvtárba csomagolható ki a SquashFS fájlból:

orbanviktor@example $ unsquashfs -d ~/tmp -f ~/home.squashfs -e .bashrc
Parallel unsquashfs: Using 4 processors
1 inodes (1 blocks) to write

[===========================|] 1/1 100%

created 1 files
created 1 directories
created 0 symlinks
created 0 devices
created 0 fifos

A kinyert fájl megtekintéséhez használja a ls parancsot:

orbanviktor@example $ ls -la ~/tmp
total 4
drwxr-xr-x 1 orbanviktor orbanviktor  14 Mar 31 13:51 .
drwxr-xr-x 1 orbanviktor orbanviktor 156 Mar 31 14:32 ..
-rw-r--r-- 1 orbanviktor orbanviktor 551 Mar 24 13:19 .bashrc

Hibaelhárítás

mount: only root can use "--options" option

Ez a hibaüzenet önmagában is érthető kell, hogy legyen. Jelentkezzen be root felhasználóként, vagy használja a sudo parancsot a fájlrendszer felcsatolásához emelt szintű jogosultsággal.

További olvasnivaló a témában

  • Aufs — an advanced multi-layered unification filesystem.
  • OverlayFS — az egyik Linux kernelben található megoldás, amely egyesítő fájlrendszer képességeket biztosít.
  • Wikipedia:UnionFS - Az eredeti union fájlrendszer.

Külső források

Hivatkozások

  1. 1.0 1.1 Artemiy I. Pavlov, Marco Cecchetti. The SquashFS tools exposed , The Linux Documentation Project , July 24, 2008. Retrieved on April 8, 2015