mirror of
https://github.com/kairos-io/osbuilder.git
synced 2025-08-11 20:51:53 +00:00
Merge pull request #53 from kairos-io/622-copy-grub-config
Copy our grub config in place
This commit is contained in:
commit
876223099a
@ -16,6 +16,7 @@ load_vars() {
|
|||||||
oem_size="${OEM_SIZE:-64}"
|
oem_size="${OEM_SIZE:-64}"
|
||||||
recovery_size="${RECOVERY_SIZE:-2192}"
|
recovery_size="${RECOVERY_SIZE:-2192}"
|
||||||
default_active_size="${DEFAULT_ACTIVE_SIZE:-2400}"
|
default_active_size="${DEFAULT_ACTIVE_SIZE:-2400}"
|
||||||
|
menu_entry="${DEFAULT_MENU_ENTRY:-Kairos}"
|
||||||
|
|
||||||
## Repositories
|
## Repositories
|
||||||
final_repo="${FINAL_REPO:-quay.io/costoolkit/releases-teal-arm64}"
|
final_repo="${FINAL_REPO:-quay.io/costoolkit/releases-teal-arm64}"
|
||||||
@ -287,6 +288,12 @@ else
|
|||||||
rsync -axq --exclude='host' --exclude='mnt' --exclude='proc' --exclude='sys' --exclude='dev' --exclude='tmp' ${directory}/ $TARGET
|
rsync -axq --exclude='host' --exclude='mnt' --exclude='proc' --exclude='sys' --exclude='dev' --exclude='tmp' ${directory}/ $TARGET
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# We copy the grubmenu.cfg to a temporary location to be copied later in the state partition
|
||||||
|
# https://github.com/kairos-io/kairos/blob/62c67e3e61d49435c362014522e5c6696335376f/overlay/files/system/oem/08_grub.yaml#L105
|
||||||
|
# This is a hack and we need a better way: https://github.com/kairos-io/kairos/issues/1427
|
||||||
|
tmpgrubconfig=$(mktemp /tmp/grubmeny.cfg.XXXXXX)
|
||||||
|
cp -rfv $TARGET/etc/kairos/branding/grubmenu.cfg "${tmpgrubconfig}"
|
||||||
|
|
||||||
umount $TARGET
|
umount $TARGET
|
||||||
sync
|
sync
|
||||||
|
|
||||||
@ -332,6 +339,8 @@ if [ -n "$EFI" ] && [ -n "$efi_dir" ]; then
|
|||||||
cp -rfv $efi_dir/* $EFI
|
cp -rfv $efi_dir/* $EFI
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
partprobe
|
||||||
|
|
||||||
echo ">> Writing image and partition table"
|
echo ">> Writing image and partition table"
|
||||||
dd if=/dev/zero of="${output_image}" bs=1024000 count="${size}" || exit 1
|
dd if=/dev/zero of="${output_image}" bs=1024000 count="${size}" || exit 1
|
||||||
if [ "$model" == "rpi64" ]; then
|
if [ "$model" == "rpi64" ]; then
|
||||||
@ -419,7 +428,10 @@ mkdir -p $WORKDIR/persistent/cloud-config
|
|||||||
|
|
||||||
cp -rfv /defaults.yaml $WORKDIR/persistent/cloud-config/01_defaults.yaml
|
cp -rfv /defaults.yaml $WORKDIR/persistent/cloud-config/01_defaults.yaml
|
||||||
|
|
||||||
grub2-editenv $WORKDIR/state/grub_oem_env set "default_menu_entry=Kairos"
|
grub2-editenv $WORKDIR/state/grub_oem_env set "default_menu_entry=$menu_entry"
|
||||||
|
|
||||||
|
# We copy the file we saved earier to the STATE partition
|
||||||
|
cp -rfv "${tmpgrubconfig}" $WORKDIR/state/grubmenu
|
||||||
|
|
||||||
# Set a OEM config file if specified
|
# Set a OEM config file if specified
|
||||||
if [ -n "$config" ]; then
|
if [ -n "$config" ]; then
|
||||||
|
@ -20,6 +20,7 @@ size="${SIZE:-7544}"
|
|||||||
state_size="${STATE_SIZE:-4992}"
|
state_size="${STATE_SIZE:-4992}"
|
||||||
recovery_size="${RECOVERY_SIZE:-2192}"
|
recovery_size="${RECOVERY_SIZE:-2192}"
|
||||||
default_active_size="${DEFAULT_ACTIVE_SIZE:-2400}"
|
default_active_size="${DEFAULT_ACTIVE_SIZE:-2400}"
|
||||||
|
menu_entry="${DEFAULT_MENU_ENTRY:-Kairos}"
|
||||||
|
|
||||||
container_image="${container_image:-quay.io/kairos/kairos-opensuse-leap-arm-rpi:v1.5.1-k3sv1.25.6-k3s1}"
|
container_image="${container_image:-quay.io/kairos/kairos-opensuse-leap-arm-rpi:v1.5.1-k3sv1.25.6-k3s1}"
|
||||||
|
|
||||||
@ -67,6 +68,12 @@ else
|
|||||||
rsync -axq --exclude='host' --exclude='mnt' --exclude='proc' --exclude='sys' --exclude='dev' --exclude='tmp' ${directory}/ $TARGET
|
rsync -axq --exclude='host' --exclude='mnt' --exclude='proc' --exclude='sys' --exclude='dev' --exclude='tmp' ${directory}/ $TARGET
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# We copy the grubmenu.cfg to a temporary location to be copied later in the state partition
|
||||||
|
# https://github.com/kairos-io/kairos/blob/62c67e3e61d49435c362014522e5c6696335376f/overlay/files/system/oem/08_grub.yaml#L105
|
||||||
|
# This is a hack and we need a better way: https://github.com/kairos-io/kairos/issues/1427
|
||||||
|
tmpgrubconfig=$(mktemp /tmp/grubmeny.cfg.XXXXXX)
|
||||||
|
cp -rfv $TARGET/etc/kairos/branding/grubmenu.cfg "${tmpgrubconfig}"
|
||||||
|
|
||||||
umount $TARGET
|
umount $TARGET
|
||||||
sync
|
sync
|
||||||
|
|
||||||
@ -106,7 +113,11 @@ LOOP=$(losetup --show -f state_partition.img)
|
|||||||
mkdir -p $WORKDIR/state
|
mkdir -p $WORKDIR/state
|
||||||
mount $LOOP $WORKDIR/state
|
mount $LOOP $WORKDIR/state
|
||||||
cp -arf $STATEDIR/* $WORKDIR/state
|
cp -arf $STATEDIR/* $WORKDIR/state
|
||||||
grub2-editenv $WORKDIR/state/grub_oem_env set "default_menu_entry=Kairos"
|
grub2-editenv $WORKDIR/state/grub_oem_env set "default_menu_entry=$menu_entry"
|
||||||
|
|
||||||
|
# We copy the file we saved earier to the STATE partition
|
||||||
|
cp -rfv "${tmpgrubconfig}" $WORKDIR/state/grubmenu
|
||||||
|
|
||||||
umount $WORKDIR/state
|
umount $WORKDIR/state
|
||||||
losetup -d $LOOP
|
losetup -d $LOOP
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user