mirror of
https://github.com/bin456789/reinstall.git
synced 2025-01-19 04:49:13 +08:00
windows: 用 NT 版本号筛选驱动
This commit is contained in:
parent
52c9a7caa5
commit
75301bd040
68
trans.sh
68
trans.sh
@ -824,7 +824,7 @@ create_part() {
|
|||||||
# 按iso容量计算分区大小,200m用于驱动和文件系统自身占用
|
# 按iso容量计算分区大小,200m用于驱动和文件系统自身占用
|
||||||
part_size="$((size_bytes / 1024 / 1024 + 200))MiB"
|
part_size="$((size_bytes / 1024 / 1024 + 200))MiB"
|
||||||
|
|
||||||
apk add ntfs-3g-progs virt-what wimlib rsync
|
apk add ntfs-3g-progs
|
||||||
# 虽然ntfs3不需要fuse,但wimmount需要,所以还是要保留
|
# 虽然ntfs3不需要fuse,但wimmount需要,所以还是要保留
|
||||||
modprobe fuse ntfs3
|
modprobe fuse ntfs3
|
||||||
if is_efi; then
|
if is_efi; then
|
||||||
@ -1810,6 +1810,8 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
install_windows() {
|
install_windows() {
|
||||||
|
apk add wimlib virt-what dmidecode rsync pev
|
||||||
|
|
||||||
# shellcheck disable=SC2154
|
# shellcheck disable=SC2154
|
||||||
download $iso /os/windows.iso
|
download $iso /os/windows.iso
|
||||||
mkdir -p /iso
|
mkdir -p /iso
|
||||||
@ -1847,9 +1849,15 @@ install_windows() {
|
|||||||
# 否则改成正确的大小写
|
# 否则改成正确的大小写
|
||||||
image_name=$(wiminfo $install_wim | grep -ix "Name:[[:blank:]]*$image_name" | cut -d: -f2 | xargs)
|
image_name=$(wiminfo $install_wim | grep -ix "Name:[[:blank:]]*$image_name" | cut -d: -f2 | xargs)
|
||||||
fi
|
fi
|
||||||
|
echo "Image Name: $image_name"
|
||||||
|
|
||||||
is_win7_or_win2008r2() {
|
# 用内核版本号筛选驱动
|
||||||
echo $image_name | grep -iEw '^Windows (7|Server 2008 R2)'
|
# 使得可以安装 Hyper-V Server / Azure Stack HCI 等 Windows Server 变种
|
||||||
|
nt_ver="$(peres -v /iso/setup.exe | grep 'Product Version:' | cut -d: -f2 | xargs | cut -d. -f 1,2)"
|
||||||
|
echo "NT Version: $nt_ver"
|
||||||
|
|
||||||
|
is_nt_6_1() {
|
||||||
|
[ "$nt_ver" = 6.1 ]
|
||||||
}
|
}
|
||||||
|
|
||||||
is_win11() {
|
is_win11() {
|
||||||
@ -1902,8 +1910,9 @@ install_windows() {
|
|||||||
[ "$arch_wim" = x86_64 ]; then
|
[ "$arch_wim" = x86_64 ]; then
|
||||||
# aws nitro
|
# aws nitro
|
||||||
# 只有 x64 位驱动
|
# 只有 x64 位驱动
|
||||||
# https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/WindowsGuide/migrating-latest-types.html
|
# https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/WindowsGuide/aws-nvme-drivers.html
|
||||||
if is_win7_or_win2008r2; then
|
# https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/WindowsGuide/enhanced-networking-ena.html
|
||||||
|
if is_nt_6_1; then
|
||||||
download https://s3.amazonaws.com/ec2-windows-drivers-downloads/NVMe/1.3.2/AWSNVMe.zip $drv/AWSNVMe.zip
|
download https://s3.amazonaws.com/ec2-windows-drivers-downloads/NVMe/1.3.2/AWSNVMe.zip $drv/AWSNVMe.zip
|
||||||
download https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/x64/2.2.3/AwsEnaNetworkDriver.zip $drv/AwsEnaNetworkDriver.zip
|
download https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/x64/2.2.3/AwsEnaNetworkDriver.zip $drv/AwsEnaNetworkDriver.zip
|
||||||
else
|
else
|
||||||
@ -1918,10 +1927,10 @@ install_windows() {
|
|||||||
# aws xen
|
# aws xen
|
||||||
# 只有 64 位驱动
|
# 只有 64 位驱动
|
||||||
# 未测试
|
# 未测试
|
||||||
# https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/WindowsGuide/Upgrading_PV_drivers.html
|
# https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/WindowsGuide/xen-drivers-overview.html
|
||||||
apk add msitools
|
apk add msitools
|
||||||
|
|
||||||
if is_win7_or_win2008r2; then
|
if is_nt_6_1; then
|
||||||
download https://s3.amazonaws.com/ec2-windows-drivers-downloads/AWSPV/8.3.5/AWSPVDriver.zip $drv/AWSPVDriver.zip
|
download https://s3.amazonaws.com/ec2-windows-drivers-downloads/AWSPV/8.3.5/AWSPVDriver.zip $drv/AWSPVDriver.zip
|
||||||
else
|
else
|
||||||
download https://s3.amazonaws.com/ec2-windows-drivers-downloads/AWSPV/Latest/AWSPVDriver.zip $drv/AWSPVDriver.zip
|
download https://s3.amazonaws.com/ec2-windows-drivers-downloads/AWSPV/Latest/AWSPVDriver.zip $drv/AWSPVDriver.zip
|
||||||
@ -1952,27 +1961,21 @@ install_windows() {
|
|||||||
# virtio
|
# virtio
|
||||||
# x86 x64 arm64 都有
|
# x86 x64 arm64 都有
|
||||||
# https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/
|
# https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/
|
||||||
case $(echo "$image_name" | to_lower) in
|
|
||||||
'windows server 2022'*) sys=2k22 ;;
|
# 没有 vista 文件夹
|
||||||
'windows server 2019'*) sys=2k19 ;;
|
case "$nt_ver" in
|
||||||
'windows server 2016'*) sys=2k16 ;;
|
6.0) sys=2k8 ;;
|
||||||
'windows server 2012 R2'*) sys=2k12R2 ;;
|
6.1) sys=w7 ;;
|
||||||
'windows server 2012'*) sys=2k12 ;;
|
6.2) sys=w8 ;;
|
||||||
'windows server 2008 R2'*) sys=2k8R2 ;;
|
6.3) sys=w8.1 ;;
|
||||||
'windows server 2008'*) sys=2k8 ;;
|
10.0) sys=w10 ;;
|
||||||
'windows 11'*) sys=w11 ;;
|
|
||||||
'windows 10'*) sys=w10 ;;
|
|
||||||
'windows 8.1'*) sys=w8.1 ;;
|
|
||||||
'windows 8'*) sys=w8 ;;
|
|
||||||
'windows 7'*) sys=w7 ;;
|
|
||||||
'windows vista'*) sys=2k8 ;; # virtio 没有 vista 专用驱动
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
case "$sys" in
|
|
||||||
# https://github.com/virtio-win/virtio-win-pkg-scripts/issues/40
|
# https://github.com/virtio-win/virtio-win-pkg-scripts/issues/40
|
||||||
w7 | 2k8*) dir=archive-virtio/virtio-win-0.1.173-9 ;;
|
|
||||||
# https://github.com/virtio-win/virtio-win-pkg-scripts/issues/61
|
# https://github.com/virtio-win/virtio-win-pkg-scripts/issues/61
|
||||||
w8* | 2k12*) dir=archive-virtio/virtio-win-0.1.215-1 ;;
|
case "$sys" in
|
||||||
|
vista | w7 | 2k8 | 2k8R2) dir=archive-virtio/virtio-win-0.1.173-9 ;;
|
||||||
|
w8 | w8.1 | 2k12 | 2k12R2) dir=archive-virtio/virtio-win-0.1.215-1 ;;
|
||||||
*) dir=stable-virtio ;;
|
*) dir=stable-virtio ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@ -1993,21 +1996,8 @@ install_windows() {
|
|||||||
wget $gce_repo$link -O- | tar -xzf- -C $drv/gce/$name
|
wget $gce_repo$link -O- | tar -xzf- -C $drv/gce/$name
|
||||||
done
|
done
|
||||||
|
|
||||||
# 没有 vista 驱动
|
# 没有 win6.0 文件夹
|
||||||
# 没有专用的 win11 驱动
|
sys_gce=win$nt_ver
|
||||||
case $(echo "$image_name" | to_lower) in
|
|
||||||
'windows server 2022'*) sys_gce=win10.0 ;;
|
|
||||||
'windows server 2019'*) sys_gce=win10.0 ;;
|
|
||||||
'windows server 2016'*) sys_gce=win10.0 ;;
|
|
||||||
'windows server 2012 R2'*) sys_gce=win6.3 ;;
|
|
||||||
'windows server 2012'*) sys_gce=win6.2 ;;
|
|
||||||
'windows server 2008 R2'*) sys_gce=win6.1 ;;
|
|
||||||
'windows 11'*) sys_gce=win10.0 ;;
|
|
||||||
'windows 10'*) sys_gce=win10.0 ;;
|
|
||||||
'windows 8.1'*) sys_gce=win6.3 ;;
|
|
||||||
'windows 8'*) sys_gce=win6.2 ;;
|
|
||||||
'windows 7'*) sys_gce=win6.1 ;;
|
|
||||||
esac
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user