Permalink
Browse files

Add vndcompress(1) and vnduncompress(1) to transform filesystem/disk

images from "normal" into cloop2-format compressed images and back. 
Written by Florian Stoehr (netbsd@wolfnode.de) with some polishing
by me.

Compressed disk images can be used with the vnd(4) driver when compiled with
VND_COMPRESSION and "vnconfig -z".  Useful for creation of Live CDs/DVDs.
  • Loading branch information...
hubertf
hubertf committed Jul 25, 2005
1 parent a2bca40 commit 396102693c60a63aa5159bc3dc9971522f2bac52
@@ -0,0 +1,9 @@
+# $Id: Makefile,v 1.1.1.1 2005/07/25 12:17:59 hubertf Exp $
+
+PROG= vndcompress
+LINKS= ${BINDIR}/vndcompress ${BINDIR}/vnduncompress
+MLINKS= vndcompress.1 vnduncompress.1
+LDADD+= -lz
+WARNS= 3
+
+.include <bsd.prog.mk>
@@ -0,0 +1,205 @@
+.\" $NetBSD: vndcompress.1,v 1.1.1.1 2005/07/25 12:17:59 hubertf Exp $
+.\"
+.\" Copyright (c) 2005 Florian Stoehr <netbsd@wolfnode.de>
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by Florian Stoehr
+.\" 4. The name of the author may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"
+.Dd May 28, 2005
+.Dt CLCONFIG 1
+.Os
+.Sh NAME
+.Nm vndcompress ,
+.Nm vnduncompress
+.Nd compress/uncompress file system images to/from cloop2 format
+.Sh SYNOPSIS
+.Nm vndcompress
+.Op Fl cd
+.Ar disk/fs-image
+.Ar compressed-image
+.Op Ar blocksize
+.Nm vnduncompress
+.Op Fl cd
+.Ar compressed-image
+.Ar disk/fs-image
+.Sh DESCRIPTION
+The
+.Nm
+program compresses an existing file system image
+into a cloop2 compatible compressed file system image.
+An optional blocksize can be given.
+If omitted, the default of 64kB is used.
+.Pp
+The
+.Nm vnduncompress
+command decompress a cloop2-compressed file system image back into a
+regular image.
+.Pp
+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
+.Xr vnd 4
+driver in compressed mode as configured by the
+.Fl z
+option of the
+.Xr vnconfig 8
+program,
+and later mounted with the appropriate
+.Fl t
+option to
+.Xr mount 8 .
+.Pp
+.Sh OPTIONS
+The following options are available:
+.Bl -tag -width indent
+.It Fl c
+Always compresses, even if the programm was ran as
+.Nm vnduncompress .
+.It Fl d
+Always uncompresses (decompresses), even if the program
+was ran as
+.Nm vndcompress.
+.El
+.Pp
+.Sh EXIT STATUS
+The
+.Nm
+and
+.Nm vnuncompress
+utilities exit with one of the following values:
+.Bl -tag -width 4n
+.It 0
+The operation was performed successfully.
+.It 1
+An error occurred.
+.El
+.Sh EXAMPLES
+To compress an existing CD-ROM file system image, run the following
+commands:
+.Bd -literal -offset indent
+# vndcompress netbsd.iso netbsd.izo
+.Ed
+.Pp
+Note that the resulting compressed image cannot be mounted directly
+via NetBSD's
+.Xr vnd 4
+and
+.Xr mount_cd9660 8
+command any longer. Instead, you will have to use the
+.Fl z
+option of
+.Xr vnconfig 8 .
+.Pp
+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:
+.Bd -literal -offset indent
+# 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
+.Ed
+.Pp
+As an alternative, if your
+.Xr vnd 4
+was compiled with VND_COMPRESSION, you can use
+.Xr vnconfig 8
+to access the cloop-compressed image directly, e.g.
+.Bd -literal -offset indent
+# 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
+.Ed
+.Pp
+Note how the 1.9GB big filesystem on
+.Pa /mnt2
+is mounted from the compressed file stored on the 692MB CD mounted
+on
+.Pa /mnt .
+To create a compressed file system image of an existing
+directory and mount it, run:
+.Bd -literal -offset indent
+# 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
+.Ed
+.Pp
+To undo the steps, run:
+.Bd -literal -offset indent
+# umount /mnt
+# vnconfig -u vnd0
+# rm /tmp/include.img.cloop2
+# rm /tmp/include.img
+.Ed
+.Sh SEE ALSO
+.Xr gzip 1 ,
+.Xr vnd 4 ,
+.Xr mount 8 ,
+.Xr mount_cd9660 8 ,
+.Xr vnconfig 8
+.Sh AUTHORS
+The
+.Nm
+utility was written by
+.An Florian Stoehr
+.Aq netbsd@wolfnode.de .
+The
+.Nm
+manual page was written by
+.An Florian Stoehr
+.Aq netbsd@wolfnode.de
+and
+.An Hubert Feyrer
+.Aq hubertf@NetBSD.org .
Oops, something went wrong.

0 comments on commit 3961026

Please sign in to comment.