[SM-Commit] GIT changes to master grimoire by David Brown (483a5d3df2883d200e53e6b9b0169a766636d5b1)

David Brown scm at mail.sourcemage.org
Sat Jan 27 13:50:45 EST 2007


GIT changes to master grimoire by David Brown <dmlb2000 at gmail.com>:

 kernels/linux/HISTORY  |    4 
 kernels/linux/INSTALL  |    4 
 kernels/linux/mkinitrd |  682 +++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 689 insertions(+), 1 deletion(-)

New commits:
commit e4b8bad8e6bc16ab04dce1752fb4e9c6ce651712
Author: David Brown <dmlb2000 at gmail.com>
Commit: David Brown <dmlb2000 at gmail.com>

    linux installed two new scripts mkinitrd and installkernel

diff --git a/kernels/linux/HISTORY b/kernels/linux/HISTORY
index bdaf0dc..d5d6dfb 100644
--- a/kernels/linux/HISTORY
+++ b/kernels/linux/HISTORY
@@ -1,3 +1,7 @@
+2007-01-27 David Brown <dmlb2000 at gmail.com>
+	* mkinitrd: created
+	* INSTALL: added install of installkernel and mkinitrd
+
 2007-01-24 David Brown <dmlb2000 at gmail.com>
 	* latest.defaults: updated latest to patch-2.6.20-rc6
 	* info/patches/PRE_2_6/patch-2.6.20-rc6: added
diff --git a/kernels/linux/INSTALL b/kernels/linux/INSTALL
index ab55f6a..db03193 100755
--- a/kernels/linux/INSTALL
+++ b/kernels/linux/INSTALL
@@ -59,6 +59,8 @@ if [[ -z "$INTERNAL_ISO_VAR" ]] ; then
 	${INSTALL_ROOT}/boot/config &&
 	# for people with boot partitions so grub can still find the kernel
 	# if they reference /boot/vmlinuz in their menu.lst
-	ln -sfn . ${INSTALL_ROOT}/boot/boot
+	ln -sfn . ${INSTALL_ROOT}/boot/boot &&
+	install -vm 0755 -o root -g root ${SPELL_DIRECTORY}/installkernel ${INSTALL_ROOT}/sbin/ &&
+	install -vm 0755 -o root -g root ${SPELL_DIRECTORY}/mkinitrd ${INSTALL_ROOT}/sbin/
 fi &&
 ln -sfn `basename ${LINUX_SOURCE_DIRECTORY}` ${BUILD_DIRECTORY}/linux 
