- jos detekcije braindead situacija u upgradeu grub1 na grub2
[kernel-cn.git] / debian / postinst
index 8545cb0..1ff9d57 100755 (executable)
@@ -220,6 +220,13 @@ if [ "x$GRUB2" = "xno" ]; then
     if [ -f "$device_map" ]; then
         mv -f "$device_map" "$device_map.old"
     fi
+    # possible situation when upgrading from Grub1 to Grub2
+    if [ ! -x /usr/sbin/grub ]; then
+        echo "."
+        echo "CN: FATAL ERROR while trying to execute GRUB1!"
+        echo "CN: Do not reboot your server and report this to OTRS immediately!"
+        exit 1
+    fi
     grub --batch --no-floppy --device-map="$device_map" <<'EOF' >/dev/null 2>&1
 quit
 EOF
@@ -269,7 +276,7 @@ if [ "x$GRUB2" = "xno" ]; then
     fi
 else
     # Grub2 part
-    install_device="$(grub-probe -t drive /boot/grub)"
+    install_device="(hd0)"
 fi
 echo -n " grub4"
 
@@ -325,6 +332,20 @@ if [ "x$GRUB2" = "xno" ]; then
 fi
 echo -n " grub7"
 
+# install to other boot sectors if needed (better safe than sorry)
+if [ "x$GRUB2" = "xyes" ]; then
+    # Grub2 part
+    db_get grub-pc/install_devices
+    for i in `echo $RET | sed -e 's/,/ /g'`; do
+        real_device="$(readlink -f "$i")"
+        if [ -e "$real_device" ]; then
+            grub-install --force --no-floppy $real_device \
+                >/dev/null 2>&1 || true
+        fi
+    done
+fi
+echo -n " grub8"
+
 # disable lilo
 if [ -e /etc/lilo.conf ]; then
     mv -f /etc/lilo.conf /etc/lilo.conf.old