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
136
137
138
|
#!/bin/sh
TMP=/var/log/setup/tmp
if [ ! -d $TMP ]; then
mkdir -p $TMP
fi
T_PX="`cat $TMP/SeTT_PX`"
ROOT_DEVICE="`cat $TMP/SeTrootdev`"
if [ ! -d $T_PX/bin -a ! -d $T_PX/etc ]; then # if there no Linux here, exit
exit
fi
# Check for disk full error:
. /usr/lib/setup/SeTfull
# These next lines are intended to clean up any permissions
# problems that could be caused by a bad package. We don't
# intend to make any bad packages here, but it never hurts
# to be safe. :^)
( cd $T_PX ; chmod 755 ./ )
( cd $T_PX ; chmod 755 ./var )
if [ -d $T_PX/usr/src/linux ]; then
chmod 755 $T_PX/usr/src/linux
fi
if [ ! -d $T_PX/proc ]; then
mkdir $T_PX/proc
chown root.root $T_PX/proc
fi
if [ ! -d $T_PX/sys ]; then
mkdir $T_PX/sys
chown root.root $T_PX/sys
fi
chmod 1777 $T_PX/tmp
if [ ! -d $T_PX/var/spool/mail ]; then
mkdir -p $T_PX/var/spool/mail
chmod 755 $T_PX/var/spool
chown root.mail $T_PX/var/spool/mail
chmod 1777 $T_PX/var/spool/mail
fi
# Some of the install scripts need /proc and /sys.
# Some disks will need /dev with module loaded devices.
if [ ! "$T_PX" = "/" ]; then
mount --bind /proc $T_PX/proc 1> /dev/null 2> /dev/null
mount --bind /sys $T_PX/sys 1> /dev/null 2> /dev/null
mount --bind /dev $T_PX/dev 1> /dev/null 2> /dev/null
fi
# These will be left connected rather than unmounting them to
# make it easier to set up LVM/LUKS.
# Load keyboard map (if any) when booting
if [ -r $TMP/SeTkeymap ]; then
MAPNAME="`cat $TMP/SeTkeymap`"
echo "#!/bin/sh" > $T_PX/etc/rc.d/rc.keymap
echo "# Load the keyboard map. More maps are in /usr/share/kbd/keymaps." \
>> $T_PX/etc/rc.d/rc.keymap
echo "if [ -x /usr/bin/loadkeys ]; then" >> $T_PX/etc/rc.d/rc.keymap
echo " /usr/bin/loadkeys $MAPNAME" >> $T_PX/etc/rc.d/rc.keymap
echo "fi" >> $T_PX/etc/rc.d/rc.keymap
chmod 755 $T_PX/etc/rc.d/rc.keymap
fi
# Only ask if we want to skip configuring if we suspect the user should
# skip the step:
if [ -r $T_PX/etc/fstab ]; then
dialog --title "CONFIGURE THE SYSTEM" --yesno "Now we can configure your \
Linux system. If this is a new installation, you MUST configure it now or it \
will not boot correctly. However, if you are just adding software to an \
existing system, you can back out to the main menu and skip this step. \
However (important exception) if you've installed a new kernel image, it's \
important to reconfigure your system so that you can install LILO (the Linux \
loader) or create a bootdisk using the new kernel. You want to CONFIGURE \
your system, right?" 0 0
if [ ! $? = 0 ]; then
exit
fi
else
dialog --title "DONE INSTALLING PACKAGES" --infobox \
"Preparing to configure your new Linux system..." 3 54
sleep 1
fi
# Post installation and setup scripts added by packages.
if [ -d $T_PX/var/log/setup ]; then
# Prepare for LVM in a newly installed system
if [ -r /etc/lvmtab -o -d /etc/lvm/backup ]; then # Available in local root
if [ ! -r $T_PX/etc/lvmtab -a ! -d $T_PX/etc/lvm/backup ]; then
#mount --bind /proc $T_PX/proc
#mount --bind /sys $T_PX/sys
chroot $T_PX /sbin/vgscan --mknodes --ignorelockingfailure 1> /dev/null 2> /dev/null
# First run does not always catch LVM on a LUKS partition:
chroot $T_PX /sbin/vgscan --mknodes --ignorelockingfailure 1> /dev/null 2> /dev/null
fi
fi
for INSTALL_SCRIPTS in $T_PX/var/log/setup/setup.* ; do
SCRIPT=`basename $INSTALL_SCRIPTS`
# Here, we call each script in /var/log/setup. Two arguments are provided:
# 1 -- the target prefix (normally /, but ${T_PX} from the bootdisk)
# 2 -- the name of the root device.
( cd $T_PX
if [ -x var/log/setup/$SCRIPT ]; then
./var/log/setup/$SCRIPT $T_PX $ROOT_DEVICE
fi
)
if echo $SCRIPT | grep onlyonce 1> /dev/null 2> /dev/null; then # only run after first install
if [ ! -d $T_PX/var/log/setup/install ]; then
mkdir $T_PX/var/log/setup/install
fi
mv $INSTALL_SCRIPTS $T_PX/var/log/setup/install
fi
done
fi
# Figure out how to set the /dev/cdrom and/or /dev/dvd symlinks. Everything seems to
# report itself as a DVD-ROM, so don't blame me. Without asking what's what, all we can
# do here is guess. It's a better guess than before, though, as now it takes ide-scsi
# into account. This won't really matter these days (2018), as everything uses udev to
# create /dev, and it makes links like this...
if dmesg | grep "ATAPI CD" 1> /dev/null 2> /dev/null ; then
dmesg | grep "ATAPI CD" | while read device ; do
shortdev=`echo $device | cut -f 1 -d :`
if grep -w "$shortdev=ide-scsi" $T_PX/etc/lilo.conf 1> /dev/null 2> /dev/null ; then
shortdev=sr0
fi
( cd $T_PX/dev
rm -f cdrom dvd
ln -sf /dev/$shortdev cdrom
ln -sf /dev/$shortdev dvd
)
# Rather than keep overwriting the devices, quit keeping only links to the first
# device found. "Real" users will use the actual devices instead of silly links
# anyway. ;-)
break;
done
fi
# Set root password:
/usr/lib/setup/SeTpasswd
|