2012山里来 发表于 2016-6-18 14:57:09

UEFI+GPT快速部署Windows教程 (远景_181579033)

本帖最后由 2012山里来 于 2016-6-18 15:14 编辑

UEFI+GPT已经成为主流,如何快速简单部署呢,阅读完本文新手也可以做到。

一)、准备一个4GB以上的U盘,制作PE启动盘。

PE是x64位的,是微软官方的,提取自windows 10 1511版ADK。 PE只要支持DISM和diskpart 就行,UEFI引导不是必须的(这个PE是提取win10 ADK 支持UEFI启动U盘)。

PE下载地址: Win10pex64.iso 密码: jbq4

下载这个UltraISO 9.6.5.3237写入硬盘映像

    注册名:Guanjiu
    注册码:A06C-83A7-701D-6CFC



隐藏:可以把剩余的U盘空间格式化成NTFS格式,方便存储大于4GB的封装过的wim。

二)、下载原版SW_DVD5_Win_Pro_7w_SP1_64BIT_ChnSimp_-2_MLF_X17-59526.ISO(本方法适合WIN7 64位以上Windows系统,包括Windows Server)

把Windows ISO文件镜像解压并将Sources文件夹内的install.wim拷贝到U盘里(U盘可事先格式化成NTFS格式,方便保存更大的wim文件)

注: 我只是拿WIN7举例,大多数人还不会把WIN7 用UEFI引导安装,所以我特意写了WIN7 放在WIN10版里(gpt分区格式是为了大于2t硬盘设计的,所以普通小于2t的也没有必要使用gpt分区。uefi启动也无需一定是gpt分区,uefi只要引导分区是fat32就可以了。另外win7对uefi的兼容性也不是很好,也不像win8开始那样支持快速启动,也没有uefi启动的必要)。

三)、在U盘里创建硬盘分区文本文档,文件名为UEFIGPT.TXT

硬盘分区信息,例如我想给500G的硬盘分3个区,C盘100000MB命名为Windows,D盘170000MB,剩下的为E盘,代码如下。

    select disk 0
    clean
    convert gpt
    create partition efi size=100
    format quick fs=fat32 label="System"
    assign letter="S"
    create partition msr size=128
    create partition primary size=100000
    format quick fs=ntfs label="Windows"
    assign letter="W"
    create partition primary size=170000
    format quick fs=ntfs
    assign letter="P"
    create partition primary
    format quick fs=ntfs
    assign letter="Q"
    list volume
    exit

复制代码

保存上面代码重命名为UEFIGPT.TXT

四)、新建脚本文件:ApplyImage.bat

内容如下:

    @echo off
    diskpart /s UEFIGPT.TXT
    dism /Apply-Image /ImageFile:%~dp0install.wim /Index:1 /ApplyDir:W:\
    bcdboot W:\Windows /s s: /f UEFI /l zh-cn

复制代码

保存上面代码重命名为ApplyImage.bat

五)、保证U盘里有三个文件:install.wim、UEFIGPT.TXT和ApplyImage.bat在同一个目录内

开机从U盘引导启动进入PE命令行界面,执行U盘里的applyimage.bat脚本即可完成部署。

如:假设此时U盘的盘符为F:\

在PE的命令的提示符里执行下面命令即可完成分区和系统部署

    x:\Windows\System32> f:\applyimage.bat

复制代码

最后重启电脑,把PC的启动模式调成UEFI模式,即可完成快速部署。

言外,对于企业或批量用户来说,此方法快速简单,标准化分区,如果会封装企业系统镜像还能达到系统标准化。

相对网络安装,光盘安装等,有很大的便捷性,可靠性,安全性,成本低,易用性。

注:事先 一定要备份好数据,转换gpt分区后数据全部丢失。
   
六)、简单说一下以上教程中的命令注释:

UEFIGPT.TXT

