无忧启动论坛

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

[分享] UEFI+GPT手动安装Win8.1,Win8和Win7不求人

[复制链接]
跳转到指定楼层
1#
发表于 2013-10-21 20:37:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 2011htpcfans 于 2013-10-22 08:56 编辑

               UEFI+GPT手动安装Win8.1,Win8和Win7不求人

   UEFI+GPT手动安装Win8.1,Win8和Win7,看上去很麻烦,其实与BIOS+MBR没什么两样,主体思路还是第一步分区
(或者不需要),第二步Imagex应用基本操作,第三步引导建立或者说修复。


1、预备工作:

   (1)强烈建议在哪个盘根目录建Backup文件夹,wim文件和批处理都放在这里,建子目录common,放BcdBoot等
        公共程序,一般在涉及分区时,U盘根目录下建Backup文件夹最好。
   (2)强烈建议准备比较好的Win8或者Win7 X64 PE,需要它支持DiskPart命令。

2、DiskPart分区与vhd辅助小工具

   说明见论坛综合区!

3、Imagex应用与捕获基本操作小工具简要说明

   (1)该批处理专门用于手动安装Win8.1,Win8和Win7时应用映像和捕获映像。UEFI+GPT可以,BIOS+MBR也可以。
   (2)运行环境,在现有Win8.1,Win8和Win7系统或者在PE下安装、捕获全新或第二系统,包括vhd方式的第二系统。
   (3)子目录common,包含64和32位版本的Imagex,牵扯全新或者第二系统,安装目标盘或备份盘需手工指定!
   (4)32位PE效能明显较慢,全新安装需PE环境,第二系统根本不需要PE环境。
   (5)安装源wim文件在批处理同目录,还是建议有Backup文件夹。
   (6)批处理功能比常见安装器简陋好多。

4、UEFI_GPT引导修复重建小工具简要说明

   (1)该批处理专门用于UEFI+GPT安装Win8.1,Win8和Win7时手动修复重建引导。
   (2)运行环境,在现有Win8.1,Win8和Win7系统或者在PE下为全新或第二系统修复重建引导,包括vhd方式的第二系统。
        但PE必须支持DiskPart命令。另外,因为用到了BcdBoot命令,放在本批处理同级目录子目录common。
   (3)建议在哪个盘根目录建Backup文件夹,wim文件和批处理都放在这里,建子目录common,放BcdBoot等。
        一般在设计分区时,U盘根目录下建Backup文件夹最好。
   (4)UEFI_GPT引导修复重建思路:执行DiskPart命令,显示ESP分区,记下盘符,看好系统盘符,执行BcdBoot。
        可能执行不止一次引导修复重建,再次执行时不再检测ESP分区盘符。

5、Backup文件夹文件示例

   file://E:\Backup        (1 folders, 10 files, 5.18 GB, 5.18 GB in total.)
   │ DiskPart分区与vhd.bat        10.12 KB
   │ Imagex应用与捕获基本操作.bat        9.25 KB
   │ UEFI_GPT引导修复重建.bat        1.87 KB
   │ Win7_PR_X86_VL_P_D_Office2013.wim        3.66 GB
   │ Win81_PR_X64_VL_Office2013.wim        4.46 MB
   │ XP_General_MRX3F_47B9T_2487J_KWKMF_RPWBY.wim        1.39 GB
   │ 全自动Win8_7_XP系统Wim_Gho安装与备份_个人版.bat        15.19 KB
   │ 全自动Win8_7_XP系统Wim_Gho安装与备份_兼容版.bat        15.97 KB
   │ 全自动Win8_7系统补丁驱动封装批处理.bat        10.22 KB
   │ 系统wim映像整理.bat        8.42 KB
   └─Common        (0 folders, 6 files, 1.77 MB, 1.77 MB in total.)
     bcdboot-x86.exe        143.50 KB
     bcdboot.exe        161.50 KB
     bootsect-X86.exe        108.23 KB
     bootsect.exe        110.00 KB
     imagex-x86.exe        589.50 KB
     imagex.exe        697.00 KB


