4 # The DragonFly Project. All rights reserved.
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
10 # 1. Redistributions of source code must retain the above copyright
11 # notice, this list of conditions and the following disclaimer.
12 # 2. Redistributions in binary form must reproduce the above copyright
13 # notice, this list of conditions and the following disclaimer in
14 # the documentation and/or other materials provided with the
16 # 3. Neither the name of The DragonFly Project nor the names of its
17 # contributors may be used to endorse or promote products derived
18 # from this software without specific, prior written permission.
20 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
24 # COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25 # INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
26 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
28 # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29 # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
30 # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 .
/etc
/defaults
/mkinitrd.conf
36 if [ -r /etc
/mkinitrd.conf
]; then
38 echo "Loaded configuration from /etc/mkinitrd.conf"
45 if [ ! -d $BUILD_DIR ]; then
47 echo "Created build directory $BUILD_DIR"
49 vnconfig
-c -S ${INITRD_SIZE} -Z -T vn
${TMP_DIR}/initrd.img \
50 > ${TMP_DIR}/vndev.mkinitrd
52 echo "Failed to configure vn device"
56 VN_DEV
=`cat ${TMP_DIR}/vndev.mkinitrd | cut -f 2 -d ' '`
57 [ -f ${TMP_DIR}/vndev.mkinitrd
] && rm ${TMP_DIR}/vndev.mkinitrd
59 echo "Configured $VN_DEV"
60 newfs
-i 131072 -m 0 /dev
/${VN_DEV}s0
61 echo "Formatted initrd image with UFS"
62 mount
/dev
/${VN_DEV}s0
$BUILD_DIR
63 echo "Mounted initrd image on ${BUILD_DIR}"
68 umount
/dev
/${VN_DEV}s0
69 echo "Unmounted initrd image"
71 echo "Unconfigured $VN_DEV"
76 for dir
in ${INITRD_DIRS}; do
77 mkdir
-p ${BUILD_DIR}/${dir}
80 echo "Created directory structure"
85 for dir
in ${CONTENT_DIRS}; do
86 cpdup
${dir}/ ${BUILD_DIR}/
99 echo "usage: $0 [-b bootdir] [-c contentsdir] [-t tmpdir]"
103 args
=`getopt b:c:t: $*`
104 test $?
-ne 0 && usage
109 -b) BOOT_DIR
="$2"; shift; shift;;
110 -c) CONTENT_DIR
="$2"; shift; shift;;
111 -t) TMP_DIR
="$2"; shift; shift;;
115 test ! -d ${BOOT_DIR} && usage
116 test ! -d ${CONTENT_DIR} && usage
117 test ! -d ${TMP_DIR} && usage
118 test ! -z $1 && usage
119 BUILD_DIR
="${TMP_DIR}/initrd"
126 /usr
/bin
/gzip -9 ${TMP_DIR}/initrd.img
127 mv ${TMP_DIR}/initrd.img.gz
${BOOT_DIR}/kernel
/initrd.img.gz