Received: by mail.netbsd.org (Postfix, from userid 605) id 61DD514A1BA; Fri, 20 Jan 2012 02:19:50 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mail.netbsd.org (Postfix) with ESMTP id 029E114A1A4 for ; Fri, 20 Jan 2012 02:19:49 +0000 (UTC) X-Virus-Scanned: amavisd-new at NetBSD.org Received: from mail.netbsd.org ([127.0.0.1]) by localhost (mail.NetBSD.org [127.0.0.1]) (amavisd-new, port 10025) with ESMTP id kd51_ISq57h2 for ; Fri, 20 Jan 2012 02:19:47 +0000 (UTC) Received: from cvs.netbsd.org (cvs.NetBSD.org [IPv6:2001:4f8:3:7:2e0:81ff:fe30:95bd]) by mail.netbsd.org (Postfix) with ESMTP id D614814A187 for ; Fri, 20 Jan 2012 02:19:47 +0000 (UTC) Received: by cvs.netbsd.org (Postfix, from userid 500) id B8CE0175DD; Fri, 20 Jan 2012 02:19:47 +0000 (UTC) MIME-Version: 1.0 Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" Date: Fri, 20 Jan 2012 02:19:47 +0000 From: "Alistair G. Crooks" Subject: CVS commit: src/distrib/utils/embedded To: source-changes@NetBSD.org X-Mailer: log_accum Message-Id: <20120120021947.B8CE0175DD@cvs.netbsd.org> Sender: source-changes-owner@NetBSD.org List-Id: source-changes.NetBSD.org Precedence: bulk Reply-To: source-changes-d@NetBSD.org Mail-Reply-To: "Alistair G. Crooks" Mail-Followup-To: source-changes-d@NetBSD.org Module Name: src Committed By: agc Date: Fri Jan 20 02:19:47 UTC 2012 Modified Files: src/distrib/utils/embedded: mkimage Log Message: While the resulting image from mkimage can always be mounted with vnd, 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 % To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/distrib/utils/embedded/mkimage Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.