6、Imagex应用与捕获基本操作小工具源码


@echo off&mode con lines=25 cols=90
title ImageX基本操作_马宝银倾力提供
color 0a
setlocal enabledelayedexpansion
echo.
@echo ------------------------------------------------------------------------------
rd %systemdrive%\users\Dir_Test>nul 2>nul
md %systemdrive%\users\Dir_Test>nul 2>nul||(Echo 请使用右键管理员身份运行&&Pause >nul&&Exit)
rd %systemdrive%\users\Dir_Test>nul 2>nul
cls

echo 任务开始时间是%time:~,2%点%time:~3,2%分%time:~6,2%秒
set /a Tday=0
set "T1=%time%"
@echo 第一阶段,准备工作。

icacls %~dp0\common /remove:d administrator /t >null
echo -----------------------------------------------------
echo -----------------------------------------------------
echo  任务类型^<1^>:将Wim文件中的映像应用于某一分区,即装系统。
echo  任务类型^<2^>:将某一分区系统捕获为系统映像文件,即wim文件。
echo -----------------------------------------------------
echo  注意:要整理的Wim文件与本批处理同目录。
echo  注意:凡涉及输入名字的,请不要输入带空格、。,:~《》%¥##等千奇百怪的字符。
echo  注意:输入数字字母较多,请现在改系统输入法为英文,误操作,请按Ctrl+C退出。
echo  注意:本批处理要求同级目录下有个子目录common,放了Imagex等必备程序。
echo  注意:这命名也有一定要求。
echo -----------------------------------------------------

::检查Imagex系统映像文件是否存在,名称是否一致。
:noImagex
if exist %~dp0\Common\imagex.exe goto existImagex
echo 兄弟,请正确复制imagex吧,OK了,再按任意键继续。
pause
if not exist %~dp0\Common\imagex.exe goto noImagex

if exist %~dp0\Common\imagex-x86.exe goto existImagex
echo 兄弟,请正确复制imagex-x86吧,OK了,再按任意键继续。
pause
if not exist %~dp0\Common\imagex-x86.exe goto noImagex
:existImagex
::准备系统恢复临时文件存储区 \tmp_Imagex
if not exist %~dp0\tmp_Imagex goto md
:rd_Prepare
dir %~dp0\tmp_Imagex /ad /b /s >%~dp0\del_rd.txt
for /f "usebackq delims=" %%i in (%~dp0\del_rd.txt) do ((takeown /f "%%i"  /r /d y >%~dp0\del_log.txt)&(@echo y|icacls "%%i" /t /q  /grant  system:f )&(rd "%%i" /s /q))
takeown /f %~dp0\tmp_Imagex /r /d y >%~dp0\del_rd.txt
@echo y|icacls  %~dp0\tmp_Imagex /t /q  /grant  system:f
rd %~dp0\tmp_Imagex /s /q
if exist %~dp0\tmp_Imagex goto rd_Prepare
del  /f /s /q  %~dp0\del_rd.txt
:md
md %~dp0\tmp_Imagex

::WinPE是64位时,性能快,确保,输入小写y,不是,随便输个!
set  /p verSys=系统或者WinPE是64位的吗?是,输入y,不是或不清楚,随便输个----
echo -----------------------------------------------------
echo -----------------------------------------------------

:opInput
cls
echo      ╔┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉╗
echo      ┋                          程序功能选择                           
echo      ┋                                                                ┋
echo      ┋  任务类型 1: 将Wim文件中的映像应用于某一分区,即装系统。       ┋
echo      ┋                                                                ┋
echo      ┋  任务类型 2: 将某一分区系统捕获为系统映像文件,即wim文件。     ┋
echo      ┋                                                                ┋
echo      ┋  纯属意外 3: 我是来打酱油的,直接退出                          ┋
echo      ╚┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉╝

