x86: fix platform_export_bootpart() for Xen virtual disks
authorhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 17 Apr 2016 13:24:30 +0000 (13:24 +0000)
committerhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 17 Apr 2016 13:24:30 +0000 (13:24 +0000)
Virtual disk devices in a Xen virtual machine (DomU) can be /dev/xvda,
/dev/xvdb and so on with partitions like /dev/xdva1. Devices named like
this where not considered before. This resulted in a non working
sysupgrade, because the boot partition could not be found.

Signed-off-by: Alexander Dahl <alex@netz39.de>
Suggested-by: Matthias Schiffer <mschiffer@universe-factory.net>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@49190 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/x86/base-files/lib/upgrade/platform.sh

index 86696ae..c21f1a7 100644 (file)
@@ -17,7 +17,7 @@ platform_export_bootpart() {
                        PARTUUID=[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]-02)
                                uuid="${disk#PARTUUID=}"
                                uuid="${uuid%-02}"
                        PARTUUID=[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]-02)
                                uuid="${disk#PARTUUID=}"
                                uuid="${uuid%-02}"
-                               for disk in /dev/[hsv]d[a-z]; do
+                               for disk in /dev/[hsv]d[a-z] /dev/xvd[a-z]; do
                                        set -- $(dd if=$disk bs=1 skip=440 count=4 2>/dev/null | hexdump -v -e '4/1 "%02x "')
                                        if [ "$4$3$2$1" = "$uuid" ]; then
                                                export BOOTPART="${disk}1"
                                        set -- $(dd if=$disk bs=1 skip=440 count=4 2>/dev/null | hexdump -v -e '4/1 "%02x "')
                                        if [ "$4$3$2$1" = "$uuid" ]; then
                                                export BOOTPART="${disk}1"