改用 alpine 作为中间系统

This commit is contained in:
bin456789
2023-05-13 00:14:46 +08:00
parent f03a178260
commit 72f486d252
7 changed files with 406 additions and 222 deletions

92
ks.cfg
View File

@ -1,4 +1,4 @@
# shellcheck disable=2148,2215
# shellcheck disable=2148
# 设置
keyboard --vckeymap=us --xlayouts='us'
lang en_US.UTF-8
@ -18,38 +18,9 @@ part / --fstype=ext4 --grow # 不用 xfs 因为不能缩小容量
# 软件
%packages --ignoremissing # el9 minimal.iso fedora Server repo/iso 没有 tuned
@^Minimal Install
tuned
tuned # 改善性能
%include /tmp/include-packages-for-resize
# 不删除usb相关的包因为甲骨文云有usb设备作用未知
# -usb_modeswitch
# -usbutils
# 无线
-iw
-crda
-rfkill
# shellcheck disable=2211
-iwl*-firmware
# 虚拟机用不上
-irqbalance # 多核+直通设备可能有用?
-microcode_ctl
-smartmontools
-aic94xx-firmware
-alsa-firmware
-ivtv-firmware
# -linux-firmware # 去除后安装centos 8会报错
# fedora
-amd-gpu-firmware
-atheros-firmware
-brcmfmac-firmware
-intel-gpu-firmware
-mt7xxx-firmware
-nvidia-gpu-firmware
-realtek-firmware
%include /tmp/exclude-packages-for-vm
%end
# 禁用防火墙
@ -67,6 +38,13 @@ selinux --disabled
distro=$(awk -F: '{ print $3 }' </etc/system-release-cpe)
releasever=$(awk -F: '{ print $5 }' </etc/system-release-cpe)
# 重新整理 extragrub把两侧的引号吃掉了eval出错要重新添加引号
# 提取 extra.localtest extra.confhome extra.mirrorlist
prefix=extra
for var in $(grep -o "\b$prefix\.[^ ]*" /proc/cmdline | xargs); do
eval "$(echo $var | sed -E "s/$prefix\.([^=]*)=(.*)/\1='\2'/")"
done
# 有 installer 分区,表示用了两步安装
include=/tmp/include-packages-for-resize
touch $include
@ -76,7 +54,7 @@ if [ -e /dev/disk/by-label/installer ]; then
mount /dev/disk/by-label/installer /installer
mount /dev/disk/by-label/installer /installer -o remount,rw
swapfile=/installer/swapfile
if -v fallocate; then
if command -v fallocate; then
fallocate -l 1GiB $swapfile
else
dd if=/dev/zero of=$swapfile bs=1MiB count=1024
@ -95,11 +73,42 @@ if [ -e /dev/disk/by-label/installer ]; then
fi
fi
# 重新整理 extra因为grub会处理掉引号要重新添加引号
# 提取 extra.localtest extra.confhome extra.mirrorlist
for var in $(grep -o '\bextra\.[^ ]*' /proc/cmdline | xargs); do
eval " $(echo $var | sed -E "s/extra\.([^=]*)=(.*)/\1='\2'/")"
done
# 排除虚拟机用不上的组件
include=/tmp/exclude-packages-for-vm
touch $include
if hostnamectl | grep 'Virtualization:'; then
cat <<EOF >$include
# 不删除usb相关的包 因为甲骨文云有usb设备 作用未知
# -usb_modeswitch
# -usbutils
# 无线
-iw
-crda
-rfkill
-iwl*-firmware
# 其他
-irqbalance # 多核+直通设备可能有用?
-microcode_ctl
-smartmontools
# 各种固件
-aic94xx-firmware
-alsa-firmware
-ivtv-firmware
# -linux-firmware # 去除后安装centos 8会报错
# fedora 特有固件
-amd-gpu-firmware
-atheros-firmware
-brcmfmac-firmware
-intel-gpu-firmware
-mt7xxx-firmware
-nvidia-gpu-firmware
-realtek-firmware
EOF
fi
# 设置安装源
include=/tmp/include-url-command
@ -128,8 +137,11 @@ fi
# 分步安装的系统要将最后一个分区installer合并到系统分区
if [ -e /dev/disk/by-label/installer ]; then
# 提取 extra.confhome
eval "$(grep -o '\bextra\.[^ ]*' /proc/cmdline | sed 's/\bextra.//')"
# 提取 extra.localtest extra.confhome extra.mirrorlist
prefix=extra
for var in $(grep -o "\b$prefix\.[^ ]*" /proc/cmdline | xargs); do
eval "$(echo $var | sed -E "s/$prefix\.([^=]*)=(.*)/\1='\2'/")"
done
cd /
curl -O $confhome/resize.sh