Skip to content

Commit 1fc4acc

Browse files
committed
testing: Reduce the difference in creating initramfs between different vendors
Signed-off-by: Alexey Gladkov <[email protected]>
1 parent 39c45ce commit 1fc4acc

File tree

3 files changed

+70
-38
lines changed

3 files changed

+70
-38
lines changed

testing/testing-altlinux-ks-initrd.cfg

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,20 @@
1616
blkid
1717
findmnt
1818

19-
echo "ENABLE=no" > /etc/sysconfig/framebuffer
20-
2119
tee /etc/initrd.mk <<-EOF
20+
IMAGEFILE = /boot/initrd-\$(KERNEL)\$(IMAGE_SUFFIX).img
2221
AUTODETECT = all
2322
`[ ! -f /etc/initrd.mk.addon ] || cat /etc/initrd.mk.addon`
2423
EOF
2524

26-
kver="$(readlink -ev /boot/vmlinuz)"
27-
kver="${kver##*/vmlinuz-}"
25+
grub_install="$( for f in grub-install grub2-install; do type -P "$f" && break; done )"
26+
grub_mkconfig="$( for f in grub-mkconfig grub2-mkconfig; do type -P "$f" && break; done )"
27+
grub_bootdir="$( find /boot -type d \( -name 'grub' -o -name 'grub2' \) )"
28+
grub_params="/etc/sysconfig/grub2"
29+
30+
kver="$(find /lib/modules -mindepth 1 -maxdepth 1 -printf '%f\n' -quit)"
31+
32+
export PATH="/srv/.build/dest/usr/sbin:/srv/.build/dest/usr/bin:$PATH"
2833

2934
env -i PATH="$PATH" \
3035
/srv/.build/dest/usr/sbin/make-initrd -k "$kver"
@@ -34,14 +39,10 @@
3439
echo; echo;
3540
echo 'IT WORKS!'
3641
echo; echo;
37-
exec reboot
42+
exec systemctl reboot
3843
EOF
3944
chmod +x /sbin/init.once
4045

41-
tee -a /etc/inittab <<-EOF
42-
z0:3:once:/sbin/init.once
43-
EOF
44-
4546
tee -a /usr/lib/systemd/system/init-once.service <<-EOF
4647
[Unit]
4748
Description=Make-initrd target
@@ -59,33 +60,39 @@
5960
WantedBy=sysinit.target
6061
EOF
6162

62-
systemctl enable init-once ||:
63+
systemctl enable init-once
6364

64-
tee -a /etc/sysconfig/grub2 <<-EOF
65-
GRUB_CMDLINE_LINUX_DEFAULT='console=ttyS0,115200n8 fastboot @CMDLINE@'
65+
tee -a "$grub_params" <<-EOF
66+
GRUB_CMDLINE_LINUX_DEFAULT='console=ttyS0,115200n8 @CMDLINE@'
6667
GRUB_TIMEOUT=3
6768
GRUB_TERMINAL_INPUT='serial console'
6869
GRUB_TERMINAL_OUTPUT='serial console'
6970
GRUB_SERIAL_COMMAND='serial --unit=0 --speed=115200'
7071
EOF
7172