select disk 0//选中磁盘0
clean //清除该磁盘数据
convert gpt //转换磁盘格式为GPT
create partition efi size=100 //创建100MB的EFI分区
format quick fs=fat32 label="System" //格式化为fat32分区 卷标system
assign letter="S" //分配盘符S
create partition msr size=128//创建128MB的MSR分区
create partition primary size=100000 //创建100000MB的主分区
format quick fs=ntfs label="Windows"//格式化为NTFS分区,卷标Windows
assign letter="W"//分配盘符为W
create partition primary size=170000//创建170000MB的主分区
format quick fs=ntfs//格式化为NTFS
assign letter="P" //分配盘符P
create partition primary //剩余空间创建为一个主分区
format quick fs=ntfs //格式化为NTFS
assign letter="Q" //分配盘符Q
list volume //列出卷(这一步多此一举)
exit //退出

ApplyImage.bat

@echo off
diskpart /s UEFIGPT.TXT //执行上面说的脚本内容
dism /Apply-Image /ImageFile:%~dp0install.wim /Index:1 /ApplyDir:W:\ //把该目录下install.wim的卷1释放到W盘
bcdboot W:\Windows /s s: /f UEFI /l zh-cn //创建UEFI中文引导,引导指向W盘

1.最开始就直接清除掉了磁盘0,如果你部署的系统要安装在磁盘1那么很不幸你的资料已经没了,需要重新找回。
2.执行这个需要盘符W P Q不被占用,有的PE会把优盘分配这些盘符,还是用Win10pex64.iso好。
3.你必须保证你的install.wim只有一个卷
4.这个命令做的事情与Windows安装程序做的事情没有任何区别

山里来网上收集重新整理
2016.6.18

q8155128 发表于 2016-6-18 18:26:28

现在最头疼的就是看文字啊。。。

看图片多简单啊。。。

图文并茂多好啊。。。

感谢大师分享哦。。。

devilma 发表于 2016-6-19 12:36:02

不错!有这个东西方便了……

lbw2007 发表于 2016-6-19 15:31:23

感谢分享!
就是太复杂了,看不懂

2012qixitianlon 发表于 2016-6-19 21:48:37

感谢分享!

songhuirong1 发表于 2016-6-20 11:06:15

讲的不错

songhuirong1 发表于 2016-6-25 13:17:27

这种安装方式好麻烦啊,为什么不用NT快捷安装器,安装完了修复引导就行了

zhshch72 发表于 2016-7-27 21:56:57

谢谢分享,收藏了

shouzhiba 发表于 2016-9-24 18:58:18

非常谢谢楼主,顶一下











static/image/common/sigline.gif
手纸吧
shouzhiba.com

oldking 发表于 2016-10-28 01:23:04

谢谢分享~~~

laotuzi 发表于 2016-10-29 09:11:46

这个uefi实在是不知道如何是好,为了装osx等好多人还是用了这个。

Tzlebzng000 发表于 2016-10-30 20:03:23

Yeah bookmaking this wasn't a speculative conclusion great post!

zhxf945 发表于 2016-11-15 13:37:06

来学习了.支持你

yiwuyun 发表于 2016-11-15 21:38:53

@echo off
setlocal EnableDelayedExpansion
call :DisposeLanguage
if not "!errorlevel!"=="0" (echo language is unknown.)&&(goto end)
call :GetUDisk
if not "!errorlevel!"=="0" goto end
echo your U disk is ***(!uDisk!)***

:end
pause
exit/b 0


:GetUDisk
setlocal
call :GetUDiskNumber
if not "!errorlevel!"=="0" (echo U Disk not found)&&(exit /b 1)
rem echo !uDiskNumber!
set "uDiskNumber=!uDiskNumber:~0,1!"
for /f "tokens=4 delims= " %%a in ('^(echo sele disk %uDiskNumber%^&echo sele part 1^&echo detail part^) ^|diskpart ^| find /I "%movable%"') do (
set "uDisk=%%a:"
)
if "!uDisk!"=="" exit /b 1
endlocal&set uDisk=%uDisk%
exit /b 0