diff --git a/kernels/linux/mkinitrd b/kernels/linux/mkinitrd
new file mode 100755
index 0000000..74d1761
--- /dev/null
+++ b/kernels/linux/mkinitrd
@@ -0,0 +1,682 @@
+#!/bin/bash
+
+FORCE_RAID=${FORCE_RAID:=false}
+FORCE_LVM=${FORCE_LVM:=false}
+USE_RAID=${USE_RAID:=false}
+USE_LVM=${USE_LVM:=false}
+BREAK_ON_MISSING=${BREAK_ON_MISSING:=true}
+REMOVE_OLD_INITRD=${REMOVE_OLD_INITRD:=false}
+
+MODULES=${MODULES:=}
+KVERSION=$(uname -r)
+INITRD_FILE=${INITRD_FILE:=/boot/initrd.img-$KVERSION}
+
+function usage()
+{
+	local usage=<<EOF
+	$0 [OPTIONS] -o <initrdfile> <kernel-version>
+EOF
+	echo $usage
+}
+
+function linuxrc_pre()
+{
+	cat <<-EOF
+#!/bin/sh.shared
+
+for module in \`cat /modules.lst\`
+do
+/sbin/insmod \$module
+done
+EOF
+}
+
+function linuxrc_raid()
+{
+	if $USE_RAID || $FORCE_RAID
+	then
+	cat <<-EOF
+/sbin/mdadm --assemble --scan
+EOF
+	fi
+}
+
+function linuxrc_lvm()
+{
+	if $USE_LVM || $FORCE_LVM
+	then
+	cat <<-EOF
+/sbin/dmsetup mknodes
+/sbin/vgscan --ignorelockingfailure --mknodes
+/sbin/vgchange -ay --ignorelockingfailure
+EOF
+	fi
+}
+
+function linuxrc_post()
+{
+	cat <<-EOF
+exec /bin/kinit "\$@"
+EOF
+}
+
+function default_parts()
+{
+	cat <<-EOF
+dir /dev 0755 0 0
+nod /dev/console 0600 0 0 c 5 1
+dir /root 0700 0 0
+slink /init linuxrc 0755 0 0
+file /linuxrc /tmp/linuxrc 0755 0 0
+EOF
+}
+
+function dir_parts()
+{
+	cat <<-EOF
+slink /sbin bin 0755 0 0
+dir /bin 0755 0 0
+dir /lib 0755 0 0
+dir /proc 0755 0 0
+dir /sys 0755 0 0
+dir /etc 0755 0 0
+dir /modules 0755 0 0
+EOF
+}
+
+function dev_parts()
+{
+	cat <<-EOF
+nod /dev/sda 660 0 6 b 8 0
+nod /dev/sda1 660 0 6 b 8 1
+nod /dev/sda10 660 0 6 b 8 10
+nod /dev/sda11 660 0 6 b 8 11
+nod /dev/sda12 660 0 6 b 8 12
+nod /dev/sda13 660 0 6 b 8 13
+nod /dev/sda14 660 0 6 b 8 14
+nod /dev/sda15 660 0 6 b 8 15
+nod /dev/sda2 660 0 6 b 8 2
+nod /dev/sda3 660 0 6 b 8 3
+nod /dev/sda4 660 0 6 b 8 4
+nod /dev/sda5 660 0 6 b 8 5
+nod /dev/sda6 660 0 6 b 8 6
+nod /dev/sda7 660 0 6 b 8 7
+nod /dev/sda8 660 0 6 b 8 8
+nod /dev/sda9 660 0 6 b 8 9
+nod /dev/sdb 660 0 6 b 8 16
+nod /dev/sdb1 660 0 6 b 8 17
+nod /dev/sdb10 660 0 6 b 8 26
+nod /dev/sdb11 660 0 6 b 8 27
+nod /dev/sdb12 660 0 6 b 8 28
+nod /dev/sdb13 660 0 6 b 8 29
+nod /dev/sdb14 660 0 6 b 8 30
+nod /dev/sdb15 660 0 6 b 8 31
+nod /dev/sdb2 660 0 6 b 8 18
+nod /dev/sdb3 660 0 6 b 8 19
+nod /dev/sdb4 660 0 6 b 8 20
+nod /dev/sdb5 660 0 6 b 8 21
+nod /dev/sdb6 660 0 6 b 8 22
+nod /dev/sdb7 660 0 6 b 8 23
+nod /dev/sdb8 660 0 6 b 8 24
+nod /dev/sdb9 660 0 6 b 8 25
+nod /dev/sdc 660 0 6 b 8 32
+nod /dev/sdc1 660 0 6 b 8 33
+nod /dev/sdc10 660 0 6 b 8 42
+nod /dev/sdc11 660 0 6 b 8 43
+nod /dev/sdc12 660 0 6 b 8 44
+nod /dev/sdc13 660 0 6 b 8 45
+nod /dev/sdc14 660 0 6 b 8 46
+nod /dev/sdc15 660 0 6 b 8 47
+nod /dev/sdc2 660 0 6 b 8 34
+nod /dev/sdc3 660 0 6 b 8 35
+nod /dev/sdc4 660 0 6 b 8 36
+nod /dev/sdc5 660 0 6 b 8 37
+nod /dev/sdc6 660 0 6 b 8 38
+nod /dev/sdc7 660 0 6 b 8 39
+nod /dev/sdc8 660 0 6 b 8 40
+nod /dev/sdc9 660 0 6 b 8 41
+nod /dev/sdd 660 0 6 b 8 48
+nod /dev/sdd1 660 0 6 b 8 49
+nod /dev/sdd10 660 0 6 b 8 58
+nod /dev/sdd11 660 0 6 b 8 59
+nod /dev/sdd12 660 0 6 b 8 60
+nod /dev/sdd13 660 0 6 b 8 61
+nod /dev/sdd14 660 0 6 b 8 62
+nod /dev/sdd15 660 0 6 b 8 63
+nod /dev/sdd2 660 0 6 b 8 50
+nod /dev/sdd3 660 0 6 b 8 51
+nod /dev/sdd4 660 0 6 b 8 52
+nod /dev/sdd5 660 0 6 b 8 53
+nod /dev/sdd6 660 0 6 b 8 54
+nod /dev/sdd7 660 0 6 b 8 55
+nod /dev/sdd8 660 0 6 b 8 56
+nod /dev/sdd9 660 0 6 b 8 57
+nod /dev/sde 660 0 6 b 8 64
+nod /dev/sde1 660 0 6 b 8 65
+nod /dev/sde10 660 0 6 b 8 74
+nod /dev/sde11 660 0 6 b 8 75
+nod /dev/sde12 660 0 6 b 8 76
+nod /dev/sde13 660 0 6 b 8 77
+nod /dev/sde14 660 0 6 b 8 78
+nod /dev/sde15 660 0 6 b 8 79
+nod /dev/sde2 660 0 6 b 8 66
+nod /dev/sde3 660 0 6 b 8 67
+nod /dev/sde4 660 0 6 b 8 68
+nod /dev/sde5 660 0 6 b 8 69
+nod /dev/sde6 660 0 6 b 8 70
+nod /dev/sde7 660 0 6 b 8 71
+nod /dev/sde8 660 0 6 b 8 72
+nod /dev/sde9 660 0 6 b 8 73
+nod /dev/sdf 660 0 6 b 8 80
+nod /dev/sdf1 660 0 6 b 8 81
+nod /dev/sdf10 660 0 6 b 8 90
+nod /dev/sdf11 660 0 6 b 8 91
+nod /dev/sdf12 660 0 6 b 8 92
+nod /dev/sdf13 660 0 6 b 8 93
+nod /dev/sdf14 660 0 6 b 8 94
+nod /dev/sdf15 660 0 6 b 8 95
+nod /dev/sdf2 660 0 6 b 8 82
+nod /dev/sdf3 660 0 6 b 8 83
+nod /dev/sdf4 660 0 6 b 8 84
+nod /dev/sdf5 660 0 6 b 8 85
+nod /dev/sdf6 660 0 6 b 8 86
+nod /dev/sdf7 660 0 6 b 8 87
+nod /dev/sdf8 660 0 6 b 8 88
+nod /dev/sdf9 660 0 6 b 8 89
+nod /dev/sdh 660 0 6 b 8 112
+nod /dev/sdh1 660 0 6 b 8 113
+nod /dev/sdh10 660 0 6 b 8 122
+nod /dev/sdh11 660 0 6 b 8 123
+nod /dev/sdh12 660 0 6 b 8 124
+nod /dev/sdh13 660 0 6 b 8 125
+nod /dev/sdh14 660 0 6 b 8 126
+nod /dev/sdh15 660 0 6 b 8 127
+nod /dev/sdh2 660 0 6 b 8 114
+nod /dev/sdh3 660 0 6 b 8 115
+nod /dev/sdh4 660 0 6 b 8 116
+nod /dev/sdh5 660 0 6 b 8 117
+nod /dev/sdh6 660 0 6 b 8 118
+nod /dev/sdh7 660 0 6 b 8 119
+nod /dev/sdh8 660 0 6 b 8 120
+nod /dev/sdh9 660 0 6 b 8 121
+nod /dev/sdi 660 0 6 b 8 128
+nod /dev/sdi1 660 0 6 b 8 129
+nod /dev/sdi10 660 0 6 b 8 138
+nod /dev/sdi11 660 0 6 b 8 139
+nod /dev/sdi12 660 0 6 b 8 140
+nod /dev/sdi13 660 0 6 b 8 141
+nod /dev/sdi14 660 0 6 b 8 142
+nod /dev/sdi15 660 0 6 b 8 143
+nod /dev/sdi2 660 0 6 b 8 130
+nod /dev/sdi3 660 0 6 b 8 131
+nod /dev/sdi4 660 0 6 b 8 132
+nod /dev/sdi5 660 0 6 b 8 133
+nod /dev/sdi6 660 0 6 b 8 134
+nod /dev/sdi7 660 0 6 b 8 135
+nod /dev/sdi8 660 0 6 b 8 136
+nod /dev/sdi9 660 0 6 b 8 137
+nod /dev/sdj 660 0 6 b 8 144
+nod /dev/sdj1 660 0 6 b 8 145
+nod /dev/sdj10 660 0 6 b 8 154
+nod /dev/sdj11 660 0 6 b 8 155
+nod /dev/sdj12 660 0 6 b 8 156
+nod /dev/sdj13 660 0 6 b 8 157
+nod /dev/sdj14 660 0 6 b 8 158
+nod /dev/sdj15 660 0 6 b 8 159
+nod /dev/sdj2 660 0 6 b 8 146
+nod /dev/sdj3 660 0 6 b 8 147
+nod /dev/sdj4 660 0 6 b 8 148
+nod /dev/sdj5 660 0 6 b 8 149
+nod /dev/sdj6 660 0 6 b 8 150
+nod /dev/sdj7 660 0 6 b 8 151
+nod /dev/sdj8 660 0 6 b 8 152
+nod /dev/sdj9 660 0 6 b 8 153
+nod /dev/sdk 660 0 6 b 8 160
+nod /dev/sdk1 660 0 6 b 8 161
+nod /dev/sdk10 660 0 6 b 8 170
+nod /dev/sdk11 660 0 6 b 8 171
+nod /dev/sdk12 660 0 6 b 8 172
+nod /dev/sdk13 660 0 6 b 8 173
+nod /dev/sdk14 660 0 6 b 8 174
+nod /dev/sdk15 660 0 6 b 8 175
+nod /dev/sdk2 660 0 6 b 8 162
+nod /dev/sdk3 660 0 6 b 8 163
+nod /dev/sdk4 660 0 6 b 8 164
+nod /dev/sdk5 660 0 6 b 8 165
+nod /dev/sdk6 660 0 6 b 8 166
+nod /dev/sdk7 660 0 6 b 8 167
+nod /dev/sdk8 660 0 6 b 8 168
+nod /dev/sdk9 660 0 6 b 8 169
+nod /dev/sdl 660 0 6 b 8 176
+nod /dev/sdl1 660 0 6 b 8 177
+nod /dev/sdl10 660 0 6 b 8 186
+nod /dev/sdl11 660 0 6 b 8 187
+nod /dev/sdl12 660 0 6 b 8 188
+nod /dev/sdl13 660 0 6 b 8 189
+nod /dev/sdl14 660 0 6 b 8 190
+nod /dev/sdl15 660 0 6 b 8 191
+nod /dev/sdl2 660 0 6 b 8 178
+nod /dev/sdl3 660 0 6 b 8 179
+nod /dev/sdl4 660 0 6 b 8 180
+nod /dev/sdl5 660 0 6 b 8 181
+nod /dev/sdl6 660 0 6 b 8 182
+nod /dev/sdl7 660 0 6 b 8 183
+nod /dev/sdl8 660 0 6 b 8 184
+nod /dev/sdl9 660 0 6 b 8 185
+nod /dev/hda 660 0 6 b 3 0
+nod /dev/hda1 660 0 6 b 3 1
+nod /dev/hda10 660 0 6 b 3 10
+nod /dev/hda11 660 0 6 b 3 11
+nod /dev/hda12 660 0 6 b 3 12
+nod /dev/hda13 660 0 6 b 3 13
+nod /dev/hda14 660 0 6 b 3 14
+nod /dev/hda15 660 0 6 b 3 15
+nod /dev/hda16 660 0 6 b 3 16
+nod /dev/hda17 660 0 6 b 3 17
+nod /dev/hda18 660 0 6 b 3 18
+nod /dev/hda19 660 0 6 b 3 19
+nod /dev/hda2 660 0 6 b 3 2
+nod /dev/hda20 660 0 6 b 3 20
+nod /dev/hda3 660 0 6 b 3 3
+nod /dev/hda4 660 0 6 b 3 4
+nod /dev/hda5 660 0 6 b 3 5
+nod /dev/hda6 660 0 6 b 3 6
+nod /dev/hda7 660 0 6 b 3 7
+nod /dev/hda8 660 0 6 b 3 8
+nod /dev/hda9 660 0 6 b 3 9
+nod /dev/hdb 660 0 6 b 3 64
+nod /dev/hdb1 660 0 6 b 3 65
+nod /dev/hdb10 660 0 6 b 3 74
+nod /dev/hdb11 660 0 6 b 3 75
+nod /dev/hdb12 660 0 6 b 3 76
+nod /dev/hdb13 660 0 6 b 3 77
+nod /dev/hdb14 660 0 6 b 3 78
+nod /dev/hdb15 660 0 6 b 3 79
+nod /dev/hdb16 660 0 6 b 3 80
+nod /dev/hdb17 660 0 6 b 3 81
+nod /dev/hdb18 660 0 6 b 3 82
+nod /dev/hdb19 660 0 6 b 3 83
+nod /dev/hdb2 660 0 6 b 3 66
+nod /dev/hdb20 660 0 6 b 3 84
+nod /dev/hdb3 660 0 6 b 3 67
+nod /dev/hdb4 660 0 6 b 3 68
+nod /dev/hdb5 660 0 6 b 3 69
+nod /dev/hdb6 660 0 6 b 3 70
+nod /dev/hdb7 660 0 6 b 3 71
+nod /dev/hdb8 660 0 6 b 3 72
+nod /dev/hdb9 660 0 6 b 3 73
+nod /dev/hdc 660 0 6 b 22 0
+nod /dev/hdc1 660 0 6 b 22 1
+nod /dev/hdc10 660 0 6 b 22 10
+nod /dev/hdc11 660 0 6 b 22 11
+nod /dev/hdc12 660 0 6 b 22 12
+nod /dev/hdc13 660 0 6 b 22 13
+nod /dev/hdc14 660 0 6 b 22 14
+nod /dev/hdc15 660 0 6 b 22 15
+nod /dev/hdc16 660 0 6 b 22 16
+nod /dev/hdc17 660 0 6 b 22 17
+nod /dev/hdc18 660 0 6 b 22 18
+nod /dev/hdc19 660 0 6 b 22 19
+nod /dev/hdc2 660 0 6 b 22 2
+nod /dev/hdc20 660 0 6 b 22 20
+nod /dev/hdc3 660 0 6 b 22 3
+nod /dev/hdc4 660 0 6 b 22 4
+nod /dev/hdc5 660 0 6 b 22 5
+nod /dev/hdc6 660 0 6 b 22 6
+nod /dev/hdc7 660 0 6 b 22 7
+nod /dev/hdc8 660 0 6 b 22 8
+nod /dev/hdc9 660 0 6 b 22 9
+nod /dev/hdd 660 0 6 b 22 64
+nod /dev/hdd1 660 0 6 b 22 65
+nod /dev/hdd10 660 0 6 b 22 74
+nod /dev/hdd11 660 0 6 b 22 75
+nod /dev/hdd12 660 0 6 b 22 76
+nod /dev/hdd13 660 0 6 b 22 77
+nod /dev/hdd14 660 0 6 b 22 78
+nod /dev/hdd15 660 0 6 b 22 79
+nod /dev/hdd16 660 0 6 b 22 80
+nod /dev/hdd17 660 0 6 b 22 81
+nod /dev/hdd18 660 0 6 b 22 82
+nod /dev/hdd19 660 0 6 b 22 83
+nod /dev/hdd2 660 0 6 b 22 66
+nod /dev/hdd20 660 0 6 b 22 84
+nod /dev/hdd3 660 0 6 b 22 67
+nod /dev/hdd4 660 0 6 b 22 68
+nod /dev/hdd5 660 0 6 b 22 69
+nod /dev/hdd6 660 0 6 b 22 70
+nod /dev/hdd7 660 0 6 b 22 71
+nod /dev/hdd8 660 0 6 b 22 72
+nod /dev/hdd9 660 0 6 b 22 73
+nod /dev/hde 660 0 6 b 33 0
+nod /dev/hde1 660 0 6 b 33 1
+nod /dev/hde10 660 0 6 b 33 10
+nod /dev/hde11 660 0 6 b 33 11
+nod /dev/hde12 660 0 6 b 33 12
+nod /dev/hde13 660 0 6 b 33 13
+nod /dev/hde14 660 0 6 b 33 14
+nod /dev/hde15 660 0 6 b 33 15
+nod /dev/hde16 660 0 6 b 33 16
+nod /dev/hde17 660 0 6 b 33 17
+nod /dev/hde18 660 0 6 b 33 18
+nod /dev/hde19 660 0 6 b 33 19
+nod /dev/hde2 660 0 6 b 33 2
+nod /dev/hde20 660 0 6 b 33 20
+nod /dev/hde3 660 0 6 b 33 3
+nod /dev/hde4 660 0 6 b 33 4
+nod /dev/hde5 660 0 6 b 33 5
+nod /dev/hde6 660 0 6 b 33 6
+nod /dev/hde7 660 0 6 b 33 7
+nod /dev/hde8 660 0 6 b 33 8
+nod /dev/hde9 660 0 6 b 33 9
+nod /dev/hdf 660 0 6 b 33 64
+nod /dev/hdf1 660 0 6 b 33 65
+nod /dev/hdf10 660 0 6 b 33 74
+nod /dev/hdf11 660 0 6 b 33 75
+nod /dev/hdf12 660 0 6 b 33 76
+nod /dev/hdf13 660 0 6 b 33 77
+nod /dev/hdf14 660 0 6 b 33 78
+nod /dev/hdf15 660 0 6 b 33 79
+nod /dev/hdf16 660 0 6 b 33 80
+nod /dev/hdf17 660 0 6 b 33 81
+nod /dev/hdf18 660 0 6 b 33 82
+nod /dev/hdf19 660 0 6 b 33 83
+nod /dev/hdf2 660 0 6 b 33 66
+nod /dev/hdf20 660 0 6 b 33 84
+nod /dev/hdf3 660 0 6 b 33 67
+nod /dev/hdf4 660 0 6 b 33 68
+nod /dev/hdf5 660 0 6 b 33 69
+nod /dev/hdf6 660 0 6 b 33 70
+nod /dev/hdf7 660 0 6 b 33 71
+nod /dev/hdf8 660 0 6 b 33 72
+nod /dev/hdf9 660 0 6 b 33 73
+nod /dev/hdg 660 0 6 b 34 0
+nod /dev/hdg1 660 0 6 b 34 1
+nod /dev/hdg10 660 0 6 b 34 10
+nod /dev/hdg11 660 0 6 b 34 11
+nod /dev/hdg12 660 0 6 b 34 12
+nod /dev/hdg13 660 0 6 b 34 13
+nod /dev/hdg14 660 0 6 b 34 14
+nod /dev/hdg15 660 0 6 b 34 15
+nod /dev/hdg16 660 0 6 b 34 16
+nod /dev/hdg17 660 0 6 b 34 17
+nod /dev/hdg18 660 0 6 b 34 18
+nod /dev/hdg19 660 0 6 b 34 19
+nod /dev/hdg2 660 0 6 b 34 2
+nod /dev/hdg20 660 0 6 b 34 20
+nod /dev/hdg3 660 0 6 b 34 3
+nod /dev/hdg4 660 0 6 b 34 4
+nod /dev/hdg5 660 0 6 b 34 5
+nod /dev/hdg6 660 0 6 b 34 6
+nod /dev/hdg7 660 0 6 b 34 7
+nod /dev/hdg8 660 0 6 b 34 8
+nod /dev/hdg9 660 0 6 b 34 9
+nod /dev/hdh 660 0 6 b 34 64
+nod /dev/hdh1 660 0 6 b 34 65
+nod /dev/hdh10 660 0 6 b 34 74
+nod /dev/hdh11 660 0 6 b 34 75
+nod /dev/hdh12 660 0 6 b 34 76
+nod /dev/hdh13 660 0 6 b 34 77
+nod /dev/hdh14 660 0 6 b 34 78
+nod /dev/hdh15 660 0 6 b 34 79
+nod /dev/hdh16 660 0 6 b 34 80
+nod /dev/hdh17 660 0 6 b 34 81
+nod /dev/hdh18 660 0 6 b 34 82
+nod /dev/hdh19 660 0 6 b 34 83
+nod /dev/hdh2 660 0 6 b 34 66
+nod /dev/hdh20 660 0 6 b 34 84
+nod /dev/hdh3 660 0 6 b 34 67
+nod /dev/hdh4 660 0 6 b 34 68
+nod /dev/hdh5 660 0 6 b 34 69
+nod /dev/hdh6 660 0 6 b 34 70
+nod /dev/hdh7 660 0 6 b 34 71
+nod /dev/hdh8 660 0 6 b 34 72
+nod /dev/hdh9 660 0 6 b 34 73
+nod /dev/loop0 660 0 6 b 7 0
+nod /dev/loop1 660 0 6 b 7 1
+nod /dev/loop10 660 0 6 b 7 10
+nod /dev/loop11 660 0 6 b 7 11
+nod /dev/loop12 660 0 6 b 7 12
+nod /dev/loop13 660 0 6 b 7 13
+nod /dev/loop14 660 0 6 b 7 14
+nod /dev/loop15 660 0 6 b 7 15
+nod /dev/loop2 660 0 6 b 7 2
+nod /dev/loop3 660 0 6 b 7 3
+nod /dev/loop4 660 0 6 b 7 4
+nod /dev/loop5 660 0 6 b 7 5
+nod /dev/loop6 660 0 6 b 7 6
+nod /dev/loop7 660 0 6 b 7 7
+nod /dev/loop8 660 0 6 b 7 8
+nod /dev/loop9 660 0 6 b 7 9
+nod /dev/ram0 660 0 6 b 1 0
+nod /dev/ram1 660 0 6 b 1 1
+nod /dev/ram2 660 0 6 b 1 2
+nod /dev/ram3 660 0 6 b 1 3
+EOF
+}
+
+function module_parts()
+{
+	local module
+	local full_path_module
+	rm -f /tmp/modules.lst
+	touch /tmp/modules.lst
+	echo "file /modules.lst /tmp/modules.lst 0644 0 0"
+	for module in $MODULES
+	do
+		full_path_module=$(find /lib/modules/${KVERSION}/kernel | grep "/$module.ko\|/${module//-/_}.ko\|/${module//_/-}.ko")
+		echo /modules/$(basename $full_path_module) >> /tmp/modules.lst
+		cat <<-EOF
+		file /modules/$(basename $full_path_module) $full_path_module 0644 0 0
+		EOF
+	done
+}
+
+function klibc_parts()
+{
+	local file
+	for file in /usr/lib/klibc/bin/*
+	do
+		echo "file /bin/$(basename $file) $file 0755 0 0"
+	done
+	for file in /usr/lib/klibc/lib/*
+	do
+		echo "file /lib/$(basename $file) $file 0755 0 0"
+	done
+}
+
+function raid_parts()
+{
+	if $USE_RAID || $FORCE_RAID
+	then
+	cat <<-EOF
+file /sbin/mdadm /sbin/mdadm.static 0755 0 0
+file /etc/mdadm.conf /etc/mdadm.conf 0644 0 0
+EOF
+	fi
+}
+
+function lvm_parts()
+{
+	if $USE_LVM || $FORCE_LVM
+	then
+	cat <<-EOF
+dir /etc/lvm 0755 0 0
+file /etc/lvm/lvm.conf /etc/lvm/lvm.conf 0644 0 0
+file /sbin/lvm /usr/sbin/lvm.static 0755 0 0
+EOF
+	local link
+	for link in lvs pvs vgs vgck lvconvert lvdisplay pvchange pvcreate \
+		vgmknodes pvremove pvresize lvmchange lvmdump lvmsadc \
+		vgcfgrestore lvmdiskscan pvdisplay lvmsar lvscan vgchange \
+		vgcreate pvmove pvscan vgexport vgextend vgimport vgscan \
+		vgmerge vgsplit lvchange lvcreate lvextend vgreduce vgrename \
+		vgremove vgconvert vgcfgbackup lvreduce lvrename lvremove \
+		lvresize vgdisplay 
+	do
+		echo "slink /sbin/$link lvm 0755 0 0"
+	done
+	echo "file /sbin/dmsetup /sbin/dmsetup.static 0755 0 0"
+	fi
+}
+
+function rec_fill_modules()
+{
+	local dep_modules
+	local module=$1
+	local dep_module
+	dep_modules=$(grep "/$module.ko:\|/${module//-/_}.ko:\|/${module//_/-}.ko:" /lib/modules/$KVERSION/modules.dep)
+	if [[ -z $dep_modules ]]
+	then
+		echo "# Bahh!!! couldn't find dependent module $module"
+		if $BREAK_ON_MISSING
+		then
+			exit -1
+		else
+			return 0
+		fi
+	fi
+	dep_modules=$(echo $dep_modules | cut -d: -f2-)
+	if ! echo $MODULES | grep -q " $module"
+	then
+		if [[ $dep_modules ]]
+		then
+			for dep_module in $dep_modules
+			do
+				dep_module=$(basename $dep_module)
+				rec_fill_modules ${dep_module/.ko}
+			done
+		fi
+		MODULES="${MODULES} $module"
+	fi
+}
+
+function fill_root_driver()
+{
+	local module
+	# there should be a better way to 'detect' what this is but...
+	for module in `cat /etc/modules`
+	do
+		if ! echo $MODULES | grep -q " $module"
+		then
+			rec_fill_modules ${module}
+		fi
+	done
+}
+
+function fill_root_filesystem()
+{
+	local filesystem=$(mount | grep ' / ' | tail -n 1 | cut -d' ' -f5)
+	rec_fill_modules $filesystem
+}
+
+function fill_modules()
+{
+	if $USE_RAID || $FORCE_RAID
+	then
+		rec_fill_modules raid0
+		rec_fill_modules raid1
+		rec_fill_modules raid10
+		rec_fill_modules raid5
+		rec_fill_modules raid6
+		rec_fill_modules raid456
+	fi
+	if $USE_LVM || $FORCE_LVM
+	then
+		rec_fill_modules dm-mod
+	fi
+	fill_root_driver
+	fill_root_filesystem
+}
+
+function check_raid()
+{
+	if [[ -f /etc/mdadm.conf && -x /sbin/mdadm.static ]]
+	then
+		USE_RAID=true
+	else
+		USE_RAID=false
+	fi
+}
+
+function check_lvm()
+{
+	if [[ -f /etc/lvm/lvm.conf && -x /usr/sbin/lvm.static && -x /sbin/dmsetup.static ]]
+	then
+		USE_LVM=true
+	else
+		USE_LVM=false
+	fi
+}
+
+while [[ $1 ]]
+do
+	case $1 in
+		-v|--version)
+			echo "Source Mage GNU/Linux mkinitrd v0.1"
+			usage
+			exit 0
+		;;
+		--enable-raid)
+			FORCE_RAID=true
+		;;
+		--enable-lvm)
+			FORCE_LVM=true
+		;;
+		--disable-raid)
+			FORCE_RAID=false
+		;;
+		--disable-lvm)
+			FORCE_LVM=false
+		;;
+		-f|--force)
+			REMOVE_OLD_INITRD=true
+		;;
+		--ignore-missing)
+			BREAK_ON_MISSING=false
+		;;
+		-m|--with-module)
+			MODULES="${MODULES} ${2}"
+			shift
+		;;
+		-o|--output)
+			INITRD_FILE="${2}"
+			shift
+		;;
+		2.[46]*)
+			KVERSION=$1
+		;;
+		*)
+			echo "Caught a second option that looks like the file"
+			usage
+			exit 1
+		;;
+
+	esac &&
+	shift
+done
+
+check_raid
+check_lvm
+fill_modules
+(
+	default_parts
+#	dev_parts
+	dir_parts
+	module_parts
+	klibc_parts
+	raid_parts
+	lvm_parts	
+) > /tmp/initrd.lst
+(
+	linuxrc_pre
+	linuxrc_raid
+	linuxrc_lvm
+	linuxrc_post
+) > /tmp/linuxrc
+if ! [[ -x /lib/modules/$KVERSION/build/usr/gen_init_cpio ]]
+then
+  echo "Bah!!! can't find the gen_init_cpio file is your kernel built?"
+  usage
+  exit -1
+fi
+/lib/modules/$KVERSION/build/usr/gen_init_cpio /tmp/initrd.lst | gzip -c > $INITRD_FILE



More information about the SM-Commit mailing list