aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xrun-all.sh1
-rwxr-xr-xscripts/install-redhat.sh14
-rwxr-xr-xscripts/tar-to-image.sh56
3 files changed, 62 insertions, 9 deletions
diff --git a/run-all.sh b/run-all.sh
index 5b98891..0ad3934 100755
--- a/run-all.sh
+++ b/run-all.sh
@@ -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