blob: 446741a3e9f329ca029f5c35fed3cd7bf0a4f41a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#!/bin/bash
firmware_image=$1
os_image=$2
set -e
export LANG=C
[ "$#" -ne 2 ] && echo "$0 <firmware .wic> <rootfs .wic>" && exit 1
# src esp size
src_start=`fdisk -l ${os_image} | grep wic1 | awk '{print $2}'` # in sectors
src_end=`fdisk -l ${os_image} | grep wic1 | awk '{print $3}'` # in sectors
src_size=$((src_end - src_start + 1)) # in sectors
truncate $firmware_image --size +$((src_size * 512))
#fix image after resize with sgdisk + fdisk
sgdisk -e $firmware_image
fdisk $firmware_image <<EOF
w
EOF
fdisk -l ${firmware_image}
# Create new ESP partition with SRC size and EFI type
fdisk $firmware_image <<EOF
n
+$((src_size - 1))
t
1
w
EOF
fdisk -l $firmware_image
esp_dest_start=`fdisk -l ${firmware_image} | tail -n 1 | awk '{print $2}'`
dd conv=notrunc \
bs=512 \
count=${src_size} \
skip=${src_start} \
seek=${esp_dest_start} \
if=${os_image} \
of=${firmware_image} \
status=progress
|