summaryrefslogtreecommitdiffstats
path: root/source/installer/sources/initrd/usr/lib/setup/SeTconfig
blob: 6731019bb43edda57d392de50425cc27b0ccdd85 (plain) (blame)
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