]>
Commit | Line | Data |
---|---|---|
89a12446 DM |
1 | #!/bin/bash |
2 | ||
3 | trap "err_reboot" ERR | |
4 | ||
5 | parse_cmdline() { | |
6 | root= | |
7 | proxdebug=0 | |
8 | for par in $(cat /proc/cmdline); do | |
9 | case $par in | |
10 | root=*) | |
11 | root=${par#root=} | |
12 | ;; | |
13 | proxdebug) | |
14 | proxdebug=1 | |
15 | ;; | |
16 | esac | |
17 | done; | |
18 | } | |
19 | ||
20 | debugsh() { | |
16ff00ec | 21 | /bin/bash |
89a12446 DM |
22 | } |
23 | ||
24 | real_reboot() { | |
25 | ||
26 | trap - ERR | |
27 | ||
28 | /etc/init.d/networking stop | |
29 | ||
30 | # stop udev (release file handles) | |
31 | /etc/init.d/udev stop | |
32 | ||
33 | echo -n "Deactivating swap..." | |
34 | swap=$(grep /dev /proc/swaps); | |
35 | if [ -n "$swap" ]; then | |
36 | set $swap | |
37 | swapoff $1 | |
38 | fi | |
39 | echo "done." | |
40 | ||
89a12446 | 41 | umount -l -n /target >/dev/null 2>&1 |
37a88382 | 42 | umount -l -n /dev |
8d7ddbde | 43 | umount -l -n /run |
dea730ea | 44 | [ -d /sys/firmware/efi/efivars ] && umount -l -n /sys/firmware/efi/efivars |
89a12446 | 45 | umount -l -n /sys |
e89d1aef | 46 | umount -l -n /proc |
89a12446 DM |
47 | |
48 | exit 0 | |
49 | } | |
50 | ||
51 | err_reboot() { | |
52 | ||
53 | echo "\nInstallation aborted - unable to continue (type exit or CTRL-D to reboot)" | |
54 | debugsh | |
55 | real_reboot | |
56 | } | |
57 | ||
58 | echo "Starting Proxmox installation" | |
59 | ||
60 | PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin | |
61 | ||
194d737a TL |
62 | # ensure udev isn't snippy and ignores our request |
63 | export SYSTEMD_IGNORE_CHROOT=1 | |
64 | ||
89a12446 | 65 | mount -n -t proc proc /proc |
89a12446 | 66 | mount -n -t sysfs sysfs /sys |
f238dd03 TL |
67 | if [ -d /sys/firmware/efi ]; then |
68 | echo "EFI boot mode detected, mounting efivars filesystem" | |
dea730ea | 69 | mount -n -t efivarfs efivarfs /sys/firmware/efi/efivars |
f238dd03 | 70 | fi |
8d7ddbde | 71 | mount -n -t tmpfs tmpfs /run |
89a12446 DM |
72 | |
73 | parse_cmdline | |
74 | ||
75 | # always load most common input drivers | |
76 | modprobe -q psmouse || /bin/true | |
77 | modprobe -q sermouse || /bin/true | |
78 | modprobe -q usbhid || /bin/true | |
79 | ||
80 | # load device mapper - used by lilo | |
81 | modprobe -q dm_mod || /bin/true | |
82 | ||
83 | echo "Installing additional hardware drivers" | |
84 | export RUNLEVEL=S | |
85 | export PREVLEVEL=N | |
86 | /etc/init.d/udev start | |
87 | ||
3119bdeb TL |
88 | mkdir -p /dev/shm |
89 | mount -t tmpfs tmpfs /dev/shm | |
90 | ||
11a42156 TL |
91 | if [ $proxdebug -ne 0 ]; then |
92 | echo "Dropping in debug shell inside chroot before starting installation" | |
93 | echo "type exit or CTRL-D to start installation wizard" | |
94 | debugsh | |
95 | fi | |
96 | ||
89a12446 DM |
97 | # set the hostname |
98 | hostname proxmox | |
99 | ||
89a12446 | 100 | # try to get ip config with dhcp |
01e402f0 FG |
101 | echo -n "Attempting to get DHCP leases... " |
102 | dhclient -v | |
89a12446 DM |
103 | echo "done" |
104 | ||
105 | xinit -- -dpi 96 >/dev/tty2 2>&1 | |
106 | ||
b0c4afcc DM |
107 | # just to be sure everything is on disk |
108 | sync | |
109 | ||
89a12446 DM |
110 | if [ $proxdebug -ne 0 ]; then |
111 | echo "Debugging mode (type exit or CTRL-D to reboot)" | |
112 | debugsh | |
113 | fi | |
114 | ||
115 | echo "Installation done, rebooting... " | |
116 | #mdadm -S /dev/md0 >/dev/tty2 2>&1 | |
cd1964db | 117 | kill $(pidof dhclient) 2>&1 > /dev/null |
89a12446 DM |
118 | real_reboot |
119 | ||
120 | # never reached | |
121 | exit 0 |