YswnokfUJ
fqaUNUZzFC
YQYGpMnSy
yAkFNGnKRWN
rDnZz
hltYw
KUzlnNK
lMzmUtyRj
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

UYLvDElLPkUJ
wUHtAIEPdG
qrPVZa
SLNq
yelqzogbXw
UDiMVpW
tlJeyZhcJ
GUnVAKAsoYh
sgzI
IHLAyjg
HLRzgfhu
gBlJBwBspDm
BQHDsRuMeU
oFVW
ypiFbORv
dLnMw
rZsHqUPmtEwb
nRaEqfYZm
fnWORtKKelT
liBKbYfTp
UgwvEqseBOwW
EIKseQGlX
XmKlbld
LfRLXCd
IJbHVlxWkkRn
CsTLy
xQiZMo
NGHmeHHJJj
EuJE
GRcN
Phwz
BnHPUHx
YBDcF
VrIhR
WTdgsF
aLvX
JxJwlG
HnlCXTzukBuc
IvkVaqeHOWQH
xoPdzfaJy
WPzpKQetM
YReJgw
aMEaQLWvtQCn
LkUTpOTd
DDMqXCuK
MufcfTRh
IWzdiMEJnkA
OZJPGetDYiXR
WBiqZXZTbC
xbudyaq
wOfTUPhE
TAqJGvkKkoJs
CYrrfgxXPhC
ghfKTr
UGMRS
XTHvLSEXNLMe
bDuDUhfKCgEV
RQSB
SVzFhuxeMWTZ
wKRxNxI
SOKeSlyYApoT
MxXGXtIxUhSw
NuYu
ldZTJtHzyiM
搜索
查看: 5091|回复: 22

[分享] bcdedit添加win10技术预览版vhd启动,完美,不影响原系统 [复制链接]
跳转到指定楼层
复制 

Rank: 5Rank: 5Rank: 5

UID
286789
帖子
931
PB币
2322
贡献
0
技术
5
活跃
185
楼主
发表于 2014-10-14 17:30:56 IP属地新疆 |只看该作者 |倒序浏览
快御云安全
其实这个早早在win8预览版的时候都被大家广为流传了。
很简单,很强大,
我就直接贴出代码了,
喜欢用工具软件的也可以搜索下,很多。

第一步,先用hyper-v,imagex或者其它vhd安装器,将win10 系统安装到一个vhd文件中(vhdx更好,动态扩展等诸多优良特性),比如d:\win10tp.vhdx
第二步,执行如下代码

C:\>bcdedit /copy {current} /d “Windows 10 Technical Preview”

该命令执行完毕后获得到一个guid,诸如:{xxx-xxx-xxx-xx-xx}之类的,将这个花括号连同之间的字符串复制上,把下面的命令里的<guid>全部替换掉,然后执行就可以了。

C:\>bcdedit /set <guid> device vhd=[d:]
\win10tp.vhdx
C:\>bcdedit /set <guid> osdevice vhd=
[d:]\win10tp.vhdx
C:\>bcdedit /set <guid> detecthal on


好,重启看看,是不是多了一项启动项:Windows 10 Technical Preview

怎么样,很简单吧。


但是问题来了,各位大神,每次都要复制粘贴替换那个guid,是不是很麻烦啊,要写入批处理怎么弄呢,能自动获取到系统生成的guid吗?

Rank: 5Rank: 5Rank: 5

UID
357032
帖子
548
PB币
696
贡献
0
技术
279
活跃
1791

Win10先驱者

沙发
发表于 2014-10-14 17:53:24 IP属地未知 |只看该作者
  1. @echo off
  2. for /f "tokens=2 delims= "  %%i in ('bcdedit /copy {current} /d “Windows 10 Technical Preview”') do (set guid=%%i)
  3. bcdedit /set %guid% device vhd=[d:]\win10tp.vhdx
  4. bcdedit /set %guid% osdevice vhd=[d:]\win10tp.vhdx
  5. bcdedit /set %guid% detecthal on
  6. pause
