summaryrefslogtreecommitdiffstats
path: root/rescue/tree/ka/make_initrd
blob: d6f15a951a3ffec34669b77aa38267ddda09f43f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/bash
echo Looking for default kernel
CHROOT=/mnt/disk
IMG=`cat $CHROOT/etc/lilo.conf | grep default | cut -d "=" -f 2`
KERN="x"
INITRD=""
LABEL="x"

modprobe loop

for i in `cat $CHROOT/etc/lilo.conf`; do

	if echo $i | grep image >/dev/null; then
		KERN=$CHROOT`echo $i | cut -d "=" -f 2`
		INITRD=""
		LABEL="x"

	fi

	if echo $i | grep label >/dev/null; then
		LABEL=`echo $i | cut -d "=" -f 2`
	fi

	if echo $i | grep initrd >/dev/null; then
		INITRD=`echo $i | cut -d "=" -f 2`
	fi

	if [ ${LABEL} == ${IMG} ] && [ ! -z ${INITRD} ]; then
		echo "Kernel name is $KERN"
		echo "Initrd name is $INITRD"
		KERN_VERSION=`strings $KERN | grep "^2\.[2.4]"| cut -d " " -f 1`
		if [ -z $KERN_VERSION ]; then
			echo "No kernel version found !"
			read
		fi
       
		chroot $CHROOT mount /proc
	        chroot $CHROOT MAKEDEV loop
	        chroot $CHROOT MAKEDEV fd
	        chroot $CHROOT MAKEDEV hd
	        chroot $CHROOT MAKEDEV sd
	        chroot $CHROOT MAKEDEV md
	        chroot $CHROOT MAKEDEV zero
	        chroot $CHROOT mkinitrd	-f $INITRD $KERN_VERSION
		chroot $CHROOT umount /proc

		exit
	fi
done