SquashFS

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page SquashFS and the translation is 84% complete.
Outdated translations are marked like this.
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
Data provided by the Gentoo Package Database · Last update: 2026年04月05日 06:55 More information about USE flags

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

Booting

Asuming we're using dracut, simply put your squashfs image to your boot device and append this to the boot cmdline (e.g. via GRUB):

rd.live.image root=live:<YOUR BOOT DEVICE>

The boot device is in the format you'd usually have your root=... in, be it in the format of /dev/sdXY, , or

By default, it will look for it under the path LiveOS/squashfs.img. If you want to use a different file location, you'd instead have:

rd.live.image root=live:<YOUR BOOT DEVICE> rd.live.dir=<DIR> rd.live.squashimg=<IMG_FILE>

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