diff options
-rwxr-xr-x | run-all.sh | 1 | ||||
-rwxr-xr-x | scripts/install-redhat.sh | 14 | ||||
-rwxr-xr-x | scripts/tar-to-image.sh | 56 |
3 files changed, 62 insertions, 9 deletions
@@ -23,6 +23,7 @@ nilsson) # rebuild images ./RHEL73-efi.sh || exit 1 ./F25-efi-grub2.sh || exit 1 + ./F25-efi-systemd.sh || exit 1 ;; *) echo "unknown host, don't know what to do" diff --git a/scripts/install-redhat.sh b/scripts/install-redhat.sh index 7ac0537..e2619d0 100755 --- a/scripts/install-redhat.sh +++ b/scripts/install-redhat.sh @@ -174,15 +174,11 @@ for item in $rpms; do inst="${inst} ${item}"; done msg "dnf install packages to $dest ..." #sudo mount --bind /dev $dest/dev #sudo mount -o remount,bind,ro $dest/dev -(set -x; sudo $tool $quiet install $inst $krnl) || exit 1 -if test "$krnl" != ""; then -# msg "dnf install $krnl to $dest ..." -# (set -x; sudo $tool $quiet install $krnl) || exit 1 - if test ! -f ${dest}/etc/sysconfig/kernel; then - echo "UPDATEDEFAULT=yes" > $WORK/sys-kernel - echo "DEFAULTKERNEL=kernel-core" >> $WORK/sys-kernel - sudo cp $WORK/sys-kernel ${dest}/etc/sysconfig/kernel - fi +(set -x; sudo $tool $quiet install -- $inst $krnl) || exit 1 +if test ! -f ${dest}/etc/sysconfig/kernel; then + echo "UPDATEDEFAULT=yes" > $WORK/sys-kernel + echo "DEFAULTKERNEL=kernel-core" >> $WORK/sys-kernel + sudo cp $WORK/sys-kernel ${dest}/etc/sysconfig/kernel fi sudo rm -rf "${dest}/var/cache/"{dnf,yum} diff --git a/scripts/tar-to-image.sh b/scripts/tar-to-image.sh index 6f90df4..a6188b5 100755 --- a/scripts/tar-to-image.sh +++ b/scripts/tar-to-image.sh @@ -74,6 +74,10 @@ while test "$1" != ""; do mode="efi-grub2" shift ;; + --efi-systemd) + mode="efi-systemd" + shift + ;; --rpi32) mode="rpi32" shift @@ -224,6 +228,51 @@ EOF fish command "sed -i -c -e s/initrd16/initrdefi/ /etc/grub2-efi.cfg" } +function fish_part_efi_systemd() { + local uuid_efi="C12A7328-F81F-11D2-BA4B-00A0C93EC93B" + local id_uefi id_swap id_root + + fish_partition gpt 512 0 512 + + fish part-set-gpt-type /dev/sda 1 ${uuid_efi} + fish part-set-bootable /dev/sda 1 true + + msg "creating filesystems" + fish mkfs fat /dev/sda1 label:UEFI + fish mkswap /dev/sda2 label:swap + fish mkfs ext4 /dev/sda3 label:root + + id_uefi=$(guestfish --remote -- vfs-uuid /dev/sda1) + id_swap=$(guestfish --remote -- vfs-uuid /dev/sda2) + id_root=$(guestfish --remote -- vfs-uuid /dev/sda3) + rootfs="UUID=${id_root}" + + msg "mounting filesystems" + fish mount /dev/sda3 / + fish mkdir /boot + fish mount /dev/sda1 /boot + + cat <<-EOF > "$fstab" + UUID=${id_root} / ext4 defaults 0 0 + UUID=${id_uefi} /boot vfat defaults 0 0 + UUID=${id_swap} swap swap defaults 0 0 +EOF +} + +function fish_systemd_boot() { + msg "boot setup (root=${rootfs})" + kver=$(guestfish --remote -- ls /lib/modules) + echo "### kernel version is $kver" + + echo "### init systemd-boot" + fish write /etc/kernel/cmdline "ro root=${rootfs}" + fish command "bootctl install" + fish command "kernel-install add ${kver} /lib/modules/${kver}/vmlinuz" + +# echo "### rebuilding initramfs" +# fish command "dracut --force /boot/initramfs-${kver}.img ${kver}" +} + function fish_part_rpi() { local id_firm id_boot id_swap id_root fish_partition mbr 64 384 512 @@ -376,6 +425,13 @@ efi-grub2) fish_grub2_efi fish_fini ;; +efi-systemd) + fish_init + fish_part_efi_systemd + fish_copy_tar + fish_systemd_boot + fish_fini + ;; rpi32) fish_init fish_part_rpi |