72-
if ! blkid -L "EFI" >/dev/null; then
73-
bootdev=$(findmnt -k -no SOURCE -T /boot)
74-
syspath="$(readlink -ev "/sys/class/block/${bootdev#/dev/}")"
75-
syspath="${syspath%/*}/uevent"
76-
bootdev="$(sed -n -e 's,^DEVNAME=,/dev/,p' "$syspath")"
73+
bootdev=$(findmnt -k -no SOURCE -T /boot)
74+
syspath="$(readlink -ev "/sys/class/block/${bootdev#/dev/}")"
75+
syspath="${syspath%/*}/uevent"
76+
bootdev="$(sed -n -e 's,^DEVNAME=,/dev/,p' "$syspath")"
7777

78-
grub-install "$bootdev"
79-
else
78+
if blkid -L "EFI" >/dev/null; then
8079
strace -e %file efibootmgr ||:
81-
grub-install \
80+
"$grub_install" \
8281
--root-directory "/" \
8382
--boot-directory "/boot" \
84-
--efi-directory "/boot/efi" \
83+
--efi-directory "/boot/efi" \
8584
#
85+
else
86+
"$grub_install" "$bootdev"
8687
fi
8788

88-
grub-mkconfig -o /boot/grub/grub.cfg
89+
"$grub_mkconfig" -o "$grub_bootdir/grub.cfg"
90+
91+
cat "$grub_params"
92+
{
93+
find /boot \! -type d -printf '%M %p\n'
94+
find /boot -type l -printf '%M %p -> %l\n'
95+
} | sort -t\ -k1,1
8996

9097
umount /proc /sys /dev
9198
%end

testing/testing-fedora-ks-initrd.cfg

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
mkdir -p /dev
1111
mount -t devtmpfs devfs /dev
1212

13+
! blkid -L "EFI" >/dev/null ||
14+
mount -t efivarfs none /sys/firmware/efi/efivars
15+
1316
blkid
1417
findmnt
1518

@@ -19,6 +22,11 @@
1922
`[ ! -f /etc/initrd.mk.addon ] || cat /etc/initrd.mk.addon`
2023
EOF
2124

25+
grub_install="$( for f in grub-install grub2-install; do type -P "$f" && break; done )"
26+
grub_mkconfig="$( for f in grub-mkconfig grub2-mkconfig; do type -P "$f" && break; done )"
27+
grub_bootdir="$( find /boot -type d \( -name 'grub' -o -name 'grub2' \) )"
28+
grub_params="/etc/default/grub"
29+
2230
kver="$(find /lib/modules -mindepth 1 -maxdepth 1 -printf '%f\n' -quit)"
2331

2432
export PATH="/srv/.build/dest/usr/sbin:/srv/.build/dest/usr/bin:$PATH"
@@ -54,7 +62,7 @@
5462

5563
systemctl enable init-once
5664

57-
tee -a /etc/default/grub <<-EOF
65+
tee -a "$grub_params" <<-EOF
5866
GRUB_CMDLINE_LINUX_DEFAULT='console=ttyS0,115200n8 @CMDLINE@'
5967
GRUB_TIMEOUT=3
6068
GRUB_TERMINAL_INPUT='serial console'
@@ -71,11 +79,14 @@
7179
syspath="${syspath%/*}/uevent"
7280
bootdev="$(sed -n -e 's,^DEVNAME=,/dev/,p' "$syspath")"
7381

74-
grub2-install "$bootdev"
75-
grub2-mkconfig -o /boot/grub2/grub.cfg
82+
"$grub_install" "$bootdev"
83+
"$grub_mkconfig" -o "$grub_bootdir/grub.cfg"
7684

77-
ls -la /boot
78-
cat /etc/default/grub
85+
cat "$grub_params"
86+
{
87+
find /boot \! -type d -printf '%M %p\n'
88+
find /boot -type l -printf '%M %p -> %l\n'
89+
} | sort -t\ -k1,1
7990

8091
umount /proc /sys /dev
8192
%end

testing/testing-ubuntu-ks-initrd.cfg

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,32 @@
1010
mkdir -p /dev
1111
mount -t devtmpfs devfs /dev
1212

13+
! blkid -L "EFI" >/dev/null ||
14+
mount -t efivarfs none /sys/firmware/efi/efivars
15+
1316
blkid
1417
findmnt
1518

16-
cat /etc/fstab
17-
18-
# Hack. Drop symlink if any.
19-
cat /etc/os-release > /etc/os-release.$$
20-
rm -f /etc/os-release
21-
mv /etc/os-release.$$ /etc/os-release
19+
# Hack. Drop symlink. This change is necessary to avoid an error:
20+
# /etc/grub.d/10_linux_zfs: 403: .: cannot open /tmp/zfsmnt.QMGi2Y/etc/os-release: No such file
21+
if [ -L /etc/os-release ]; then
22+
cat /etc/os-release > /etc/os-release.$$
23+
rm -f /etc/os-release
24+
mv /etc/os-release.$$ /etc/os-release
25+
fi
2226

2327
tee /etc/initrd.mk <<-EOF
2428
IMAGEFILE = /boot/initrd.img-\$(KERNEL)\$(IMAGE_SUFFIX)
2529
AUTODETECT = all
2630
`[ ! -f /etc/initrd.mk.addon ] || cat /etc/initrd.mk.addon`
2731
EOF
2832

29-
kver="$(readlink -ev /boot/vmlinuz)"
30-
kver="${kver##*/vmlinuz-}"
33+
grub_install="$( for f in grub-install grub2-install; do type -P "$f" && break; done )"
34+
grub_mkconfig="$( for f in grub-mkconfig grub2-mkconfig; do type -P "$f" && break; done )"
35+
grub_bootdir="$( find /boot -type d \( -name 'grub' -o -name 'grub2' \) )"
36+
grub_params="/etc/default/grub"
37+
38+
kver="$(find /lib/modules -mindepth 1 -maxdepth 1 -printf '%f\n' -quit)"
3139

3240
export PATH="/srv/.build/dest/usr/sbin:/srv/.build/dest/usr/bin:$PATH"
3341

@@ -62,7 +70,7 @@
6270

6371
systemctl enable init-once
6472

65-
tee -a /etc/default/grub <<-EOF
73+
tee -a "$grub_params" <<-EOF
6674
GRUB_CMDLINE_LINUX_DEFAULT='console=ttyS0,115200n8 @CMDLINE@'
6775
GRUB_TIMEOUT=3
6876
GRUB_TERMINAL_INPUT='serial console'
@@ -77,8 +85,14 @@
7785
syspath="${syspath%/*}/uevent"
7886
bootdev="$(sed -n -e 's,^DEVNAME=,/dev/,p' "$syspath")"
7987

80-
grub-install "$bootdev"
81-
grub-mkconfig -o /boot/grub/grub.cfg
88+
"$grub_install" "$bootdev"
89+
"$grub_mkconfig" -o "$grub_bootdir/grub.cfg"
90+
91+
cat "$grub_params"
92+
{
93+
find /boot \! -type d -printf '%M %p\n'
94+
find /boot -type l -printf '%M %p -> %l\n'
95+
} | sort -t\ -k1,1
8296

8397
umount /proc /sys /dev
8498
%end

0 commit comments

Comments
 (0)