This commit was manufactured by cvs2svn to create tag
[opensuse:installation-images.git] / data / root / etc / inst_setup
1 #! /bin/sh
2 #
3 yast="$1"
4 shift
5 echo $yast > /tmp/linuxrc_installer_name
6 export YAST2_SSH=false
7 unset SSH_FAILED
8 exec 2>&1
9 stty sane
10 #
11 echo -en \\033c
12 #
13 # linuxrc passes the root directory of the freshly mounted instsys in
14 # the environment variable INSTSYS.
15 #
16 # this script will symlink from the initrd to all files and
17 # directories missing.
18 #
19 # a few files should be restored when installation has completed if we
20 # return to linuxrc.
21 FILES_TO_RESTORE="/etc/ld.so.cache"
22 for file in $FILES_TO_RESTORE
23 do
24     test -e $file && mv $file $file.initrd
25 done
26 #
27
28 echo "integrating the installation system into the ramdisk..."
29 $INSTSYS/usr/bin/conservative_lndir "$INSTSYS" "/"
30
31 echo "integrating the shared objects of the installation system..."
32 ldconfig
33
34 if test -x /sbin/syslogd
35 then
36     checkproc /sbin/syslogd || {
37         echo "starting syslog (messages are logged to /dev/tty4)..."
38         /sbin/syslogd
39     }
40 fi
41
42 if test -x /sbin/klogd
43 then
44     checkproc /sbin/klogd || {
45         echo "starting klogd ..."
46         /sbin/klogd -f /dev/null -c 1
47 }
48 fi
49
50 arch=$(uname -m)
51
52 case "$arch" in
53   i?86)
54     # remove modules to free memory
55     if [ "$REMOVE_MODULES" = 1 ] ; then
56       rm -f /modules/*
57     fi
58   ;;
59 esac
60
61 # create a new modules.dep
62 #
63 # modules from initrd (in /modules) are preferred over those from CD (below
64 # /lib/modules)
65 #
66 rm -f /etc/modules.conf
67 cp "$INSTSYS/etc/modules.conf" /etc
68 cat >>/etc/modules.conf <<EOF
69 path=/modules
70 path=/lib/modules/`uname -r`
71 depfile=/etc/modules.dep
72 generic_stringfile=/etc/modules.generic_string
73 pcimapfile=/etc/modules.pcimap
74 isapnpmapfile=/etc/modules.isapnpmap
75 usbmapfile=/etc/modules.usbmap
76 parportmapfile=/etc/modules.parportmap
77 ieee1394mapfile=/etc/modules.ieee1394map
78 pnpbiosmapfile=/etc/modules.pnpbiosmap
79 EOF
80
81 echo "integrating kernel modules of the installation system..."
82 depmod -a 2>/dev/null
83
84 # exists only on s390
85 test -r /etc/netsetup.inf && cat /etc/netsetup.inf >> /etc/install.inf
86
87 # boot with usessh=1 or use linuxrc to enable ssh 
88 if grep -q "^UseSSH:.*1" /etc/install.inf ; then
89         test -x /sbin/inst_setup_ssh  &&  . /sbin/inst_setup_ssh
90 fi
91
92 # for yast debugging.
93 grep -iwq y2debug < /proc/cmdline && {
94 export Y2DEBUG=1
95 export Y2MAXLOGSIZE=50000
96 export Y2MAXLOGNUM=5
97 test -d $INSTSYS/root/.yast2 && cp -a $INSTSYS/root/.yast2 /root
98 }
99
100
101 # yast1 doesn't like it
102 rm -f /etc/fstab
103
104 # start shell, useful on iSeries or via serial console
105 grep -qwi start_shell /proc/cmdline && {
106 echo 
107 echo "ATTENTION"
108 echo "Starting shell... (use 'exit' to proceed)"
109 bash --init-file /root/.bash_login
110 }
111
112 ec=
113 if [ "$YAST2_SSH" = "true" ] ; then
114 cat <<EOF
115
116            *** login via ssh: root@`hostname` ***
117       *** run '$yast' to start the installation ***
118
119 EOF
120 while true ; do
121 #echo -n .
122 sleep 3
123 # this file is created from YaST2.firstboot after installation
124 test ! -f /tmp/YaST2_ssh_installation_finished && continue
125 # you can touch this file to keep the ssh shell
126 # useful for debugging the installer
127 test -f /tmp/YaST2_keep_sshd_running && continue
128 break
129 done
130
131 ec=$(cat /tmp/YaST2_ssh_installation_finished)
132 rm -f /tmp/YaST2_ssh_installation_finished
133 elif [ "$yast" = yast ] ; then
134 # now, run yast
135 echo "starting yast..."
136   /sbin/yast "$@" ; ec=$?
137 elif [ "$yast" ] ; then
138 # now, run yast
139 echo "starting $yast..."
140   "$yast" "$@" ; ec=$?
141 fi
142
143 # start shell, useful on iSeries or via serial console
144 grep -qwi start_shell /proc/cmdline && {
145 echo
146 echo "ATTENTION"
147 echo "Starting shell... (use 'exit' to proceed)"
148 bash --init-file /root/.bash_login
149 }
150
151 test -r /etc/netsetup.inf && cat /etc/netsetup.inf >> /etc/install.inf
152 # still needed?
153 #[ $ec -ne 0 ] && echo "An Error happened during installation"
154 #ec=0
155
156 # stop vnc
157 killall Xvnc 2>/dev/null >/dev/null
158 # stop sshd
159 killall sshd 2>/dev/null >/dev/null
160
161 umount devpts 2>/dev/null
162
163 for file in $FILES_TO_RESTORE
164 do
165     test -e $file.initrd && mv $file.initrd $file
166 done
167
168 exit $ec