and then modified, it is much easier to let this late, user-oriented
customisation be done automatically. These mods let mkimage change
information based on files in a "custom" directory, which can be set
in mkimage using -c customdir.
After all other configuration, the files under custom/ will be copied
into the main image. The files under custom/ are taken into account
when performing autosizing.
Also, generalise the sets directory to point to the current machine
architecture, although this can be overwritten from the command line
by anyone making cross-images.
An example to make a user image with an embedded read-only 100 MB
iSCSI target:
% ./mkimage -c custom
=== making a new 272 MB image in usermode.img ===
272+0 records in
272+0 records out
285212672 bytes transferred in 7.616 secs (37449142 bytes/sec)
=== mounting image via vnd vnd0 ===
/dev/rvnd0a: 272.0MB (557056 sectors) block size 8192, fragment size 1024
using 6 cylinder groups of 45.34MB, 5803 blks, 11264 inodes.
super-block backups (for fsck_ffs -b #) at:
32, 92880, 185728, 278576, 371424, 464272,
=== installing sets ===
base
etc
modules
=== performing customisations ===
=== making extra directories ===
=== customising /var/tmp ===
=== user customisations from files in custom ===
Filesystem 1K-blocks Used Avail %Cap Mounted on
/dev/vnd0a 269967 263958 -7489 102% /mnt
% ls -l -R custom
total 8
drwxr-xr-x 3 agc agc 512 Jan 18 03:58 etc
drwxr-xr-x 2 agc agc 512 Jan 18 04:00 iscsi
custom/etc:
total 8
drwxr-xr-x 2 agc agc 512 Jan 18 03:58 iscsi
-rw-r--r-- 1 agc agc 564 Jan 18 03:58 rc.conf
custom/etc/iscsi:
total 6
-r--r--r-- 1 agc agc 799 Jan 18 04:27 targets
custom/iscsi:
total 102484
-rw-r--r-- 1 agc agc 104857600 Jan 18 04:00 iscsi-target0
% sudo vnconfig vnd0 usermode.img
% sudo mount /dev/vnd0a /mnt
% cat /mnt/etc/iscsi/targets
# $NetBSD: targets,v 1.2 2006/02/16 19:30:57 agc Exp $
#
# Structure of this file:
#
# + an extent is a straight (offset, length) pair of a file or device
# it's the lowest common storage denominator
# at least one is needed
# + a device is made up of one or more extents or other devices
# devices can be added in a hierachical manner, to enhance resilience
# + in this example, no device definitions are necessary, as the target
# will just use a simple extent for persistent storage
# + a target is made up of 1 or more devices
# The code does not support RAID1 recovery at present
# Simple file showing 1 extent, mapped straight into 1 target
# extent file or device start length
extent0 /iscsi/iscsi-target0 0 100MB
# target flags storage netmask
target0 ro extent0 0.0.0.0/0
% ls -l /mnt/iscsi/iscsi-target0
-rw-r--r-- 1 agc agc 104857600 Jan 18 04:00 /mnt/iscsi/iscsi-target0
% diff custom/etc/iscsi/targets /mnt/etc/iscsi/targets
%
embedded platform in particular.
+ mkimage will make an autosized image in a file (using vnd) from sets
the resulting image can be mounted read-only, with tmpfs used for volatile
files on top of read-only bases
+ mkpkgs will make an autosized image in a file (using vnd) from binary
packages
+ usermode is an easy way to invoke usermode, making sure that bridging
is set up properly, and that the host syscallemu module is loaded. This
script then runs usermode with two file images (as produced by mkimage
and mkpkgs)
with improved German translations from Martin Husemann and Julian
Djamil Fagir. French, Spanish, and Polish translations are
still needed. OK christos, riz.
This is the user/application API and does not include the kernel
interface. Definitions shared with the kernel are found in
<sys/quota.h>.
Since I've been working on a local branch I have taken the liberty of
moving the latest-so-far version of <quota.h> to the front of the
patch queue. This loses (a small amount of) history but has the
advantage of avoiding unnecessary version bumps of libquota.so.
into the kernel if the "IPSEC" kernel option is given.
The old implementation is still available as KAME_IPSEC.
Do some minimal manpage adjustment -- kame_ipsec(4) is a copy
of the old ipsec(4) and the latter is now a copy of fast_ipsec(4).