echo ------------------------------------------------------------------------------
set  /p op=请输入工作任务类型:1-3----
for /l %%i in (1,1,3) do (
   if !op!==%%i (
      goto ValidInput)
   )
echo    这么简单的选择题都会错,输入数字1-3有这么难吗,请重新输入
echo ------------------------------------------------------------------------------
goto opInput
:ValidInput

if !op!==3 exit

if !op!==1 (

   set fileSourceWim=0
   set /a CountIndex=0
   set /a a=0
   ::查找Backup目录中所有映像文件
   dir %~dp0\*.wim /b /s >%~dp0\tmp_Imagex\fbackup.txt
   @echo 查找到%~dp0目录下所有映像文件如下表
   @echo -----------------------------------------------------
   for /f "usebackq delims=" %%i in (%~dp0\tmp_Imagex\fbackup.txt) do (
      set /a a+=1
      echo 系统映像:!a! %%i)
   if !a!==0 (
      echo 无系统映像文件,直接退出
      pause
      goto End)
   @echo -----------------------------------------------------

:SourceWimInput
   set  /p SourceWim=请输入要安装系统Wim文件序号,只有序号有效,输完请按回车----
   for /l %%i in (1,1,!a!) do (
      if !SourceWim!==%%i (
        goto ValidSourceInput)
     )

   echo 这么简单的选择题都会错,输入数字1-!a!有这么难吗,请重新输入
   echo -----------------------------------------------------
   goto SourceWimInput

:ValidSourceInput
   @echo 你选择的是第!SourceWim!个系统映像文件,马上下一步

   set /a a=0
   for /f "usebackq delims=" %%i in (%~dp0\tmp_Imagex\fbackup.txt) do (
     set /a a+=1
     if !a!==!SourceWim! (
        set fileSourceWim=%%i
        echo 你选择的系统映像文件是:!fileSourceWim!
        echo -----------------------------------------------------
        goto ReadySourceWim)
     )

:ReadySourceWim
   %~dp0\Common\imagex-x86 /info !fileSourceWim! >%~dp0\tmp_Imagex\ImageInfo.txt

   find "Image Count" %~dp0\tmp_Imagex\ImageInfo.txt >%~dp0\tmp_Imagex\Num.txt

   for /f "tokens=3 skip=2 delims= " %%i in (%~dp0\tmp_Imagex\Num.txt) do (
      set /a CountIndex=%%i
      echo 注意:该映像文件**有!CountIndex!个系统映像,请正确选择索引号
     )
   echo -----------------------------------------------------

   find /i "<NAME>" %~dp0\tmp_Imagex\ImageInfo.txt >%~dp0\tmp_Imagex\Num.txt

   for /f "skip=2 delims=" %%i in (%~dp0\tmp_Imagex\Num.txt) do (
      set /a IndexTmp+=1
      echo  索引!IndexTmp!:%%i)  
   echo -----------------------------------------------------
   echo 1、下面要输入导出映像的索引号,可向上滚动显示刚才映像文件信息。
   echo 2、只有数字有效,第一个映像索引是1,依次类推。

   :SourceIndexInput
   set  /p Index=3、请输入要导出系统映像的索引号----     
   echo -----------------------------------------------------

   for /l %%i in (1,1,!CountIndex!) do (
     if !Index!==%%i (
       goto ValidIndexInput)
    )

   echo 这么简单的选择题都会错,输入数字1-!CountIndex!有这么难吗,请重新输入
   echo -----------------------------------------------------
   goto SourceIndexInput

:ValidIndexInput
   set /a IndexTmp=0
   for /f "skip=2 delims=" %%i in (%~dp0\tmp_Imagex\Num.txt) do (
      set /a IndexTmp+=1
      if !IndexTmp!==!Index!  (
      set NameDest=%%i  
      set NameDest=!NameDest:~10,-9!
      echo 你输入的索引号是!Index!,映像名字是!NameDest!
      goto ReadyNameDest )
    )  
:ReadyNameDest
:PartDestInput
   echo -----------------------------------------------------
   set  /p PartDest=请输入要安装系统的分区盘符,要格式化,请慎重输入!
   if not exist !PartDest!: (
      echo 你输入的盘符是什么东西,根本不存在吗!请重新输入!
      goto PartDestInput
     )
   vol !PartDest!:
   echo 格式化!PartDest!盘,请核对分区卷标对否,慎重,别破坏数据。按任意键继续。
   pause
   format !PartDest!: /q /x /u /y /fs:ntfs /a:4096 /v:WSYS
   if  !verSys! == y  (
      echo -----------------------------------------------------
      echo 64位系统,如果你确认本机PE不是64位,请中止批处理
      %~dp0\Common\imagex /apply  !fileSourceWim!  !Index!  !PartDest!: /temp %~dp0\tmp_Imagex
      goto End )

   @echo -----------------------------------------------------
   echo 32位系统

   %~dp0\Common\imagex-x86 /apply  !fileSourceWim!  !Index!  !PartDest!: /temp %~dp0\tmp_Imagex
   goto End

  )



