fix(native): preserve JD Linux maintenance default during candidate replacement
This commit is contained in:
parent
c4350fe747
commit
45f5e67751
2 changed files with 34 additions and 3 deletions
|
|
@ -43,8 +43,21 @@ dd if=/dev/vda bs=512 skip=141 count=1 status=none |
|
|||
grep -aq '^GHOS_GHCIP_INDEX_V1'
|
||||
dd if=/dev/vda bs=512 skip=142 count=1 status=none |
|
||||
grep -aq '^GHOS_GHCIP_ROOT_V1'
|
||||
grep -q '^GRUB_DEFAULT=guanghu-jd-native-once$' /etc/default/grub
|
||||
grep -q 'set default="guanghu-jd-native-once"' /boot/grub/grub.cfg
|
||||
grub_default=$(awk -F= '$1 == "GRUB_DEFAULT" { print $2; found = 1 } END { if (!found) exit 1 }' \
|
||||
/etc/default/grub)
|
||||
case "${grub_default}" in
|
||||
guanghu-jd-native-once)
|
||||
grep -q 'set default="guanghu-jd-native-once"' /boot/grub/grub.cfg
|
||||
;;
|
||||
gnulinux-simple-9e4550a0-452b-4f28-b5a5-d5364aa450f6)
|
||||
grep -q 'set default="gnulinux-simple-9e4550a0-452b-4f28-b5a5-d5364aa450f6"' \
|
||||
/boot/grub/grub.cfg
|
||||
;;
|
||||
*)
|
||||
echo "unsupported GRUB_DEFAULT for bounded native candidate replacement: ${grub_default}" >&2
|
||||
exit 65
|
||||
;;
|
||||
esac
|
||||
|
||||
mkdir -m 0700 "${recovery_root}"
|
||||
printf '%s\n' "${partition_dump}" >"${recovery_root}/sfdisk-before.txt"
|
||||
|
|
@ -85,7 +98,7 @@ preserved:
|
|||
world_and_code_store_lba_135_138: true
|
||||
recovery_beacon_lba_139_140: true
|
||||
gestational_index_lba_141_142: true
|
||||
grub_default_native: true
|
||||
grub_default_unchanged: ${grub_default}
|
||||
rollback:
|
||||
recovery_root: ${recovery_root}
|
||||
first_and_last_2mib_backed_up: true
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
[[ $# -eq 1 ]] || {
|
||||
echo "usage: test-jd-final-candidate-replacement-contract.sh <source-root>" >&2
|
||||
exit 64
|
||||
}
|
||||
|
||||
source_root=$(cd "$1" && pwd -P)
|
||||
script="${source_root}/scripts/replace-jd-native-final-resident-candidate.sh"
|
||||
|
||||
grep -Fq 'guanghu-jd-native-once)' "${script}"
|
||||
grep -Fq 'gnulinux-simple-9e4550a0-452b-4f28-b5a5-d5364aa450f6)' "${script}"
|
||||
grep -Fq 'unsupported GRUB_DEFAULT for bounded native candidate replacement' "${script}"
|
||||
grep -Fq 'grub_default_unchanged: ${grub_default}' "${script}"
|
||||
! grep -Fq 'grub_default_native: true' "${script}"
|
||||
|
||||
echo "JD_FINAL_CANDIDATE_REPLACEMENT_CONTRACT_OK"
|
||||
Loading…
Reference in a new issue