windows: 不再写死 boot.wim 的引导卷索引

用于兼容某些精简版系统
This commit is contained in:
bin456789 2024-10-03 23:40:53 +08:00
parent 6a5ab5bc7c
commit b3fef989b0
No known key found for this signature in database
GPG Key ID: EE301B386DE6C11B
4 changed files with 45 additions and 23 deletions

View File

@ -126,6 +126,7 @@ certutil -urlcache -f -split https://jihulab.com/bin456789/reinstall/-/raw/main/
- On virtual machines, the appropriate official slimmed-down kernel will be automatically installed.
- To install Red Hat, you need to provide the `qcow2` image link obtained from <https://access.redhat.com/downloads/content/rhel>.
- Username `root`, password `123@@@`. It may take a few minutes for the password to take effect on the first boot.
- When switching to key-based authentication, you also need to modify the files inside `/etc/ssh/sshd_config.d/`
```bash
bash reinstall.sh centos 9
@ -218,6 +219,8 @@ bash reinstall.sh netboot.xyz
- If remote login fails, try using the username `.\administrator`.
- The machine with a static IP will automatically configure the IP. It may take a few minutes to take effect on the first boot.
![Installing Windows](https://github.com/bin456789/reinstall/assets/7548515/07c1aea2-1ce3-4967-904f-aaf9d6eec3f7)
#### Method 1: Allow the script to automatically find the ISO
- The script will search for ISO files from <https://massgrave.dev/genuine-installation-media.html>. The ISOs provided on this site are all official versions.
@ -225,7 +228,7 @@ bash reinstall.sh netboot.xyz
```bash
bash reinstall.sh windows \
--image-name 'Windows 10 Enterprise LTSC 2021' \
--image-name 'Windows 11 Enterprise LTSC 2024' \
--lang zh-cn
```
@ -282,8 +285,8 @@ zh-tw
```bash
bash reinstall.sh windows \
--image-name 'Windows 10 Enterprise LTSC 2021' \
--iso 'https://drive.massgrave.dev/en-us_windows_10_enterprise_ltsc_2021_x64_dvd_d289cf96.iso'
--image-name 'Windows 11 Enterprise LTSC 2024' \
--iso 'https://drive.massgrave.dev/zh-cn_windows_11_enterprise_ltsc_2024_x64_dvd_cff9cd2d.iso'
```
> [!IMPORTANT]
@ -308,20 +311,18 @@ bash reinstall.sh windows \
</details>
![Installing Windows](https://github.com/bin456789/reinstall/assets/7548515/07c1aea2-1ce3-4967-904f-aaf9d6eec3f7)
#### Parameters Description
`--image-name` Specify the image to install, case-insensitive, Commonly used images include:
```text
Windows 7 Ultimate
Windows 10 Enterprise LTSC 2021
Windows 11 Pro
Windows Server 2022 SERVERDATACENTER
Windows 11 Enterprise LTSC 2024
Windows Server 2025 SERVERDATACENTER
```
Open [DISM++](https://github.com/Chuyu-Team/Dism-Multi-language/releases) File menu > Open Image File, select the iso to be installed to get the image name.
Open [DISM++](https://github.com/Chuyu-Team/Dism-Multi-language/releases) File menu > Open Image File, select the iso to be installed to get the image name (full system name), and all available image names are installable.
![image-name](https://github.com/bin456789/reinstall/assets/7548515/5aae0a9b-61e2-4f66-bb98-d470a6beaac2)
@ -375,8 +376,9 @@ Most ARM machines support ISO installation of Windows 11 24H2, but some machines
No need to download the driver, just open Device Manager, find the graphics card, select 'Update driver', and choose `Red Hat VirtIO GPU DOD controller` from the list.
![virtio-gpu-1](https://github.com/user-attachments/assets/bf3a9af6-13d8-4f93-9d6c-d3b2dbddb37d)
![virtio-gpu-2](https://github.com/user-attachments/assets/a9006a78-838f-45bf-a556-2dba193d3c03)
![virtio-gpu-1](https://github.com/user-attachments/assets/503e1d82-4fa9-4486-917e-73326ad7c988)
![virtio-gpu-2](https://github.com/user-attachments/assets/bf3a9af6-13d8-4f93-9d6c-d3b2dbddb37d)
![virtio-gpu-3](https://github.com/user-attachments/assets/a9006a78-838f-45bf-a556-2dba193d3c03)
</details>

View File

@ -126,6 +126,7 @@ certutil -urlcache -f -split https://jihulab.com/bin456789/reinstall/-/raw/main/
- 在虚拟机上,会自动安装合适的官方精简内核
- 安装 Red Hat 需填写 <https://access.redhat.com/downloads/content/rhel> 得到的 `qcow2` 镜像链接
- 用户名 `root` 密码 `123@@@`,可能首次开机几分钟后密码才生效
- 改为密钥登录时,还要修改 `/etc/ssh/sshd_config.d/` 里面的文件
```bash
bash reinstall.sh centos 9
@ -218,6 +219,8 @@ bash reinstall.sh netboot.xyz
- 如果远程登录失败,尝试使用用户名 `.\administrator`
- 静态机器会自动配置好 IP可能首次开机几分钟后才生效
![Windows 安装中](https://github.com/bin456789/reinstall/assets/7548515/07c1aea2-1ce3-4967-904f-aaf9d6eec3f7)
#### 方法 1: 让脚本自动查找 ISO
- 脚本会从 <https://massgrave.dev/genuine-installation-media.html> 查找 iso该网站提供的 iso 都是官方原版
@ -225,7 +228,7 @@ bash reinstall.sh netboot.xyz
```bash
bash reinstall.sh windows \
--image-name 'Windows 10 Enterprise LTSC 2021' \
--image-name 'Windows 11 Enterprise LTSC 2024' \
--lang zh-cn
```
@ -282,8 +285,8 @@ zh-tw
```bash
bash reinstall.sh windows \
--image-name 'Windows 10 Enterprise LTSC 2021' \
--iso 'https://drive.massgrave.dev/en-us_windows_10_enterprise_ltsc_2021_x64_dvd_d289cf96.iso'
--image-name 'Windows 11 Enterprise LTSC 2024' \
--iso 'https://drive.massgrave.dev/zh-cn_windows_11_enterprise_ltsc_2024_x64_dvd_cff9cd2d.iso'
```
> [!IMPORTANT]
@ -308,20 +311,18 @@ bash reinstall.sh windows \
</details>
![Installing Windows](https://github.com/bin456789/reinstall/assets/7548515/07c1aea2-1ce3-4967-904f-aaf9d6eec3f7)
#### 参数说明
`--image-name` 指定要安装的映像,不区分大小写,常用映像有:
```text
Windows 7 Ultimate
Windows 10 Enterprise LTSC 2021
Windows 11 Pro
Windows Server 2022 SERVERDATACENTER
Windows 11 Enterprise LTSC 2024
Windows Server 2025 SERVERDATACENTER
```
打开 [DISM++](https://github.com/Chuyu-Team/Dism-Multi-language/releases) 文件菜单 > 打开映像文件,选择要安装的 iso可以得到映像名称
打开 [DISM++](https://github.com/Chuyu-Team/Dism-Multi-language/releases) 文件菜单 > 打开映像文件,选择要安装的 iso可以得到映像名称(系统全名),所有映像名称都可安装
![image-name](https://github.com/bin456789/reinstall/assets/7548515/5aae0a9b-61e2-4f66-bb98-d470a6beaac2)
@ -375,8 +376,9 @@ Windows Server 2022 SERVERDATACENTER
不需要下载驱动,只需打开设备管理器,找到显卡,选择更新驱动,在列表中选择 `Red Hat VirtIO GPU DOD controller`
![virtio-gpu-1](https://github.com/user-attachments/assets/bf3a9af6-13d8-4f93-9d6c-d3b2dbddb37d)
![virtio-gpu-2](https://github.com/user-attachments/assets/a9006a78-838f-45bf-a556-2dba193d3c03)
![virtio-gpu-1](https://github.com/user-attachments/assets/503e1d82-4fa9-4486-917e-73326ad7c988)
![virtio-gpu-2](https://github.com/user-attachments/assets/bf3a9af6-13d8-4f93-9d6c-d3b2dbddb37d)
![virtio-gpu-3](https://github.com/user-attachments/assets/a9006a78-838f-45bf-a556-2dba193d3c03)
</details>

View File

@ -654,7 +654,11 @@ get_windows_iso_links() {
case "$edition" in
home | 'home single language') echo consumer ;;
pro | education | enterprise | 'pro education' | 'pro for workstations') echo business ;;
# iot
'iot enterprise') echo 'iot enterprise' ;;
# iot ltsc
'iot enterprise ltsc 2019' | 'iot enterprise ltsc 2021') echo "$edition" ;;
# ltsc
'enterprise 2015 ltsb' | 'enterprise 2016 ltsb' | 'enterprise ltsc 2019') echo "$edition" ;;
'enterprise ltsc 2021')
# arm64 的 enterprise ltsc 2021 要下载 iot enterprise ltsc 2021 iso
@ -663,16 +667,24 @@ get_windows_iso_links() {
x86 | x64) echo 'enterprise ltsc 2021' ;;
esac
;;
'iot enterprise ltsc 2019' | 'iot enterprise ltsc 2021') echo "$edition" ;;
esac
;;
11)
case "$edition" in
home | 'home single language') echo consumer ;;
pro | education | enterprise | 'pro education' | 'pro for workstations') echo business ;;
# iot
'iot enterprise' | 'iot enterprise subscription') echo 'iot enterprise' ;;
'enterprise ltsc 2024') echo 'enterprise ltsc 2024' ;;
# iot ltsc
'iot enterprise ltsc 2024' | 'iot enterprise ltsc 2024 subscription') echo 'iot enterprise ltsc 2024' ;;
# ltsc
'enterprise ltsc 2024')
# arm64 的 enterprise ltsc 2024 要下载 iot enterprise ltsc 2024 iso
case "$arch_win" in
arm64) echo 'iot enterprise ltsc 2024' ;;
x64) echo 'enterprise ltsc 2024' ;;
esac
;;
esac
;;
esac

View File

@ -3583,6 +3583,11 @@ install_windows() {
fi
echo "Image Name: $image_name"
get_boot_wim_prop() {
property=$1
wiminfo "/os/boot.wim" | grep -i "^$property:" | cut -d: -f2- | xargs
}
get_selected_image_prop() {
property=$1
wiminfo "$install_wim" "$image_name" | grep -i "^$property:" | cut -d: -f2- | xargs
@ -4074,7 +4079,8 @@ install_windows() {
# 挂载 boot.wim
info "mount boot.wim"
mkdir -p /wim
wimmountrw /os/boot.wim 2 /wim/
boot_index=$(get_boot_wim_prop 'Boot Index')
wimmountrw /os/boot.wim "$boot_index" /wim/
cp_drivers() {
src=$1