mirror of
https://github.com/bin456789/reinstall.git
synced 2025-12-10 07:28:56 +08:00
opensuse: 16.0 重新使用 cloud 镜像
This commit is contained in:
@ -1498,8 +1498,8 @@ Continue?
|
||||
dir=distribution/leap/$releasever/appliances
|
||||
case "$releasever" in
|
||||
15.6) file=openSUSE-Leap-$releasever-Minimal-VM.$basearch-Cloud.qcow2 ;;
|
||||
# 16.0) file=Leap-$releasever-Minimal-VM.$basearch-Cloud.qcow2 ;; # 缺少 openSUSE-repos-Leap 包,导致没有源
|
||||
16.0) file=Leap-$releasever-Minimal-VM.$basearch-kvm$(if [ "$basearch" = x86_64 ]; then echo '-and-xen'; fi).qcow2 ;;
|
||||
16.0) file=Leap-$releasever-Minimal-VM.$basearch-Cloud.qcow2 ;;
|
||||
# 16.0) file=Leap-$releasever-Minimal-VM.$basearch-kvm$(if [ "$basearch" = x86_64 ]; then echo '-and-xen'; fi).qcow2 ;;
|
||||
esac
|
||||
|
||||
# https://src.opensuse.org/openSUSE/Leap-Images/src/branch/leap-16.0/kiwi-templates-Minimal/Minimal.kiwi
|
||||
|
||||
31
trans.sh
31
trans.sh
@ -3252,7 +3252,7 @@ remove_cloud_init() {
|
||||
# disable 会出现一堆提示信息,也无法 disable
|
||||
for unit in $(
|
||||
chroot $os_dir systemctl list-unit-files |
|
||||
grep -E '^(cloud-init-.*|cloud-config|cloud-final)\.(service|socket)' | grep enabled | awk '{print $1}'
|
||||
grep -E '^(cloud-init|cloud-init-.*|cloud-config|cloud-final)\.(service|socket)' | grep enabled | awk '{print $1}'
|
||||
); do
|
||||
# 服务不存在时会报错
|
||||
if chroot $os_dir systemctl -q is-enabled "$unit"; then
|
||||
@ -3269,7 +3269,7 @@ remove_cloud_init() {
|
||||
;;
|
||||
zypper)
|
||||
# 加上 -u 才会删除依赖
|
||||
chroot $os_dir zypper remove -y -u cloud-init
|
||||
chroot $os_dir zypper remove -y -u cloud-init cloud-init-config-suse
|
||||
;;
|
||||
apt-get)
|
||||
# ubuntu 25.04 开始有 cloud-init-base
|
||||
@ -3658,24 +3658,35 @@ EOF
|
||||
fi
|
||||
|
||||
# rpm -qi 不支持通配符
|
||||
installed_kernel=$(chroot $os_dir rpm -qa 'kernel-*' --qf '%{NAME}\n' | grep -v firmware)
|
||||
if ! [ "$(echo "$installed_kernel" | wc -l)" -eq 1 ]; then
|
||||
error_and_exit "Unexpected kernel installed: $installed_kernel"
|
||||
origin_kernel=$(chroot $os_dir rpm -qa 'kernel-*' --qf '%{NAME}\n' | grep -v firmware)
|
||||
if ! [ "$(echo "$origin_kernel" | wc -l)" -eq 1 ]; then
|
||||
error_and_exit "Unexpected kernel installed: $origin_kernel"
|
||||
fi
|
||||
|
||||
# 不能同时装 kernel-default-base 和 kernel-default
|
||||
# 16.0 能同时装 kernel-default-base 和 kernel-default
|
||||
# tw 不能同时装 kernel-default-base 和 kernel-default
|
||||
# 因此需要添加 --force-resolution 自动删除 kernel-default-base
|
||||
if ! [ "$installed_kernel" = "$target_kernel" ]; then
|
||||
if ! [ "$origin_kernel" = "$target_kernel" ]; then
|
||||
# x86 必须设置一个密码,否则报错,arm 没有这个问题
|
||||
# Failed to get root password hash
|
||||
# Failed to import /etc/uefi/certs/76B6A6A0.crt
|
||||
# warning: %post(kernel-default-5.14.21-150500.55.83.1.x86_64) scriptlet failed, exit status 255
|
||||
need_password_workaround=false
|
||||
if grep -q '^root:[:!*]' $os_dir/etc/shadow; then
|
||||
need_password_workaround=true
|
||||
fi
|
||||
|
||||
if $need_password_workaround; then
|
||||
echo "root:$(mkpasswd '')" | chroot $os_dir chpasswd -e
|
||||
chroot $os_dir zypper install -y --force-resolution $target_kernel
|
||||
fi
|
||||
# 安装新内核
|
||||
chroot $os_dir zypper install -y --force-resolution $target_kernel
|
||||
# 删除旧内核
|
||||
if chroot $os_dir rpm -q $origin_kernel; then
|
||||
chroot $os_dir zypper remove -y --force-resolution $origin_kernel
|
||||
fi
|
||||
if $need_password_workaround; then
|
||||
chroot $os_dir passwd -d root
|
||||
else
|
||||
chroot $os_dir zypper install -y --force-resolution $target_kernel
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user