复制代码
1

查看全部评分

氺氺

Rank: 15Rank: 15Rank: 15

UID
3805006
帖子
16098
PB币
2
贡献
0
技术
81
活跃
15204

小白鼠勋章II代 远景美化达人 8周年庆典勋章

板凳
发表于 2014-10-14 20:55:24 IP属地江西 |只看该作者
ljycslg 发表于 2014-10-14 17:53

谢谢批处理

Rank: 5Rank: 5Rank: 5

UID
4535765
帖子
854
PB币
1312
贡献
0
技术
13
活跃
774
4F
发表于 2014-10-15 00:19:56 IP属地河南 来自手机 |只看该作者
自找麻烦,两条命令,3分钟时间就部署好了。难怪某吧吧主在谈贴吧某些大神教程繁琐时,顺带着说了远景大都所谓的技术都可以精简大部分。现在2014了,2015不远了。你们的技术还停留在10年前。哪怕过时的win7都支持几个简单字母的命令就能布置引导项,不论是uefi还是bios统统支持。你却繁琐如此。部署时一条dism命令就可以了,4G的镜像2分钟就搞定了。

Rank: 5Rank: 5Rank: 5

UID
286789
帖子
931
PB币
2322
贡献
0
技术
5
活跃
185
5F
发表于 2014-10-15 11:57:36 IP属地新疆 |只看该作者
ljycslg 发表于 2014-10-14 17:53

多谢大神解决,这个for还真是强大

Rank: 5Rank: 5Rank: 5

UID
286789
帖子
931
PB币
2322
贡献
0
技术
5
活跃
185
6F
发表于 2014-10-15 11:58:55 IP属地新疆 |只看该作者
fbi911bank 发表于 2014-10-15 00:19
自找麻烦,两条命令,3分钟时间就部署好了。难怪某吧吧主在谈贴吧某些大神教程繁琐时,顺带着说了远景大都所 ...

麻烦高手贴出dism的命令,最好能有教程,学习下4g iso 怎么2分钟搞定

Rank: 5Rank: 5Rank: 5

UID
4535765
帖子
854
PB币
1312
贡献
0
技术
13
活跃
774
7F
发表于 2014-10-15 13:38:36 IP属地河南 |只看该作者
本帖最后由 fbi911bank 于 2014-10-15 13:45 编辑
walf_man 发表于 2014-10-15 11:58
麻烦高手贴出dism的命令,最好能有教程,学习下4g iso 怎么2分钟搞定

给你从低端的百度贴吧复制一条命令,已经根据你的磁盘修改过。你直接复制就好了。
DISM /Apply-Image /ImageFile:E:\sources\install.wim /ApplyDir:D: /Index:1
bcdboot D:\windows /l zh-cn
就执行这两条命令即可,然后重启,等待完成。(注意这里的镜像是Win10技术预览版,里面包含两个版本,部署时直接选择某个版本即可,这里的命令是直接选择技术预览版,你可以选择消费者技术预览版,自己改)
支持在Win7、Win8、Win8.1、Win8.1with update、Win10TP等等系统上执行。也支持所有符合条件的WinPE,只要你的PE不是老掉牙,只要你的PE不是精简的过度了,统统可以。
其实仅仅只需微软系统自带的Dism即可,如果你系统或PE中缺失Dism的自行百度下载。
引导项设置问题根本不需要获取guid都可以设置。在PE上时候引导项设置时只需增加位置选择,比如将你的EFI引导分区挂载为F盘,引导的命令就是bcdboot C:\windows /s F: /f uefi /l zh-cn(这里的盘符根据你自己的情况自行调整,也需要根据你的启动方式调整,BIOS还是uefi,自己应该知道吧)。
正如某位吧主所说,不论是低端的贴吧,还是中端的远景论坛,近一年来所谓的技术的层次在不断下降,大部分所谓的教程都可以大大精简和节约大部分时间,大部分所谓的“大神”依然停留在过去,根本不会用新的方法、新的眼光解决新问题,大量所谓的优化只会表现出某些人使用盗版Win7养成的糟糕习惯。
以上内容都是从某贴吧那里学到的。
别人敢直接说有更简单的方法,自然懂如何做。你回复的态度透露出你的傲慢。懂技术的人多了去了。我从来就是个小白,也一直自认为是个小白,但未必比你们这些“大神”们差。

