Aneb mountnutí komprimované dd image ;-)
Před nedávnem jsem si potřeboval uložit přesnou kopii disku pro další potřeby. Disk byl ale zaplněný z necelé poloviny a zaplácnout zbytečně 30 GB prostoru se mi nechtělo, proto jsem image disku z dd prohnal (krom pipe vieweru kvůli průběhu) ještě gzipem:
# sudo dd if=/dev/sdc conv=sync,noerror bs=64K | pv -brtp -s 30g |gzip -c > ./sdc.img.gz
Nojo, ale jak to teďka mountnout, aniž bych to musel pokaždé rozbalovat? Řešením je AVFS – A Virtual File System. Ten si nainstalujeme dle postupů naší distribuce a dále pak stačí nahodit démona:
# avfsd -o allow_root ~/.avfs
Tím se nám celý aktuální filesystém objeví připojený přes AVFS v ~/.avfs s jednou super vychytávkou, totiž že pokud v tomto adresáři za jaký koliv soubor přidáme křížek, můžeme s ním pracovat, jakoby byl nekomprimovaný.
V případě naší image disku si tedy zjistíme offset první partition:
# cd .avfs/home/jamar/Data/_work/disk1/
# sfdisk -l -uS sdc.img.gz#
Disk sdc.img.gz#: cylindrů: 1216, hlav: 255, sektorů/stopu: 63
sfdisk: Varování: Zdá se, že tabulka rozdělení disku byla vytvořena
pro C/H/S=*/240/63 (místo 1216/255/63).
Zobrazuji za použití této geometrie.
Jednotky: sektory po 512 bajtech, počítáno od 0
Zařízení Boot Začátek Konec Sektorů Id Systém
sdc.img.gz#1 * 63 19519919 19519857 7 HPFS/NTFS/exFAT
A pak ji klasicky mountneme s offsetem násobeným 512 (tj. 63*512=32256):
# mount -o loop,offset=32256 -r sdc.img.gz# /mnt/tmp/
Tím máme partišnu z komprimované image disku připojenou bez rozbalování. Cool ;-)