The EBS and S3 (instance-store) AMIs are now created from the same image. HVM instance-store AMIs are also generated. Disk image generation has been factored out into a function (nixos/lib/make-disk-image.nix) that can be used to build other kinds of images.
		
			
				
	
	
		
			89 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 1895d10a7539d055a4e0206af1e7a9e5ea32a4f7 Mon Sep 17 00:00:00 2001
 | 
						|
From: Juerg Haefliger <juerg.haefliger@hp.com>
 | 
						|
Date: Wed, 25 Mar 2015 13:59:20 +0100
 | 
						|
Subject: [PATCH] Support new sfdisk version 2.26
 | 
						|
 | 
						|
The sfdisk usage with version 2.26 changed. Specifically, the option
 | 
						|
--show-pt-geometry and functionality for CHS have been removed.
 | 
						|
Also, restoring a backup MBR now needs to be done using dd.
 | 
						|
---
 | 
						|
 bin/growpart | 28 ++++++++++------------------
 | 
						|
 1 file changed, 10 insertions(+), 18 deletions(-)
 | 
						|
 | 
						|
diff --git a/bin/growpart b/bin/growpart
 | 
						|
index 595c40b..d4c995b 100755
 | 
						|
--- a/bin/growpart
 | 
						|
+++ b/bin/growpart
 | 
						|
@@ -28,7 +28,6 @@ PART=""
 | 
						|
 PT_UPDATE=false
 | 
						|
 DRY_RUN=0
 | 
						|
 
 | 
						|
-MBR_CHS=""
 | 
						|
 MBR_BACKUP=""
 | 
						|
 GPT_BACKUP=""
 | 
						|
 _capture=""
 | 
						|
@@ -133,7 +132,8 @@ bad_Usage() {
 | 
						|
 }
 | 
						|
 
 | 
						|
 mbr_restore() {
 | 
						|
-	sfdisk --no-reread "${DISK}" ${MBR_CHS} -I "${MBR_BACKUP}"
 | 
						|
+	dd if="${MBR_BACKUP}-${DISK#/dev/}-0x00000000.bak" of="${DISK}" bs=1 \
 | 
						|
+		conv=notrunc
 | 
						|
 }
 | 
						|
 
 | 
						|
 sfdisk_worked_but_blkrrpart_failed() {
 | 
						|
@@ -148,34 +148,26 @@ sfdisk_worked_but_blkrrpart_failed() {
 | 
						|
 
 | 
						|
 mbr_resize() {
 | 
						|
 	RESTORE_HUMAN="${TEMP_D}/recovery"
 | 
						|
-	MBR_BACKUP="${TEMP_D}/orig.save"
 | 
						|
+	MBR_BACKUP="${TEMP_D}/backup"
 | 
						|
 
 | 
						|
 	local change_out=${TEMP_D}/change.out
 | 
						|
 	local dump_out=${TEMP_D}/dump.out
 | 
						|
 	local new_out=${TEMP_D}/new.out
 | 
						|
 	local dump_mod=${TEMP_D}/dump.mod
 | 
						|
-	local tmp="${TEMP_D}/tmp.out"
 | 
						|
-	local err="${TEMP_D}/err.out"
 | 
						|
 
 | 
						|
-	local _devc cyl _w1 heads _w2 sectors _w3 tot dpart
 | 
						|
+	local tot dpart
 | 
						|
 	local pt_start pt_size pt_end max_end new_size change_info
 | 
						|
 
 | 
						|
-	# --show-pt-geometry outputs something like
 | 
						|
-	#     /dev/sda: 164352 cylinders, 4 heads, 32 sectors/track
 | 
						|
-	rqe sfd_geom sfdisk "${DISK}" --show-pt-geometry >"${tmp}" &&
 | 
						|
-		read _devc cyl _w1 heads _w2 sectors _w3 <"${tmp}" &&
 | 
						|
-		MBR_CHS="-C ${cyl} -H ${heads} -S ${sectors}" ||
 | 
						|
-		fail "failed to get CHS from ${DISK}"
 | 
						|
+	tot=$(sfdisk --list "${DISK}" | awk '{ print $(NF-1) ; exit }') ||
 | 
						|
+		fail "failed to get total number of sectors from ${DISK}"
 | 
						|
 
 | 
						|
-	tot=$((${cyl}*${heads}*${sectors}))
 | 
						|
+	debug 1 "total number of sectors of ${DISK} is ${tot}"
 | 
						|
 
 | 
						|
-	debug 1 "geometry is ${MBR_CHS}. total size=${tot}"
 | 
						|
-	rqe sfd_dump sfdisk ${MBR_CHS} --unit=S --dump "${DISK}" \
 | 
						|
+	rqe sfd_dump sfdisk --dump "${DISK}" \
 | 
						|
 		>"${dump_out}" ||
 | 
						|
 		fail "failed to dump sfdisk info for ${DISK}"
 | 
						|
-
 | 
						|
 	{
 | 
						|
-		echo "## sfdisk ${MBR_CHS} --unit=S --dump ${DISK}"
 | 
						|
+		echo "## sfdisk --dump ${DISK}"
 | 
						|
 		cat "${dump_out}"
 | 
						|
 	}  >"${RESTORE_HUMAN}"
 | 
						|
 	[ $? -eq 0 ] || fail "failed to save sfdisk -d output"
 | 
						|
@@ -237,7 +229,7 @@ mbr_resize() {
 | 
						|
 		exit 0
 | 
						|
 	fi
 | 
						|
 
 | 
						|
-	LANG=C sfdisk --no-reread "${DISK}" ${MBR_CHS} --force \
 | 
						|
+	LANG=C sfdisk --no-reread "${DISK}" --force \
 | 
						|
 		-O "${MBR_BACKUP}" <"${new_out}" >"${change_out}" 2>&1
 | 
						|
 	ret=$?
 | 
						|
 	[ $ret -eq 0 ] || RESTORE_FUNC="mbr_restore"
 | 
						|
-- 
 | 
						|
2.1.4
 | 
						|
 |