zcex1986 发表于 2017-4-13 13:25:48

2013feng901012 发表于 2017-4-8 00:24
实测dd命令可以替换文件,也会改变大小。前提是输入和输出文件都存在。

楼上用的bootmgr引导vhd,我 ...

title 启动1.vhd系统恢复模式      (这里的1.vhd就是差分盘吧?)
find --set-root /0.vhd               (这里的0.vhd应该是父盘吧?)
dd if=()/0.vhd of=()/1.vhd       (这一个0一个1,意思是什么?)
find --set-root /efi/ntboot
/efi/ntboot nt6=/1.vhd
boot

zcex1986 发表于 2017-4-13 13:26:55

2013feng901012 发表于 2017-4-10 14:33
这个是调用ntboot来引导vhd,是bios引导的。
如果是uefi引导,那么修改\efi\microsoft\boot\bcd文件来引 ...

嗯嗯,懂了大神!

2013feng901012 发表于 2017-4-13 13:40:41

本帖最后由 2013feng901012 于 2017-4-13 13:58 编辑

zcex1986 发表于 2017-4-13 13:25
title 启动1.vhd系统恢复模式      (这里的1.vhd就是差分盘吧?)
find --set-root /0.vhd             ...

0.vhd是拆分备份,1.vhd是拆分文件,是日常使用中的vhd    命名随意,路径也一样随意,不过需要跟你自己的菜单一致即可。我这里图方便,有时候自己会在grub4dos手动来引导某一文件,所以命名一般采用最简单的,方便输入而已

父vhd,只需要安装系统的时候弄好一次即可,或者需要改动的时候才用,保存改动到父vhd
可以用bootice来合并拆分文件和父文件,或者直接在grub4dos的菜单,按e,来编辑菜单,引导父vhd,直接修改。不过如果修改父vhd,拆分vhd需要修复拆分链接,bootice有这个功能,可以修复意外损坏的拆分链

2013feng901012 发表于 2017-4-13 13:44:18

不知 发表于 2017-4-7 08:26
dd命令不能改变文件大小。实际还原之后,文件不会变小。

实测结果
环境,win7usb x86
父vhd8g固定
拆分备份0.vhd89k
使用的拆分1.vhd 2.27g

使用grub4dos的dd还原后,直接进pe查看大小,均没有改变。
接着引导dd还原后的拆分vhd ,1.vhd,可以正常进入系统,且已经达到还原目的。

然后重启进pe,查看大小,
已经改变
父vhd还是8g,(当然,不可能变,没改动它)
拆分备份0.vhd89k
拆分vhd,1.vhd   大小为220m

就是说grub4dos的dd命令不能直接改变文件大小

2013feng901012 发表于 2017-4-13 13:54:56

不知 发表于 2017-4-8 11:33
我以前用dd做字符拷贝时就要考虑文件大小。不过vhd还原效果达到了就行。

是的,正常linux中的dd命令只需要制定写入扇区数的,例如
创建一个100M的空文件

dd if=/dev/zero of=o.txt bs=100M count=1

不过linux中目标文件可以不存在而用dd命令来建立
可是grub4dos中的dd,需要输入和输出文件都存在。

不知 发表于 2017-4-13 14:35:43

2013feng901012 发表于 2017-4-13 13:54
是的,正常linux中的dd命令只需要制定写入扇区数的,例如
创建一个100M的空文件



grub4dos只是一个引导程序,对文件系统的支持不完善也是正常的。linux作为一个完整的系统,支持也就完善多了。

2013feng901012 发表于 2017-4-13 15:35:35

不知 发表于 2017-4-13 14:35
grub4dos只是一个引导程序,对文件系统的支持不完善也是正常的。linux作为一个完整的系统,支持也就完善 ...

恩恩,grub4dos已经很棒了,这么多年来,方便了很多,虽然新买的电脑支持uefi,一般都是测试才开启。日常使用还是喜欢用grub4dos做主引导

有阴也有阳 发表于 2017-4-13 16:17:53

zcex1986 发表于 2017-4-13 13:18
不行大神,好像是运行不了AUTOEXEC.BAT!

建议还是用grub4dos的dd命令,请参考:

1.http://bbs.wuyou.net/forum.php?mod=viewthread&tid=380891

2.http://bbs.wuyou.net/forum.php?mod=viewthread&tid=205708

jianliulin 发表于 2017-4-13 16:36:54

用grub4dos 的fat外部命令

有阴也有阳 发表于 2017-4-13 17:07:03

外部命令FAT(在FAT分区上复制创建文件)http://chenall.net/post/grub4dos_fat/

不过必须是FAT分区。

mysxbg2000 发表于 2017-4-13 17:38:26

本帖最后由 mysxbg2000 于 2017-4-13 17:47 编辑

