无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 14718|回复: 21
打印 上一主题 下一主题

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

    [复制链接]
跳转到指定楼层
1#
发表于 2016-6-18 14:57:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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.TXTApplyImage.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

评分

参与人数 1无忧币 +5 收起 理由
zhczf + 5 赞一个!

查看全部评分

2#
发表于 2016-6-18 18:26:28 | 只看该作者
现在最头疼的就是看文字啊。。。

看图片多简单啊。。。

图文并茂多好啊。。。

感谢大师分享哦。。。
回复

使用道具 举报

3#
发表于 2016-6-19 12:36:02 | 只看该作者
不错!有这个东西方便了……
回复

使用道具 举报

4#
发表于 2016-6-19 15:31:23 | 只看该作者
感谢分享!
就是太复杂了,看不懂
回复

使用道具 举报

5#
发表于 2016-6-19 21:48:37 | 只看该作者
感谢分享!
回复

使用道具 举报

6#
发表于 2016-6-20 11:06:15 来自手机 | 只看该作者
讲的不错
回复

使用道具 举报

7#
发表于 2016-6-25 13:17:27 | 只看该作者
这种安装方式好麻烦啊,为什么不用NT快捷安装器,安装完了修复引导就行了
回复

使用道具 举报

8#
发表于 2016-7-27 21:56:57 | 只看该作者
谢谢分享,收藏了
回复

使用道具 举报

9#
发表于 2016-9-24 18:58:18 | 只看该作者
非常谢谢楼主,顶一下












手纸吧
shouzhiba.com
回复

使用道具 举报

10#
发表于 2016-10-28 01:23:04 | 只看该作者
谢谢分享~~~
回复

使用道具 举报

11#
发表于 2016-10-29 09:11:46 | 只看该作者
这个uefi实在是不知道如何是好,为了装osx等好多人还是用了这个。
回复

使用道具 举报

12#
发表于 2016-10-30 20:03:23 | 只看该作者
Yeah bookmaking this wasn't a speculative conclusion great post!
回复

使用道具 举报

13#
发表于 2016-11-15 13:37:06 | 只看该作者
来学习了.支持你
回复

使用道具 举报

14#
发表于 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盘,不晓得会不会有问题。
回复

使用道具 举报

15#
发表于 2016-11-16 20:38:39 | 只看该作者
这个很方便,就是DOS命令对一般爱好者来说感觉一头雾水
回复

使用道具 举报

16#
发表于 2016-11-17 09:43:53 | 只看该作者
楼主好,install.wim只有一个卷是什么意思?
回复

使用道具 举报

17#
发表于 2016-11-17 10:21:10 | 只看该作者
照着做了一遍,还真不错!回来顶一下
回复

使用道具 举报

18#
发表于 2016-11-17 11:04:19 | 只看该作者
先收藏备用了,如果有目前主流系统的VOL原版磁力链接就更完美了!!!
回复

使用道具 举报

19#
发表于 2016-11-17 11:50:06 | 只看该作者
看起来挺麻烦的 不过我们菜鸟可以学习下
回复

使用道具 举报

20#
发表于 2016-11-23 00:13:17 | 只看该作者
非常感谢
回复

使用道具 举报

21#
发表于 2016-11-25 21:09:52 | 只看该作者
不错 只有这样才能学到东西 支持
回复

使用道具 举报

22#
发表于 2016-11-26 20:15:50 | 只看该作者
shanlilai
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-26 23:12

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表