From c0513c547adf7bb85d91ccea97453d7d91ce0c60 Mon Sep 17 00:00:00 2001 From: James Ruan Date: Thu, 31 Aug 2017 18:22:33 +0800 Subject: [PATCH] export-image: when work in a non-English locale environment the PARTUUID will silently fail, resulting to an unbootable image file. (#96) * use dd and xxd to get disk identifier * add xxd as dependency --- Dockerfile | 2 +- depends | 1 + export-image/03-set-partuuid/00-run.sh | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2085b7c..d37d6a9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ RUN apt-get -y update && \ apt-get -y install \ git vim parted \ quilt realpath qemu-user-static debootstrap zerofree pxz zip dosfstools \ - bsdtar libcap2-bin rsync grep udev xz-utils curl \ + bsdtar libcap2-bin rsync grep udev xz-utils curl xxd \ && rm -rf /var/lib/apt/lists/* COPY . /pi-gen/ diff --git a/depends b/depends index b9d0d44..d516533 100644 --- a/depends +++ b/depends @@ -12,3 +12,4 @@ grep rsync xz:xz-utils curl +xxd diff --git a/export-image/03-set-partuuid/00-run.sh b/export-image/03-set-partuuid/00-run.sh index dccc55e..4b18405 100755 --- a/export-image/03-set-partuuid/00-run.sh +++ b/export-image/03-set-partuuid/00-run.sh @@ -2,7 +2,7 @@ IMG_FILE="${STAGE_WORK_DIR}/${IMG_DATE}-${IMG_NAME}${IMG_SUFFIX}.img" -IMGID="$(fdisk -l ${IMG_FILE} | sed -n 's/Disk identifier: 0x\([^ ]*\)/\1/p')" +IMGID="$(dd if=${IMG_FILE} skip=440 bs=1 count=4 2>/dev/null | xxd -e | cut -f 2 -d' ')" BOOT_PARTUUID="${IMGID}-01" ROOT_PARTUUID="${IMGID}-02"