是的
win7.vhd是差分
win7.vhd.bak 是 win7.vhd 差分的备份文件 一般只有 几十KB 或者 过百KB
dd if=()/VHD/win7.vhd.bak of=()/VHD/win7.vhd就是 复制 win7.vhd.bak 替换掉 win7.vhd 这样子就能达到秒还原效果
然后 下面 那条 /bootmgr 什么的是直接 启动 该差分系统(前提是 BCD里的启动文件是该差分)
所以 可以无视 上面说的 dd 命令复制替换后 文件大小不变的问题...

当然 也可以 再加2条命令

title re_win75_02.vhd.bak
password=1234
find --set-root --devices=h /boot/BCD
dd if=()/boot/bcd7 of=()/boot/BCD
find --set-root --devices=h /VHD/win7/win75_02.vhd.bak
dd if=()/VHD/win7/win75_02.vhd.bak of=()/VHD/win7/win75_02.vhd
find --set-root /bootmgr
chainloader /bootmgr

下面的 是我的memu菜单
我的菜单 是适合 多系统 使用的仅供参考


default      0
timeout      3
gfxmenu /grub/message

title 从上次进的系统启动...
find --set-root /bootmgr
chainloader /bootmgr

title 进入win 7
find --set-root --devices=h /boot/BCD
dd if=()/boot/bcd7 of=()/boot/BCD
find --set-root /bootmgr
chainloader /bootmgr

title 进入win 10
find --set-root --devices=h /boot/BCD
dd if=()/boot/bcd10 of=()/boot/BCD
find --set-root /bootmgr
chainloader /bootmgr


title re_win75_02.vhd.bak
password=1234
find --set-root --devices=h /boot/BCD
dd if=()/boot/bcd7 of=()/boot/BCD
find --set-root --devices=h /VHD/win7/win75_02.vhd.bak
dd if=()/VHD/win7/win75_02.vhd.bak of=()/VHD/win7/win75_02.vhd
find --set-root /bootmgr
chainloader /bootmgr

zcex1986 发表于 2017-4-14 23:21:12

2013feng901012 发表于 2017-4-13 13:21
grub4dos的dd命令,需要源文件以及目的文件都存在。
不知道你所指的是怎么个方式拆分。



哦哦,明白了大神!

zcex1986 发表于 2017-4-14 23:23:24

2013feng901012 发表于 2017-4-13 13:44
实测结果
环境,win7usb x86
父vhd8g固定


太牛了,我懂了大神。谢谢!

zcex1986 发表于 2017-4-14 23:25:08

有阴也有阳 发表于 2017-4-13 16:17
建议还是用grub4dos的dd命令,请参考:

1.http://bbs.wuyou.net/forum.php?mod=viewthread&tid=380891
...

谢谢大神!

zcex1986 发表于 2017-4-14 23:26:49

mysxbg2000 发表于 2017-4-13 17:38
是的
win7.vhd是差分
win7.vhd.bak 是 win7.vhd 差分的备份文件 一般只有 几十KB 或者 过百KB


真详细,谢谢大神!

zcex1986 发表于 2017-4-14 23:34:02

本帖最后由 zcex1986 于 2017-4-14 23:35 编辑

不知 发表于 2017-4-13 14:35
grub4dos只是一个引导程序,对文件系统的支持不完善也是正常的。linux作为一个完整的系统,支持也就完善 ...

编写grub4dos的人真牛!

zcex1986 发表于 2017-4-15 02:07:23

mysxbg2000 发表于 2017-4-13 17:38
是的
win7.vhd是差分
win7.vhd.bak 是 win7.vhd 差分的备份文件 一般只有 几十KB 或者 过百KB


title re_Windows10end2_CHILD_BAK
password=1234
find --set-root --devices=i /boot/BCD
dd if=()/boot/bcd7 of=()/boot/BCD
find --set-root --devices=i /WIN10/Windows10end2_CHILD_BAK.vhdx
dd if=()/WIN10/Windows10end2_CHILD_BAK.vhdx of=()/WIN10/Windows10end2_CHILD.vhdx
find --set-root /bootmgr
chainloader /bootmgr

提示找不到文件   这路径怎么制定呢大神!

2013feng901012 发表于 2017-4-15 03:04:31

zcex1986 发表于 2017-4-15 02:07
title re_Windows10end2_CHILD_BAK
password=1234
find --set-root --devices=i /boot/BCD


找不到哪个文件呢,可能你的文件路径和菜单不符合。

菜单的意思大概是
输入密码1234否则不能运行该选项
然后找到并且用/boot/bcd7来替换/boot/bcd(bcd7为备份)
然后找到并且用/win10end2-child-bak.vhdx替换 /win10end2-child.vhdx
(win10end2-child-bak.vhdx)是拆分备份vhdx(win10end2-child.vhdx )是使用的拆分vhdx
然后引导bootmgr,接着根据/boot/bcd来运行拆分vhdx,接着进vhdx系统。

楼主可以按照自己的使用环境修改菜单,文件名,和路径,与自己实际环境一致即可。

如果不需要多系统的话,可以不用替换bcd文件,修改好一份bcd即可。当然,也可以用ntboot来直接引导vhdx或者vhd文件。
页: 1 [2]
查看完整版本: 2