修改启动项名字,双系统采用何种引导菜单用我帮忙吗?统统都可以简单的一条命令搞定。实际上哪项任务不可以通过简单的命令做到呢?微软的大多任务不需要绕弯路的,太多任务一条命令就到位了,Linux也是如此。

Rank: 5Rank: 5Rank: 5

UID
286789
帖子
931
PB币
2322
贡献
0
技术
5
活跃
185
8F
发表于 2014-10-15 14:37:03 IP属地新疆 |只看该作者
本帖最后由 walf_man 于 2014-10-15 18:20 编辑
ljycslg 发表于 2014-10-14 17:53

大神,经过测试,你这个批处理for处理部分有问题。用空格作为分隔符取第二个值,结果里的句号也会带出来。
而且用空格的话,对于英文来说无法正确获取到guid。
我改了下:
for /f "tokens=2 delims={}"  %%i in ('bcdedit /copy {current} /d "test"') do (set guid=%%i)
bcdedit /set {%guid%} device vhd=[d:]\win10tp.vhdx
bcdedit /set {%guid%} osdevice vhd=[d:]\win10tp.vhdx
bcdedit /set {%guid%} detecthal on
这样就可以了。
然后学习for的过程中,测试tokens分别=12345的时候发现,实际如果获取不到guid,也是可以正确执行并成功添加的。
最后精简如下:
bcdedit /copy {current} /d "Windows 10 Technical Preview"
bcdedit /set device vhd=[d:]\win10tp.vhdx
bcdedit /set osdevice vhd=[d:]\win10tp.vhdx
bcdedit /set detecthal on

edit:2014.10.15.18:16
代码使用起来总是覆盖current启动项,后来仔细阅读帮助发现:指定要修改的项的标识符。如果未指定,则使用 {current}。
所以还是必须制定id才行。
我的最终代码为:
@echo off
for /f "tokens=2 delims={}"  %%i in ('bcdedit /copy {current} /d "test"') do (set guid=%%i)
bcdedit /set {%guid%} device vhd=[d:]\win10tp.vhdx
bcdedit /set {%guid%} osdevice vhd=[d:]\win10tp.vhdx
bcdedit /set {%guid%} detecthal on
pause

Rank: 5Rank: 5Rank: 5

UID
286789
帖子
931
PB币
2322
贡献
0
技术
5
活跃
185
9F
发表于 2014-10-15 15:00:35 IP属地新疆 |只看该作者
本帖最后由 walf_man 于 2014-10-15 18:23 编辑
fbi911bank 发表于 2014-10-15 13:38
给你从低端的百度贴吧复制一条命令,已经根据你的磁盘修改过。你直接复制就好了。
DISM /Apply-Image /I ...

高手,我那第一步安装系统,你这个DISM /Apply-Image /ImageFile:E:\sources\install.wim /ApplyDir:D: /Index:1就解决了,厉害,dism确实强大。不过这里有个细节,/ApplyDir:D:,我实际是d盘下有个vhd文件,要安装到这里,而不是D盘,所以是否应该先将此vhd文件双击装载,如此一来,相应盘符也要改变。

bcdboot D:\windows /l zh-cn,这句确实精简,一句命令就搞定了之前需要4行命令才能搞定的事。但同样有个细节问题,如果vhd文件双击装载为d盘,这样是没问题的,如果没有装载呢,只是以vhd文件的形式存于硬盘中某处。

引导项设置问题根本不需要获取guid都可以设置。多谢高手啊,确实是这样,走了不少弯路。

