The vnduncompress command decompress a cloop2-compressed file system image back into a regular image.
The file system images that can be handled are not limited to any specific file system, i.e. it is possible to handle images e.g. in ISO 9660 or UFS/FFS format. File system images in the cloop2 format are intended to be used with the vnd(4) driver in compressed mode as configured by the -z option of the vnconfig(8) program, and later mounted with the appropriate -t option to mount(8).
# vndcompress netbsd.iso netbsd.izo
Note that the resulting compressed image cannot be mounted directly via NetBSDAp s vnd(4) and mount_cd9660(8) commands any longer. Instead, you will have to use the -z option of vnconfig(8).
The following example decompresses an existing CD-ROM file system image that was compressed in the cloop2 format into a regular file that can then be mounted:
# vnconfig vnd0 KNOPPIX.iso
# mount -t cd9660 -o ro /dev/vnd0d /mnt
# vnduncompress /mnt/KNOPPIX/KNOPPIX /var/tmp/knoppix.iso
# umount /mnt
# vnconfig -u vnd0
#
# vnconfig vnd1 /var/tmp/knoppix.iso
# mount -t cd9660 -o ro /dev/vnd1d /mnt
# ls /mnt
.rr_moved cdrom floppy lib opt sbin usr
bin dev home mnt proc sys var
boot etc initrd none root tmp vmlinuz
# umount /mnt
# vnconfig -u vnd1
As an alternative, if your
vnd(4)
was compiled with
VND_COMPRESSION
,
you can use
vnconfig(8)
to access the cloop-compressed image directly, e.g.,
# vnconfig vnd0 KNOPPIX.iso
# mount -t cd9660 -o ro /dev/vnd0d /mnt
# vnconfig -z vnd1 /mnt/KNOPPIX/KNOPPIX
# mount -t cd9660 -o ro /dev/vnd1d /mnt2
# ls /mnt2
.rr_moved cdrom floppy lib opt sbin usr
bin dev home mnt proc sys var
boot etc initrd none root tmp vmlinuz
# df /mnt /mnt2
Filesystem Size Used Avail Capacity Mounted on
/dev/vnd0a 692M 692M 0B 100% /mnt
/dev/vnd1a 1.9G 1.9G 0B 100% /mnt2
# umount /mnt2
# vnconfig -u vnd1
# umount /mnt
# vnconfig -u vnd0
Note how the 1.9GB big filesystem on
/mnt2
is mounted from the compressed file stored on the 692MB CD mounted
on
/mnt
.
To create a compressed file system image of an existing
directory and mount it, run:
# makefs -t ffs include.fs /usr/include
# vndcompress include.fs include.fs.cloop2
# vnconfig -z vnd0 include.fs.cloop2
# mount -o ro /dev/vnd0a /mnt
# ls /mnt
To undo the steps, run:
# umount /mnt
# vnconfig -u vnd0
# rm /tmp/include.fs.cloop2
# rm /tmp/include.fs
The vndcompress utility was written by Florian Stoehr <netbsd@wolfnode.de>. The vndcompress manual page was written by Florian Stoehr <netbsd@wolfnode.de> and Hubert Feyrer <hubertf@NetBSD.org>.