if !op!==2 (

:PartSourceInput
   echo -----------------------------------------------------
   set  /p PartSource=请输入要制作映像那个盘的盘符,不要输冒号!---
   if not exist !PartSource!: (
      echo 你输入的盘符是什么东西,根本不存在吗!请重新输入!
      goto PartSourceInput
     )
   vol !PartSource!:
   set  /p NameCapture=请输入要制作成的映像名字,不需路径,不需后缀名,如Win8_PR_X64_VL---

   if  !verSys! == y  (
      echo -----------------------------------------------------
      echo 64位系统,如果你确认本机PE不是64位,请中止批处理
      %~dp0\common\imagex /capture /compress maximum  !PartSource!: %~dp0\!NameCapture!.wim "!NameCapture!" /temp %~dp0\tmp_Imagex
      goto End )   

   @echo -----------------------------------------------------
   echo 32位系统

   %~dp0\common\imagex-x86 /capture /compress maximum  !PartSource!: %~dp0\!NameCapture!.wim "!NameCapture!" /temp %~dp0\tmp_Imagex
   )
  )

:End
dir %~dp0\tmp_Imagex /ad /b /s >%~dp0\del_rd.txt
for /f "usebackq delims=" %%i in (%~dp0\del_rd.txt) do ((takeown /f "%%i"  /r /d y >%~dp0\del_log.txt)&(@echo y|icacls "%%i" /t /q  /grant  system:f )&(rd "%%i" /s /q))
takeown /f %~dp0\tmp_Imagex /r /d y >%~dp0\del_rd.txt
@echo y|icacls  %~dp0\tmp_Imagex /t /q  /grant  system:f
rd %~dp0\tmp_Imagex  /s /q
icacls %~dp0\common /deny administrator:d /t >null
del  /f /s /q  %~dp0\del_log.txt
del  /f /s /q  %~dp0\null
del  /f /s /q  %~dp0\del_rd.txt

echo 任务结束时间是%time:~,2%点%time:~3,2%分%time:~6,2%秒
set "T2=%time%"
if "%T2:~,2%" lss "%T1:~,2%" (set Tday+=8640000)
set   /a "T_d=%Tday%+(%T2:~,2%*360000)+(%T2:~3,1%*60000+%T2:~4,1%*6000)+(%T2:~6,1%*1000+%T2:~7,1%*100)+(%T2:~9,1%*10+%T2:~-1%)-(%T1:~,2%*360000)-(%T1:~3,1%*60000+%T1:~4,1%*6000)-(%T1:~6,1%*1000+%T1:~7,1%*100)-(%T1:~9,1%*10+%T1:~-1%)"
set /a "ss=%T_d%/100%%60"
set /a "mm=%T_d%/6000%%60"
set /a "hh=%T_d%/360000%%1"
set /a "ms=%T_d%%%100"
echo 本次任务消耗时间为 %hh%:%mm%:%ss%.%ms%秒
pause