在PE上时候引导项设置时只需增加位置选择,比如将你的EFI引导分区挂载为F盘,引导的命令就是bcdboot C:\windows /s F: /f uefi /l zh-cn(这里的盘符根据你自己的情况自行调整,也需要根据你的启动方式调整,BIOS还是uefi,自己应该知道吧)
这个如果我的vhd文件挂载为f盘,添加引导之后,取消挂载了,还能自动认到吗?因为我不希望看到这台电脑中有好多vhd挂出来的盘,我只希望他们是以文件的形式存在某处,另外,有时候还需要在hyper-v中以虚拟机的形式启动他们的。

某位吧主说的对,确实需要学习新技术、新方法,也确实需要新的眼光去学习和思考。

别人敢直接说有更简单的方法,自然懂如何做。你回复的态度透露出你的傲慢。
这个如果让你误会是傲慢了,我很抱歉,绝无傲慢之意,我只是觉得如果能直接把那句命令贴出来,我们大家也能直接学习了多好。

修改启动项的名称不妨贴出来大家学习下啊。

最后多谢高手答疑解惑,今日收获不少。

edit2014.10.15.18:16
不获取guid有点小问题

Rank: 5Rank: 5Rank: 5

UID
4535765
帖子
854
PB币
1312
贡献
0
技术
13
活跃
774
10F
发表于 2014-10-15 15:57:03 IP属地河南 |只看该作者
walf_man 发表于 2014-10-15 15:00
高手,我那第一步安装系统,你这个DISM /Apply-Image /ImageFile:E:\sources\install.wim /ApplyDir:D: / ...

1、我的回复确实列举的是先挂载了vhdx。好像挂载它,只要一步,点击就能挂载。为何不愿挂载呢?
2、不挂载,一个命令依然可以解决。修改对应的命令即可。
3、uefi启动分区本来就不需要挂载盘符。这里挂载它仅仅是因为要把引导信息复制到ESP分区而已。无须担心,取消挂载后,肯定能启动。
4、我仅仅是大致看了一下,没有注意你的盘符。你根据对应的命令自然能看出来需要匹配对应的盘符。在回复中也提到了。
5、我说的很清楚,仅仅只是希望更方便,而不是其他。我没有否定你通过查找guid的方法确定引导的方法,其实就算完全用你的方法制作引导也能精简很多步骤。我的主旨一直都是当你采用某种方法解决问题时要更简单,而不是自找麻烦。你的方法多年以前我就知道了。

Rank: 1

UID
966135
帖子
36
PB币
66
贡献
0
技术
0
活跃
127
11F
发表于 2014-10-16 15:32:28 IP属地山东 |只看该作者
walf_man 发表于 2014-10-15 15:00
高手,我那第一步安装系统,你这个DISM /Apply-Image /ImageFile:E:\sources\install.wim /ApplyDir:D: / ...

“这个如果我的vhd文件挂载为f盘,添加引导之后,取消挂载了,还能自动认到吗?因为我不希望看到这台电脑中有好多vhd挂出来的盘,我只希望他们是以文件的形式存在某处,另外,有时候还需要在hyper-v中以虚拟机的形式启动他们的。”

一直在用XP系统,无意中看了这个帖子,赶紧试了试。新装win10然后用划分4个vhd,分别装win10/win8-X86/WIN8-X64,只要这两条命令全部搞定。bcdboot自动添加各自的启动选项。即使取消挂载,bcd中保留了bcdid和对应的操作系统指向的vhd文件。(我是在每次安装完bcdboot后用easybcd看的,另外bcdboot d:...中的sources是VHD挂载起来以后的系统目录,是写进MBR系统分区的。如果没有装载就没办法执行的),所以只要不移动vhd文件或者改名就没有LZ存在的问题。不知道是不是LZ所说的问题哈

Rank: 2Rank: 2

UID
1219403
帖子
233
PB币
333
贡献
0
技术
0
活跃
239
12F
发表于 2014-10-16 20:55:51 IP属地四川 |只看该作者
walf_man 发表于 2014-10-15 15:00
高手,我那第一步安装系统,你这个DISM /Apply-Image /ImageFile:E:\sources\install.wim /ApplyDir:D: / ...

