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
|
dir=distribution/leap/$releasever/appliances
|
||||||
case "$releasever" in
|
case "$releasever" in
|
||||||
15.6) file=openSUSE-Leap-$releasever-Minimal-VM.$basearch-Cloud.qcow2 ;;
|
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-Cloud.qcow2 ;;
|
||||||
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-kvm$(if [ "$basearch" = x86_64 ]; then echo '-and-xen'; fi).qcow2 ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# https://src.opensuse.org/openSUSE/Leap-Images/src/branch/leap-16.0/kiwi-templates-Minimal/Minimal.kiwi
|
# 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
|
# disable 会出现一堆提示信息,也无法 disable
|
||||||
for unit in $(
|
for unit in $(
|
||||||
chroot $os_dir systemctl list-unit-files |
|
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
|
); do
|
||||||
# 服务不存在时会报错
|
# 服务不存在时会报错
|
||||||
if chroot $os_dir systemctl -q is-enabled "$unit"; then
|
if chroot $os_dir systemctl -q is-enabled "$unit"; then
|
||||||
@ -3269,7 +3269,7 @@ remove_cloud_init() {
|
|||||||
;;
|
;;
|
||||||
zypper)
|
zypper)
|
||||||
# 加上 -u 才会删除依赖
|
# 加上 -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)
|
apt-get)
|
||||||
# ubuntu 25.04 开始有 cloud-init-base
|
# ubuntu 25.04 开始有 cloud-init-base
|
||||||
@ -3658,24 +3658,35 @@ EOF
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# rpm -qi 不支持通配符
|
# rpm -qi 不支持通配符
|
||||||
installed_kernel=$(chroot $os_dir rpm -qa 'kernel-*' --qf '%{NAME}\n' | grep -v firmware)
|
origin_kernel=$(chroot $os_dir rpm -qa 'kernel-*' --qf '%{NAME}\n' | grep -v firmware)
|
||||||
if ! [ "$(echo "$installed_kernel" | wc -l)" -eq 1 ]; then
|
if ! [ "$(echo "$origin_kernel" | wc -l)" -eq 1 ]; then
|
||||||
error_and_exit "Unexpected kernel installed: $installed_kernel"
|
error_and_exit "Unexpected kernel installed: $origin_kernel"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 不能同时装 kernel-default-base 和 kernel-default
|
# 16.0 能同时装 kernel-default-base 和 kernel-default
|
||||||
|
# tw 不能同时装 kernel-default-base 和 kernel-default
|
||||||
# 因此需要添加 --force-resolution 自动删除 kernel-default-base
|
# 因此需要添加 --force-resolution 自动删除 kernel-default-base
|
||||||
if ! [ "$installed_kernel" = "$target_kernel" ]; then
|
if ! [ "$origin_kernel" = "$target_kernel" ]; then
|
||||||
# x86 必须设置一个密码,否则报错,arm 没有这个问题
|
# x86 必须设置一个密码,否则报错,arm 没有这个问题
|
||||||
# Failed to get root password hash
|
# Failed to get root password hash
|
||||||
# Failed to import /etc/uefi/certs/76B6A6A0.crt
|
# 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
|
# 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
|
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
|
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
|
chroot $os_dir passwd -d root
|
||||||
else
|
|
||||||
chroot $os_dir zypper install -y --force-resolution $target_kernel
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user