blob: 77185b944397554e763b35ed2cf693949dfd40b0 (
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
#!/bin/sh
NC_SLUGIP="192.168.1.77"
NC_TARGIP="192.168.1.100"
if ( [ -f "/.nc" ] ) ; then
if ( [ -z "$RERUN" ] ) ; then
/bin/echo " DEBUG: Starting network console from flash ..."
. /.nc
/bin/echo "Insmod ixp400"
/sbin/insmod ixp400.o
/bin/echo "Insmod ixp425"
/sbin/insmod ixp425_eth.o
/sbin/ifconfig ixp0 $NC_SLUGIP
/bin/echo "Insmod netconsole"
/sbin/insmod netconsole.o target_ipaddr=$NC_TARGIP
/bin/echo "Redirecting output via nc and restarting /linuxrc ..."
export RERUN=1
exec /linuxrc 2>&1 | tee /dev/console | /usr/bin/nc $NC_TARGIP 6666
fi
fi
# **** DO NOT EVEN THINK OF EDITING OR REMOVING THIS FILE ****
# **** UNLESS YOU REALLY KNOW *EXACTLY* WHAT YOU ARE DOING. ****
# Perform prepatory tasks, and determine whether an alternate rootfs is viable.
/bin/mount -t proc proc /proc
/bin/echo "1" > /proc/sys/kernel/panic
if ( ! [ -f /.nodisk ] ) ; then
/bin/echo "Sleeping while waiting for disk..."
cnt=20
while [ $cnt -gt 0 ] ; do
/bin/echo -ne "\r$cnt "
/bin/sleep 1
[ -e /.sda1root -a -f /proc/hdd_sda ] && cnt=0
[ -e /.sdb1root -a -f /proc/hdd_sdb ] && cnt=0
cnt=`expr $cnt - 1`
done
echo
/bin/sleep 5
mounted=
for prefroot in sda1 sdb1 ; do
if [ -z "$mounted" -a -e /.${prefroot}root ] ; then
if /bin/mount -rt ext3 /dev/$prefroot /mnt ; then
if [ -e /mnt/.${prefroot}root -a -x /mnt/bin/init ] ; then
/bin/echo "Root filesystem will be mounted from /dev/$prefroot ..."
mounted=/mnt
else
/bin/umount /mnt
/bin/echo "Can't find valid rootfs on /dev/$prefroot ..."
fi
fi
fi
done
if [ -z "$mounted" ] ; then
/bin/echo "Can't find valid rootfs, using ramdisk ..."
mounted=
fi
/bin/umount /proc
# Pivot to the desired rootfs and run the initial executable.
if [ -n "$mounted" ] ; then
cd $mounted
/bin/echo "Pivoting to external rootfs ..."
/sbin/pivot_root . initrd
if ( [ -z "$RERUN" ] ) ; then
exec /usr/sbin/chroot . /bin/init < /dev/console 1> /dev/console 2> /dev/console
else
exec /usr/sbin/chroot . /bin/init
fi
else
exec /bin/init
fi
/bin/echo "Can't pivot to external rootfs, using ramdisk ..."
else
/bin/echo "Forced boot to internal flash ..."
/bin/echo "(One-time only, clearing forced boot flag file.)"
/bin/rm -f /.nodisk
fi
exec /bin/init
# Last-resort fall-back - this should never be reached.
/bin/sh
|