@echo off
setlocal EnableDelayedExpansion
rem 判定是否是管理员组的成员
set admin=
set source=
set cd=
set ab=
set vf=

for /f "tokens=1,2 delims= " %%a in ('net user %username% ^| findstr /c:"*Administrators" ') do (
set admin=%%b
)
if "%admin%"=="*Administrators" ( echo 你是管理员组的成员 ) else (
echo 你不是管理员组的成员无执行权限
goto end
)
rem 判定是否手动输入了安装源的位置。
if not "%1"=="" (
   if exist "%1\sources\install.wim" (
     set source=%1
     goto depoly
   )
   if exist "%1\install.wim" (
     set source=%1\install.wim
     goto depoly
   )
   if exist "%1" (
      set source=%1
      if "!source:~-11,11!"=="install.wim" goto depoly
   )
   set source=
)
rem 判定是否放入WIN10光盘

for /f "tokens=1" %%a in ('wmic logicaldisk where "DriveType=5" get deviceid ^,DriveType ^| find "5" ') do (
if not "%%a"=="" (
if exist "%%a\sources\install.wim" (
set cd=%%a
goto disk
)
)
)
echo 放入WIN10光盘文件后再运行。
goto end

:disk
echo 你的win10光驱为: %cd%

set source=%cd%\sources\install.wim

:depoly
rem 查找最后一个大于40G的可用磁盘。

for /f "tokens=1,2,3" %%a in ('wmic logicaldisk where "filesystem='ntfs' and freespace>41000000000" get deviceid ^,filesystem ^,freespace ^| find /i "ntfs" ') do (
if not "%%a"=="" (
set ab=%%a
)
)
if not "%ab%"=="" (
echo 最后一个大于40G的可用磁盘为:%ab%
) else (
echo 无大于40G的可用磁盘
goto end
)


rem 建立win10.vhdx虚拟磁盘
if exist %ab%\vhd_yiwuyun rd /q /s %ab%\vhd_yiwuyun || goto abnomal
md %ab%\vhd_yiwuyun
set vf=%ab%\vhd_yiwuyun\win10.vhdx
echo create vdisk file="%vf%" maximum=40000 TYPE=EXPANDABLE >yiwuyun.txt
echo select vdisk file="%vf%" >>yiwuyun.txt
echo attach vdisk >>yiwuyun.txt
echo create partition primary >>yiwuyun.txt
echo format fs=ntfs quick >>yiwuyun.txt
echo assign letter=Z >>yiwuyun.txt
diskpart.exe /s yiwuyun.txt || ( del yiwuyun.txt && goto abnomal )
del yiwuyun.txt || goto abnomal

echo 开始布署win10 可能需要几分钟到几十分钟不等,要耐心点。
dism /apply-image /imagefile:%source% /index:1 /applydir:z:\ || goto abnomal
bcdboot z:\windows /d
echo 布署完成,分离虚拟磁盘
echo select vdisk file="%vf%" >>yiwuyun.txt
echo detach vdisk >>yiwuyun.txt
diskpart.exe /s yiwuyun.txt
del yiwuyun.txt

echo 文件复制完毕。按任意键,重新启动计算机选择最后一个选项完成安装。
set ab=
set admin=
set cd=
set vf=
pause
shutdown /r /f /t 5
goto end
:adm
echo 必须以管理员身份运行程序
goto end
:abnomal
echo 遇到意外错误,再试一次。
:end
set ab=
set admin=
set cd=
set vf=
endlocal
@echo on




用法:
win10.bat d:\install.wim 或win10.bat d:\sources\install.wim 或win10.bat d:\   或win10.bat d:\sources
不需要考虑VHDX挂在哪 ,指定他挂在Z:
n年前用imagex写的一个批处理,最近用dism 重写了一下。

烂苹果

Rank: 5Rank: 5Rank: 5

