mirror of
https://github.com/bin456789/reinstall.git
synced 2026-10-04 14:37:45 +08:00
windows: 区分甲骨文的 vioscsi
This commit is contained in:
@@ -6499,6 +6499,13 @@ get_drivers() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
is_xda_non_standard_virtio_scsi() {
|
||||||
|
get_drivers "/sys/class/block/$xda" | grep -q virtio_scsi &&
|
||||||
|
device_path="$(readlink -f "/sys/class/block/$xda" | sed 's,/virtio.*,,')" &&
|
||||||
|
[ -e "$device_path/subsystem_vendor" ] &&
|
||||||
|
! [ "$(cat "$device_path/subsystem_vendor")" = 0x1af4 ]
|
||||||
|
}
|
||||||
|
|
||||||
get_windows_type_from_windows_drive() {
|
get_windows_type_from_windows_drive() {
|
||||||
local os_dir=$1
|
local os_dir=$1
|
||||||
|
|
||||||
@@ -7563,11 +7570,21 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
case "$nt_ver" in
|
case "$nt_ver" in
|
||||||
6.0 | 6.1) $support_sha256 &&
|
6.0 | 6.1)
|
||||||
dir=archive-virtio/virtio-win-0.1.187-1 ||
|
if $support_sha256; then
|
||||||
dir=archive-virtio/virtio-win-0.1.173-9 ;; # vista|w7|2k8|2k8R2
|
if is_xda_non_standard_virtio_scsi; then
|
||||||
|
dir=archive-virtio/virtio-win-0.1.187-1 # 甲骨文
|
||||||
|
else
|
||||||
|
dir=stable-virtio
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
dir=archive-virtio/virtio-win-0.1.173-9
|
||||||
|
fi
|
||||||
|
;; # vista|w7|2k8|2k8R2
|
||||||
6.2 | 6.3) dir=archive-virtio/virtio-win-0.1.215-2 ;; # w8|w8.1|2k12|2k12R2
|
6.2 | 6.3) dir=archive-virtio/virtio-win-0.1.215-2 ;; # w8|w8.1|2k12|2k12R2
|
||||||
*)
|
*) dir=stable-virtio ;;
|
||||||
|
esac
|
||||||
|
|
||||||
# 先获取最新版本号,再下载
|
# 先获取最新版本号,再下载
|
||||||
# 用 stable-virtio 的话国内镜像下载的可能是缓存的旧版
|
# 用 stable-virtio 的话国内镜像下载的可能是缓存的旧版
|
||||||
|
|
||||||
@@ -7578,9 +7595,11 @@ EOF
|
|||||||
|
|
||||||
# https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/CHECKSUM
|
# https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/CHECKSUM
|
||||||
# 路径是文件,应该不会弹出 anubis 验证?
|
# 路径是文件,应该不会弹出 anubis 验证?
|
||||||
|
if [ "$dir" = stable-virtio ]; then
|
||||||
if ! dir=$(get_latest_virtio_dir "$baseurl"); then
|
if ! dir=$(get_latest_virtio_dir "$baseurl"); then
|
||||||
mirror_baseurl=https://files.m.daocloud.io/$(echo "$baseurl" | sed -E 's,^https?://,,i')
|
if is_any_ipv4_has_internet &&
|
||||||
if is_any_ipv4_has_internet && dir=$(get_latest_virtio_dir "$mirror_baseurl"); then
|
mirror_baseurl=https://files.m.daocloud.io/$(echo "$baseurl" | sed -E 's,^https?://,,i') &&
|
||||||
|
dir=$(get_latest_virtio_dir "$mirror_baseurl"); then
|
||||||
baseurl=$mirror_baseurl
|
baseurl=$mirror_baseurl
|
||||||
elif [ "$arch_wim" = x86 ] || [ "$arch_wim" = x86_64 ]; then
|
elif [ "$arch_wim" = x86 ] || [ "$arch_wim" = x86_64 ]; then
|
||||||
add_driver_virtio_from_rpm "$@"
|
add_driver_virtio_from_rpm "$@"
|
||||||
@@ -7589,9 +7608,7 @@ EOF
|
|||||||
error_and_exit "Failed to get latest virtio-win version."
|
error_and_exit "Failed to get latest virtio-win version."
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
# dir=stable-virtio
|
fi
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# 如果 dir 包含数字,则是从具体版本号文件夹下载,文件不会更新,可以使用国内镜像
|
# 如果 dir 包含数字,则是从具体版本号文件夹下载,文件不会更新,可以使用国内镜像
|
||||||
if [[ "$dir" =~ [0-9] ]]; then
|
if [[ "$dir" =~ [0-9] ]]; then
|
||||||
|
|||||||
Reference in New Issue
Block a user