From: Patrick Schleizer Date: Mon, 13 Oct 2014 11:05:01 +0000 (+0200) Subject: Use UUIDs in /boot/grub/grub.cfg for VM builds rather than hardcoding /dev/sda X-Git-Tag: v0.67~11 X-Git-Url: https://git.grml.org/?p=grml-debootstrap.git;a=commitdiff_plain;h=ba9ff1fa9d44a2b64bfc885c7bd9117d9874ce56;hp=bd598a0a83a368fd4692afa3b1967f0ccff8b2d8 Use UUIDs in /boot/grub/grub.cfg for VM builds rather than hardcoding /dev/sda This allows booting the image in KVM as either sda or vda without requiring any manual changes in /boot/grub/grub.cfg. Use FIXED_DISK_IDENTIFIERS="yes" for VM builds by default. Patch rebased by Michael Prokop Fixes #29 @ github --- diff --git a/config b/config index 670f608..665353b 100644 --- a/config +++ b/config @@ -211,8 +211,8 @@ # Use fixed disk identifiers for Virtual Machine builds. # Useful for reproducible builds. -# Default: 'no' -# FIXED_DISK_IDENTIFIERS='yes' +# Default: 'yes' +# FIXED_DISK_IDENTIFIERS='no' # Disk identifier when using FIXED_DISK_IDENTIFIERS='yes'. # Default: '26ada0c0-1165-4098-884d-aafd2220c2c6' diff --git a/grml-debootstrap b/grml-debootstrap index 007d0be..cd259fc 100755 --- a/grml-debootstrap +++ b/grml-debootstrap @@ -23,7 +23,7 @@ MNTPOINT="/mnt/debootstrap.$$" [ -n "$DISK_IDENTIFIER" ] || DISK_IDENTIFIER='26ada0c0-1165-4098-884d-aafd2220c2c6' [ -n "$EXTRAPACKAGES" ] || EXTRAPACKAGES='yes' [ -n "$FALLBACK_MIRROR" ] || FALLBACK_MIRROR='http://http.debian.net/debian' -[ -n "$FIXED_DISK_IDENTIFIERS" ] || FIXED_DISK_IDENTIFIERS="no" +[ -n "$FIXED_DISK_IDENTIFIERS" ] || FIXED_DISK_IDENTIFIERS="yes" [ -n "$FORCE" ] || FORCE='' [ -n "$HOSTNAME" ] || HOSTNAME='grml' [ -n "$INITRD" ] || INITRD='yes' @@ -1104,9 +1104,12 @@ finalize_vm() { umount "${MNTPOINT}"/dev einfo "Adjusting grub.cfg for successful boot sequence." - # ugly but needed to boot grub acordingly - sed -i "s;set root=.*;set root='(hd0,msdos1)';" "${MNTPOINT}"/boot/grub/grub.cfg - sed -i "s;root=[^ ]\+;root=/dev/sda1;" "${MNTPOINT}"/boot/grub/grub.cfg + if [ "$FIXED_DISK_IDENTIFIERS" = "yes" ]; then + sed -i "s;root=[^ ]\+;root=UUID=$DISK_IDENTIFIER;" /boot/grub/grub.cfg + else + sed -i "s;set root=.*;set root='(hd0,msdos1)';" "${MNTPOINT}"/boot/grub/grub.cfg + sed -i "s;root=[^ ]\+;root=/dev/sda1;" "${MNTPOINT}"/boot/grub/grub.cfg + fi umount "${MNTPOINT}" kpartx -d "${ORIG_TARGET}" >/dev/null