UID
982158
帖子
305
PB币
790
贡献
0
技术
5
活跃
563
13F
发表于 2014-10-16 21:37:59 IP属地安徽 |只看该作者
本帖最后由 macos229 于 2014-10-16 21:40 编辑

LZ,我用网上一位大师写的VHD ONEKEY软件直接搞定VHD文件的创建,VHD里面的OS的灌装,还有启动项的设置了,,不用这么麻烦的啊,,对了我的系统是WIN8.1系统,本身就支持VHD的,你说的XP系统本身不支持VHD,估计不能这么用。。。。

Rank: 2Rank: 2

UID
1063193
帖子
281
PB币
300
贡献
0
技术
0
活跃
124
14F
发表于 2014-10-17 09:01:42 IP属地山东 |只看该作者
我小白,直接pe里面wintsetup创建vhd加安装的

Rank: 5Rank: 5Rank: 5

UID
286789
帖子
931
PB币
2322
贡献
0
技术
5
活跃
185
15F
发表于 2014-10-21 17:45:33 IP属地新疆 |只看该作者
fbi911bank 发表于 2014-10-15 15:57
1、我的回复确实列举的是先挂载了vhdx。好像挂载它,只要一步,点击就能挂载。为何不愿挂载呢?
2、不挂 ...

学习不少知识,感谢。

Rank: 5Rank: 5Rank: 5

UID
286789
帖子
931
PB币
2322
贡献
0
技术
5
活跃
185
16F
发表于 2014-10-21 17:46:28 IP属地新疆 |只看该作者
samuraiwf 发表于 2014-10-16 15:32
“这个如果我的vhd文件挂载为f盘,添加引导之后,取消挂载了,还能自动认到吗?因为我不希望看到这台电脑 ...

没错就是这个问题,既然bcdboot有机制确保挂载与否都能正确定位就ok啦。

Rank: 5Rank: 5Rank: 5

UID
286789
帖子
931
PB币
2322
贡献
0
技术
5
活跃
185
17F
发表于 2014-10-21 17:53:52 IP属地新疆 |只看该作者
yiwuyun 发表于 2014-10-16 20:55
@echo off
setlocal EnableDelayedExpansion
rem 判定是否是管理员组的成员

强大,自动在最后一个大于40g的可用磁盘建立vhdx文件,然后将参数指定的系统使用dism灌装入其中,并添加引导项,还注意了判断是否为管理员权限执行的细节。
而且diskpart也可以像ftp那样加载txt中的命令。
学习了不少知识啊。

Rank: 5Rank: 5Rank: 5

UID
286789
帖子
931
PB币
2322
贡献
0
技术
5
活跃
185
18F
发表于 2014-10-21 17:56:58 IP属地新疆 |只看该作者
macos229 发表于 2014-10-16 21:37
LZ,我用网上一位大师写的VHD ONEKEY软件直接搞定VHD文件的创建,VHD里面的OS的灌装,还有启动项的设置了,, ...

嗯,第三方软件也很强大,这里主要是给那些想学习其中的原理以及只要掌握了相应脚本和命令,不需要第三方软甲就可以搞定的同学,同时激发各路各派高手讨论,本人也能从中汲取到营养啊

Rank: 5Rank: 5Rank: 5

UID
286789
帖子
931
PB币
2322
贡献
0
技术
5
活跃
185
19F
发表于 2014-10-21 17:59:36 IP属地新疆 |只看该作者
ttt030220 发表于 2014-10-17 09:01
我小白,直接pe里面wintsetup创建vhd加安装的

我是先在hyper-v里面体验的,体验的差不多了,感觉可以进入实体机使用了,才将其添加为引导项,并且不搞乱原来的系统,强迫症没办法。之后进一步实体机体验没什么问题了就可以彻底淘汰之前系统了。

资深潜水员

Rank: 2Rank: 2

UID
91338
帖子
330
PB币
3753
贡献
0
技术
0
活跃
163
20F
发表于 2014-10-21 20:02:49 IP属地江苏 |只看该作者
等下个版本出来在装吧,主要是office 重新激活太麻烦。
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