x86: upgrade: use get_image_dd
authorYousong Zhou <yszhou4tech@gmail.com>
Tue, 3 Nov 2020 03:39:59 +0000 (11:39 +0800)
committerYousong Zhou <yszhou4tech@gmail.com>
Wed, 11 Nov 2020 13:29:55 +0000 (21:29 +0800)
Ref: https://bugs.openwrt.org/index.php?do=details&task_id=3140
Reported-by: Philip Prindeville <philipp@redfish-solutions.com>
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
Reviewed-By: Philip Prindeville <philipp@redfish-solutions.com>
target/linux/x86/base-files/lib/upgrade/platform.sh

index 617b267e683624a6e250c4462e92c33b208f5340..0b54caea29f22dc1cc07c093f95e170767679922 100644 (file)
@@ -20,7 +20,7 @@ platform_check_image() {
        get_partitions "/dev/$diskdev" bootdisk
 
        #extract the boot sector from the image
-       get_image "$@" | dd of=/tmp/image.bs count=63 bs=512b 2>/dev/null
+       get_image_dd "$1" of=/tmp/image.bs count=63 bs=512b
 
        get_partitions /tmp/image.bs image
 
@@ -83,7 +83,7 @@ platform_do_upgrade() {
                get_partitions "/dev/$diskdev" bootdisk
 
                #extract the boot sector from the image
-               get_image "$@" | dd of=/tmp/image.bs count=63 bs=512b >/dev/null
+               get_image_dd "$1" of=/tmp/image.bs count=63 bs=512b
 
                get_partitions /tmp/image.bs image
 
@@ -94,7 +94,7 @@ platform_do_upgrade() {
        fi
 
        if [ -n "$diff" ]; then
-               get_image "$@" | dd of="/dev/$diskdev" bs=4096 conv=fsync
+               get_image_dd "$1" of="/dev/$diskdev" bs=4096 conv=fsync
 
                # Separate removal and addtion is necessary; otherwise, partition 1
                # will be missing if it overlaps with the old partition 2
@@ -108,7 +108,7 @@ platform_do_upgrade() {
        while read part start size; do
                if export_partdevice partdev $part; then
                        v "Writing image to /dev/$partdev..."
-                       get_image "$@" | dd of="/dev/$partdev" ibs=512 obs=1M skip="$start" count="$size" conv=fsync
+                       get_image_dd "$1" of="/dev/$partdev" ibs=512 obs=1M skip="$start" count="$size" conv=fsync
                else
                        v "Unable to find partition $part device, skipped."
                fi
@@ -116,7 +116,7 @@ platform_do_upgrade() {
 
        #copy partition uuid
        v "Writing new UUID to /dev/$diskdev..."
-       get_image "$@" | dd of="/dev/$diskdev" bs=1 skip=440 count=4 seek=440 conv=fsync
+       get_image_dd "$1" of="/dev/$diskdev" bs=1 skip=440 count=4 seek=440 conv=fsync
 
        platform_do_bootloader_upgrade "$diskdev"
        local parttype=ext4