SquashFS
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:
File systems --->
[*] Miscellaneous filesystems --->
[*] SquashFS 4.0 - Squashed file system support
Opcionális SquashFS támogatás
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
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
* 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-fopció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
-fopció 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
- SquashFS oktatóvideó a YouTube videómegosztón .
- Fórumbejegyzés: TIP: Portage tömörítése squashfs segítségével: init-script módszer .
- Cikk/Szkript , amely SquashFS-t használ a portage fa tárolására és frissítésére.
- Portage fa squashfs és overlayfs használatával .
- GitHub - nrdvana/squash-portage: Szkript a Gentoo portage fa SquashFS fájljainak létrehozására .
Hivatkozások
- ↑ 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