7、UEFI_GPT引导修复重建小工具源码


@echo off&mode con lines=25 cols=90
color 0a
setlocal enabledelayedexpansion
@echo ------------------------------------------------------------------------------
rd %systemdrive%\users\Dir_Test>nul 2>nul
md %systemdrive%\users\Dir_Test>nul 2>nul||(Echo 请使用右键管理员身份运行&&Pause >nul&&Exit)
rd %systemdrive%\users\Dir_Test>nul 2>nul
cls
title UEFI_GPT引导修复重建_马宝银提供
cls
echo.
@echo ------------------------------------------------------------------------------
@echo        程序运行环境:Win8/7,或者Win8/7的PE,但需支持DiskPart,管理员身份
@echo        程序主要功能:UEFI_GPT引导修复重建
@echo ------------------------------------------------------------------------------
echo.
set validLabel=0
:AssignLabel
cls
echo list vol>%~dp0\DiskPart.txt
echo exit>>%~dp0\DiskPart.txt
diskpart /s %~dp0\DiskPart.txt
echo ------------------------------------------------------------------------------

if !validLabel!==1 goto validLabelESP
set /p bLabelHave=请问ESP分区是否已经有盘符,是y,不n---
if !bLabelHave!==y (
   set /p Label_ESP=请输入ESP分区现在的盘符,我不检测无效盘符噢---
   set validLabel=1
   goto validLabelESP
)
set /p choiceVol_6=请输入ESP分区的卷编号,如果ESP分区已有盘符,直接回车---
set /p Label_ESP=请输入盘符,我不检测无效盘符噢---
echo select vol !choiceVol_6!>%~dp0\DiskPart.txt
echo assign letter=!Label_ESP!>>%~dp0\DiskPart.txt
set validLabel=1
echo exit>>%~dp0\DiskPart.txt
diskpart /s %~dp0\DiskPart.txt
echo ------------------------------------------------------------------------------

:validLabelESP
set /p Label_SYS=搞完ESP分区,请输入系统盘符,我不检测无效盘符噢---
%~dp0\common\bcdboot !Label_SYS!:\windows /s !Label_ESP!: /f ALL
set /p bProceedA=请问是否继续修复重建其它系统的引导项,是y,不n---
if !bProceedA!==y goto AssignLabel
del   /f /s /q  %~dp0\DiskPart.txt
echo 任务结束!   Congratulations!
pause















Backup_20131021.rar

6.4 KB, 下载次数: 136, 下载积分: 无忧币 -2

3个工具

评分

参与人数 2无忧币 +10 收起 理由
freesoft00 + 5 很给力!
糊涂 + 5

查看全部评分

2#
发表于 2013-10-21 21:47:44 | 只看该作者
哎呀我去,前排留名,广告位出租
回复

使用道具 举报

3#
发表于 2013-10-21 22:07:38 | 只看该作者
不错的内容!
回复

使用道具 举报

4#
发表于 2013-10-22 09:20:13 | 只看该作者
还没有这个条件折腾
回复

使用道具 举报

5#
发表于 2013-10-22 11:52:35 | 只看该作者
我是初学者,看到这个都晕了,一些专业词语都不知道啊,很难看懂写的什么意思,好好学习!
回复

使用道具 举报

6#
发表于 2013-11-22 16:07:13 | 只看该作者
请问win7你是装哪个版本镜像的吗 msdn?我是装了很多台都是卡在starting windows那里
回复

使用道具 举报

7#
发表于 2013-11-22 17:23:51 | 只看该作者
只能,支持了。
回复

使用道具 举报

8#
发表于 2013-11-26 23:54:13 | 只看该作者
怎么都是DOS批处理?
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-12 09:54

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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