~ubuntu-branches/ubuntu/natty/grub/natty

« back to all changes in this revision

Viewing changes to debian/update-grub

  • Committer: Bazaar Package Importer
  • Author(s): Colin Watson
  • Date: 2011-03-17 14:27:42 UTC
  • Revision ID: james.westby@ubuntu.com-20110317142742-xl1p4v8759hqxhq2
Tags: 0.97-29ubuntu61
Refine detection of Xen-only kernels: kernels with both CONFIG_XEN=y and
CONFIG_PARAVIRT=y are now given both Xen entries (if a hypervisor is
present) and non-Xen entries (LP: #692691).

Show diffs side-by-side

added added

removed removed

Lines of Context:
853
853
        counter=0
854
854
 
855
855
        # Xen entries first.
856
 
        for kern in $xenKernels ; do
 
856
        for kern in $xen0Kernels ; do
857
857
                if test ! x"$howmany" = x"all" ; then
858
858
                        if [ $counter -gt $howmany ] ; then
859
859
                                break
1339
1339
        /$endopt/,/$end/ {
1340
1340
                s/^kernel[[:space:]]\+\([^[:space:]]\+\).*/\1/p
1341
1341
        }" < $menu | grep -vE "memtest86|$grub2name|xen" | uniq`
1342
 
        xenKernels=`sed -n -e "
 
1342
        xen0Kernels=`sed -n -e "
1343
1343
        /$endopt/,/$end/ {
1344
1344
                s/^module[[:space:]]\+\([^[:space:]]*vmlinuz[^[:space:]]\+\).*/\1/p
1345
1345
        }" < $menu | uniq`
1381
1381
fi
1382
1382
 
1383
1383
 
1384
 
xenKernels=""
1385
 
for ver in `grep -l CONFIG_XEN_PRIVILEGED_GUEST=y /boot/config* | sed -e s%/boot/config-%%`; do
 
1384
xen0Kernels=""
 
1385
# First kernels with xen0 support.
 
1386
for ver in `grep -l CONFIG_XEN=y /boot/config* | sed -e s%/boot/config-%%`; do
 
1387
  if ! grep -q CONFIG_XEN_PRIVILEGED_GUEST=y /boot/config-$ver ; then
 
1388
      continue
 
1389
  fi
1386
1390
  # ver is a kernel version
1387
1391
  kern="/boot/vmlinuz-$ver"
1388
1392
  if [ -r $kern ] ; then
1389
1393
       newerKernels=""
1390
 
       for i in $xenKernels ; do
 
1394
       for i in $xen0Kernels ; do
1391
1395
                res=$(CompareVersions "$kern" "$i")
1392
1396
                if [ "$kern" != "" ] && [ "$res" -gt 0 ] ; then
1393
1397
                        newerKernels="$newerKernels $kern $i"
1399
1403
        if [ "$kern" != "" ] ; then
1400
1404
                newerKernels="$newerKernels $kern"
1401
1405
        fi
1402
 
        xenKernels="$newerKernels"
 
1406
        xen0Kernels="$newerKernels"
1403
1407
    fi
1404
1408
done
1405
1409
 
1413
1417
 
1414
1418
sortedKernels=""
1415
1419
for kern in $(/bin/ls -1vr /boot | grep -v "dpkg-*" | grep "^vmlinuz-") ; do
1416
 
        if `echo "$xenKernels" | grep -q "$kern "` || `echo "$kern" | grep -q "xen"`; then
1417
 
                is_xen=1
1418
 
        else
1419
 
                is_xen=
 
1420
        cfg="/boot/config-${kern#vmlinuz-}"
 
1421
 
 
1422
        if [ "$indomU" = "false" ] && grep -qs CONFIG_XEN=y "$cfg" && \
 
1423
           ! grep -qs CONFIG_PARAVIRT=y "$cfg"; then
 
1424
            # We aren't running in a Xen domU, skip Xen-only kernels
 
1425
            echo "Ignoring Xen-only kernel on non-Xen host: $kern"
 
1426
            continue
 
1427
        elif [ "$indomU" = "true" ] && ! grep -qs CONFIG_XEN=y "$cfg"; then
 
1428
            # We are running in a Xen domU, skip non-Xen kernels
 
1429
            echo "Ignoring non-Xen Kernel on Xen domU host: $kern"
 
1430
            continue
1420
1431
        fi
1421
 
 
1422
 
    if [ "$indomU" = "false" ] && [ "$is_xen" ]; then
1423
 
        # We aren't running in a Xen domU, skip xen kernels
1424
 
        echo "Ignoring Xen kernel on non-Xen host: $kern"
1425
 
        continue
1426
 
    elif [ "$indomU" = "true" ] && ! [ "$is_xen" ]; then
1427
 
        # We are running in a Xen domU, skip non-xen kernels
1428
 
        echo "Ignoring non-Xen Kernel on Xen domU host: $kern"
1429
 
        continue
1430
 
    fi
1431
 
    
1432
 
    kern="/boot/$kern"
 
1432
        
 
1433
        kern="/boot/$kern"
1433
1434
        newerKernels=""
1434
1435
        for i in $sortedKernels ; do
1435
1436
            res=$(CompareVersions "$kern" "$i")