[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#368660: Cleanup of boot partition detection code



Package: elilo-installer
Version: 1.5

The attached patch was created to fix the following problems installing
Ubuntu on ia64:

https://launchpad.net/distros/ubuntu/+source/elilo-installer/+bug/38232
https://launchpad.net/distros/ubuntu/+source/elilo-installer/+bug/40665

I haven't tested this on Debian, but the new code is cleaner and less
prone to failures imo.  However, there is now a dependency on partman's
find-partitions...
--- elilo-installer.postinst.orig	2006-05-23 15:03:27.552760152 -0600
+++ elilo-installer.postinst	2006-05-23 15:06:34.316367768 -0600
@@ -33,26 +33,13 @@
 
 rm -f /tmp/efi_boot.list
 
-for d in /dev/discs/*/disc; do
-    parted $d print | ( while read minor start end size fs nameflags ; do
-      case "$minor" in
-      Disk)
-	if [ "$start" = geometry ]; then
-	    dev=$(echo $size | sed -n "s|\([^:]*\)/disc:|\1|p")
-	fi
-	;;
-      [1-9])
-	case "$fs" in
-	fat16|fat32)
-	    if echo "$nameflags" | grep "boot" >/dev/null; then
-		echo ${dev}/part${minor} >> /tmp/efi_boot.list
-	    fi
-	    ;;
-	esac
-	;;
-      esac
-    done)
-done	
+/usr/lib/partconf/find-partitions --flag boot | while read part fs size; do
+    case $fs in
+        fat16|fat32)
+            echo "$part" >> /tmp/efi_boot.list
+            ;;
+    esac
+done
 if [ -s /tmp/efi_boot.list ]; then
     for d in `cat /tmp/efi_boot.list`; do
 	d=`mapdevfs $d`

Reply to: