blob: 1ed4445a50f168e0da12e61add2330ff61e4aa9d (
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
#!/bin/sh
#set -e
# initramfs-tools header
PREREQ=""
prereqs()
{
echo "${PREREQ}"
}
case "${1}" in
prereqs)
prereqs
exit 0
;;
esac
# live-initramfs header
. /scripts/live-functions
log_begin_msg "Setting up init..."
# live-initramfs script
# Arrange for shells on virtual consoles, rather than login prompts
if [ -z "${NOAUTOLOGIN}" ]
then
if [ -n "$USERNAME" ]
then
if [ ! -z "${LIVE_GETTY}" ]
then
if echo "${DEFCONSOLE}" | grep -qs ttyS
then
# AUTOMATIC SERIAL CONSOLE #
PORT=$(echo "${DEFCONSOLE}" | \
sed -e 's%,.*%%')
SPEED=$(echo "${DEFCONSOLE}" | \
sed -e 's%ttyS[0-9]\+,%%' \
-e's%\([0-9]\+\).*%\1%')
if ! ( sed -n -e'/^[^#]/p' /root/etc/inittab | grep -qs ":respawn:/sbin/getty.*${PORT}" )
then
IDs="A B C D E F G H I J K L M N O P Q R S T Q U V V X Y Z 0 1 2 3 4 5 6 7 8 9"
for ID1 in $IDs
do
for ID2 in $IDs
do
ID="${ID1}${ID2}"
if ! grep "^${ID}:" /etc/inittab
then
#make sure it is not already in use
break 2
fi
done
done
echo "${ID}:2345:respawn:/sbin/live-getty -L ${PORT} ${SPEED} vt100" >> /root/etc/inittab
fi
fi
if [ -f /root/etc/inittab ]
then
sed -i -e'/^[^#]/s%respawn:/sbin/getty%respawn:/sbin/live-getty%' /root/etc/inittab
fi
else
if [ -f /root/etc/inittab ]
then
sed -i -e "s|^\([^:]*:[^:]*:[^:]*\):.*getty.*\<\(tty[0-9]*\).*$|\1:/bin/login -f $USERNAME </dev/\2 >/dev/\2 2>\&1|" /root/etc/inittab
fi
if [ "/root/etc/event.d/tty*" != "$(echo /root/etc/event.d/tty*)" ]
then
for f in /root/etc/event.d/tty*
do
sed -i -e "s|^respawn.*|respawn /bin/login -f $USERNAME </dev/$(basename $f) > /dev/$(basename $f) 2>\&1|" $f
done
if [ "${BUILD_SYSTEM}" = "Ubuntu" ]
then
for x in $(cat /proc/cmdline)
do
case $x in
noninteractive)
sed -i -e "s|^exec.*|exec /usr/bin/ubiquity noninteractive </dev/tty1 > /dev/tty1 2>\&1|" /root/etc/event.d/tty1
rm -f /root/etc/rc?.d/[SK]??gdm
rm -f /root/etc/rc?.d/[SK]??kdm
;;
esac
done
fi
fi
fi
# Since we use autologin, lastlog doesn't make sense on the console.
sed -i '/^[^#].*pam_lastlog\.so/s/^/# /' /root/etc/pam.d/login
fi
fi
# do not try to remove files if using file-rc
if [ -d /etc/rc0.d ]
then
# This has the nice side effect of the cron.{daily,weekly,monthly} jobs in
# /etc/crontab remaining disabled, yet also not run by anacron
if [ -x /root/etc/init.d/anacron ]
then
for f in /root/etc/rc?.d/S??anacron
do
mv ${f} ${f%/*}/K00anacron
done
fi
# No point, really
rm -f /root/etc/rc?.d/[SK]??postfix
# Avoid clobbering the user's clock
rm -f /root/etc/rc?.d/K??hwclock.sh
fi
# Disable readahead since it doesn't play well with squashfs + unionfs
# use chmod instead of mv to not trigger unionfs bugs.
if [ -e /root/sbin/readahead-list ]
then
chmod -x /root/sbin/readahead-list
fi
log_end_msg
exit 0
|