:GetUDiskNumber
setlocal
call :SetDiskType
set uDiskNumber=
for /l %%a in (0,1,!diskMaxNumber!) do (
    if "!disk%%a!"=="!uType!" (
      if "!uDiskNumber!"=="" (
         set "uDiskNumber=%%a"
      ) else (
         set "uDiskNumber=!uDiskNumber!,%%a"
      )
    )
)
if "!uDiskNumber!"=="" exit/b 1
:success
endlocal&set uDiskNumber=%uDiskNumber%
exit /b 0


:SetDiskType
call :GetDiskCount
set /a diskMaxNumber=!diskCount!-1
for /l %%a in (0,1,!diskMaxNumber!) do (
   for /f "tokens=2 delims=:" %%b in ('^(echo sele disk %%a^&echo detail disk^) ^|diskpart ^| find /I "!type!"') do (
      if not "%%b"=="" (set disk%%a=%%b)
   )
)
for /l %%a in (0,1,!diskMaxNumber!) do (
   echo disk %%a type is !disk%%a!
)
exit /b 0


:GetDiskCount
setlocal
set /a n=0
for /f "tokens=2,4 delims= " %%a in ('echo list disk ^|diskpart ^| find /I "!online!"') do (
   set /a n=!n!+1
)
set diskCount=!n!
endlocal&set diskCount=%diskCount%
exit /b 0

:DisposeLanguage
setlocal
for /f "tokens=3 delims= " %%a in ('dir ^| find /I "bytes free"') do set diskSpace=%%a
if not "!diskspace!"=="" (
      set lang=en_US
      goto lang
)
for /f "tokens=3 delims= " %%a in ('dir ^| find "可用字节"') do set diskSpace=%%a
if not "!diskspace!"=="" (
      set lang=zh_CN
      goto lang
)
set lang=other
:lang
endlocal&set lang=%lang%
call :LanguageSet
if not "!errorlevel!"=="0" (echo language unknown.)&&(exit /b 1)
exit /b 0

:LanguageSet
setlocal
if "%lang%"=="en_US" (
echo your language is English.
set online=Online
set type=Type
set uType= USB
set movable=Removable
)
if "%lang%"=="zh_CN" (
echo 你的语言是简体中文。
set online=联机
set movable=可移动
set type=类型
set uType= USB
)
if "%lang%"=="other" (exit /b 1)
if "%lang%"=="" (exit /b 1)
endlocal&set movable=%movable%&set type=%type%&set online=%online%&set uType=%uType%
exit /b 0


看你写得辛苦,给你一个我写的获取U盘盘符的纯批处理。你柔合进boot.wim会有奇效。直接就不需要输入U盘盘符了,说老实话,你这个写得太简单了,连MBR和GPT都不判定,而且盘符全部写死,如果哪个盘恰好是W盘,不晓得会不会有问题。

乖僻猫se 发表于 2016-11-16 20:38:39

这个很方便,就是DOS命令对一般爱好者来说感觉一头雾水

乖僻猫se 发表于 2016-11-17 09:43:53

楼主好,install.wim只有一个卷是什么意思?

devilma 发表于 2016-11-17 10:21:10

照着做了一遍,还真不错!回来顶一下

boy6585948 发表于 2016-11-17 11:04:19

先收藏备用了,如果有目前主流系统的VOL原版磁力链接就更完美了!!!

cpckly 发表于 2016-11-17 11:50:06

看起来挺麻烦的 不过我们菜鸟可以学习下

2011摩羯男孩 发表于 2016-11-23 00:13:17

非常感谢

rvn 发表于 2016-11-25 21:09:52

不错 只有这样才能学到东西 支持

eric6699 发表于 2016-11-26 20:15:50

shanlilai
页: [1]
查看完整版本: UEFI+GPT快速部署Windows教程 (远景_181579033)