windows: 支持 4Kn 硬盘

This commit is contained in:
bin456789 2025-05-05 21:37:44 +08:00
parent f4f2481009
commit 103ef84f92
No known key found for this signature in database
GPG Key ID: EE301B386DE6C11B
2 changed files with 19 additions and 1 deletions

View File

@ -2328,6 +2328,10 @@ get_disk_logic_sector_size() {
blockdev --getss "$1" blockdev --getss "$1"
} }
is_4kn() {
[ "$(blockdev --getss "$1")" = 4096 ]
}
is_xda_gt_2t() { is_xda_gt_2t() {
disk_size=$(get_disk_size /dev/$xda) disk_size=$(get_disk_size /dev/$xda)
disk_2t=$((2 * 1024 * 1024 * 1024 * 1024)) disk_2t=$((2 * 1024 * 1024 * 1024 * 1024))
@ -6527,6 +6531,12 @@ EOF
sed -i 's/EnableEMS=0/EnableEMS=1/i' $startnet_cmd sed -i 's/EnableEMS=0/EnableEMS=1/i' $startnet_cmd
fi fi
# 4kn EFI 分区最少要 260M
# https://learn.microsoft.com/windows-hardware/manufacture/desktop/hard-drives-and-partitions
if is_4kn /dev/$xda; then
sed -i 's/is4kn=0/is4kn=1/i' $startnet_cmd
fi
# Windows Thin PC 有 Windows\System32\winpeshl.ini # Windows Thin PC 有 Windows\System32\winpeshl.ini
# [LaunchApps] # [LaunchApps]
# %SYSTEMDRIVE%\windows\system32\drvload.exe, %SYSTEMDRIVE%\windows\inf\sdbus.inf # %SYSTEMDRIVE%\windows\system32\drvload.exe, %SYSTEMDRIVE%\windows\inf\sdbus.inf

View File

@ -93,6 +93,14 @@ for /f "tokens=3" %%a in (X:\disk.txt) do (
) )
del X:\disk.txt del X:\disk.txt
rem 这个变量会被 trans.sh 修改
set is4kn=0
if "%is4kn%"=="1" (
set EFISize=260
) else (
set EFISize=100
)
rem 重新分区/格式化 rem 重新分区/格式化
(if "%BootType%"=="efi" ( (if "%BootType%"=="efi" (
echo select disk %DiskIndex% echo select disk %DiskIndex%
@ -104,7 +112,7 @@ rem 重新分区/格式化
echo select part 3 echo select part 3
echo delete part override echo delete part override
echo create part efi size=100 echo create part efi size=%EFISize%
echo format fs=fat32 quick echo format fs=fat32 quick
echo create part msr size=16 echo create part msr size=16