无忧启动论坛

标题: thinkpad制作的U盘恢复盘不能启动及制作日志分析 [打印本页]

作者: yjqd    时间: 2017-5-25 11:18
标题: thinkpad制作的U盘恢复盘不能启动及制作日志分析
thinkpad sl410k  win7系统
U盘 完好可用,已分区,已激活,主引导为grub4dos,分区引导为ntldr,能够从U盘启动

插入U盘,启动恢复介质制作程序create recovery media,选择只制作引导介质,制作成功后,重启电脑,设置为U盘启动,结果是无法启动

取下U盘,重启电脑回到windows,用工具查看了U盘主引导,仍然是grub4dos主引导,分区引导为bootmgr,将U盘引导写入nt60,重启,u盘启动成功

create recovery media在制作恢复介质时调用了medium.dll,修改medium.dll,在更新引导的地方加个/mbr就可以了


从制作恢复介质日志知道:
对u盘进行了激活、格式化、更新分区引导的操作,为什么不更新主引导呢
如果U盘没分区又怎么办

下面是只制作引导介质的日志记录和部分分析:

06/26/14 13:39:30: recovburncd starts
06/26/14 13:39:30: execute cmd /c mkdir c:\swshare\boot
06/26/14 13:39:30: execute cmd returncode = 0
06/26/14 13:39:30: execute cmd /c mkdir c:\swshare\app
在c盘swshare文件夹下建立boot和app文件夹
06/26/14 13:39:30: execute cmd returncode = 0
06/26/14 13:39:30: Entering DriverMgr::get_q_driver ...
06/26/14 13:39:30: Entering DriverMgr::is_q_enable ...
06/26/14 13:39:30: the drive:C: in disk is:0
06/26/14 13:39:30: the drive:C: in disk is:0
06/26/14 13:39:30: the drive:D: in disk is:0
06/26/14 13:39:30: DeviceIoControl failed
06/26/14 13:39:30: the drive:F: in disk is:0
06/26/14 13:39:30: the drive:G: in disk is:1
出现u盘G
06/26/14 13:39:30: the drive:Q: in disk is:0
06/26/14 13:39:30: Leaving DriverMgr::is_q_enable ...
06/26/14 13:39:30: the drive:C: in disk is:0
06/26/14 13:39:30: the drive:C: in disk is:0
06/26/14 13:39:30: the drive:D: in disk is:0
06/26/14 13:39:30: the drive:F: in disk is:0
06/26/14 13:39:30: the drive:Q: in disk is:0
06/26/14 13:39:30: the drive:C: parti is:2
06/26/14 13:39:30: get the Q letter=Q:
06/26/14 13:39:30: Leaving DriverMgr::get_q_driver ...
06/26/14 13:39:30: Entering DriverMgr::close_sp_driver ...
06/26/14 13:39:30: Leaving DriverMgr::close_sp_driver ...
06/26/14 13:39:30: Entering CMainDlg::OnInitDialog ...
06/26/14 13:39:30: Leaving CMainDlg::OnInitDialog ...
06/26/14 13:39:38: Entering DriverMgr::open_sp_driver ...
06/26/14 13:39:38: Entering DriverMgr::get_q_driver ...
06/26/14 13:39:38: Entering DriverMgr::is_q_enable ...
06/26/14 13:39:38: the drive:C: in disk is:0
06/26/14 13:39:38: the drive:C: in disk is:0
06/26/14 13:39:38: the drive:D: in disk is:0
06/26/14 13:39:38: DeviceIoControl failed
06/26/14 13:39:38: the drive:F: in disk is:0
06/26/14 13:39:38: the drive:G: in disk is:1
06/26/14 13:39:38: the drive:Q: in disk is:0
06/26/14 13:39:38: Leaving DriverMgr::is_q_enable ...
06/26/14 13:39:38: the drive:C: in disk is:0
06/26/14 13:39:38: the drive:C: in disk is:0
06/26/14 13:39:38: the drive:D: in disk is:0
06/26/14 13:39:38: the drive:F: in disk is:0
06/26/14 13:39:38: the drive:Q: in disk is:0
06/26/14 13:39:38: the drive:C: parti is:2
06/26/14 13:39:38: get the Q letter=Q:
06/26/14 13:39:38: Leaving DriverMgr::get_q_driver ...
06/26/14 13:39:38: Entering DriverMgr::mount_s ...
06/26/14 13:39:38: Entering DriverMgr::disable_drive_autorun ...
06/26/14 13:39:38: Leaving DriverMgr::disable_drive_autorun ...
06/26/14 13:39:38: the drive:C: in disk is:0
06/26/14 13:39:38: Entering DriverMgr::execute_diskpart ...
06/26/14 13:39:38: execute cmd /c diskpart.exe /s "C:\PROGRA~1\Lenovo\FACTOR~1\execute_script.txt"
调用diskpart.exe给隐藏的第一分区分配了盘符为:S
diskpart.exe调用了C:\PROGRA~1\Lenovo\FACTOR~1下的脚本文件execute_script.txt
内容如下
select disk 0
select partition 1
assign letter=S
exit
这个文件不是一直存在的,而是在分配盘符、删除盘符、激活u盘才出现,出现后很快消失,无法拷贝到,但是你可快速打开它,它就不会消失,关闭它就消失了,"C:\PROGRA~1\Lenovo\FACTOR~1\execute_script.txt"注意是加了引号的,原因是PROGRA~1是Program Files,FACTOR~1是Factory Recovery它们都有中有空格,

06/26/14 13:39:40: execute cmd returncode = 0
06/26/14 13:39:40: Leaving DriverMgr::execute_diskpart ...
06/26/14 13:39:40: Leaving DriverMgr::mount_s ...
06/26/14 13:39:40: sp letter=S:
分配了盘符为:S
06/26/14 13:39:40: Leaving DriverMgr::open_sp_driver ...
06/26/14 13:39:40: Entering ProgressDlg::OnInitDialog ...
06/26/14 13:39:40: Leaving ProgressDlg::OnInitDialog ...
06/26/14 13:39:40: Entering ProgressDlg::OnDestroy ...
06/26/14 13:39:40: Leaving ProgressDlg::OnDestroy ...
06/26/14 13:39:40: Entering DriverMgr::get_disk_used_space ...
06/26/14 13:39:40: Now to calculate size path is:S:

06/26/14 13:39:40: Leaving DriverMgr::get_disk_used_space ...
06/26/14 13:39:40: Entering DriverMgr::get_disk_free_space ...
06/26/14 13:39:40: Now to calculate size path is:c:
06/26/14 13:39:40: Leaving DriverMgr::get_disk_free_space ...
06/26/14 13:39:40: Entering MediumDvdEntity::init ...
06/26/14 13:39:40: Entering MediumDvdEntity::set_path_envirnment ...
06/26/14 13:39:40: TVTCOMMON = C:\Program Files\Common Files\Lenovo
06/26/14 13:39:40: path = C:\Program Files\Lenovo\Factory Recovery\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files\Common Files\Lenovo;C:\Program Files\Common Files\Roxio Shared\10.0\DLLShared\;C:\Program Files\Common Files\Roxio Shared\DLLShared\;C:\Program Files\Lenovo\Access Connections\
06/26/14 13:39:40: Leaving MediumDvdEntity::set_path_envirnment ...
06/26/14 13:39:40: CDRecord path=C:\PROGRA~1\Lenovo\FACTOR~1\CDRecord.dll
06/26/14 13:39:40: fnCreateCDRecorder=40308912
06/26/14 13:39:40: fnCreateCDRecorder( Create Recovery Media ) end
06/26/14 13:39:40: Leaving MediumDvdEntity::init ...
06/26/14 13:39:40: Entering MediumDvdEntity::enum_recorder ...
06/26/14 13:39:41: Leaving MediumDvdEntity::enum_recorder ...
06/26/14 13:39:49: Entering ProgressDlg::OnInitDialog ...
06/26/14 13:39:49: Leaving ProgressDlg::OnInitDialog ...
06/26/14 13:39:49: execute cmd /c mkdir  c:\swshare\boot
在c盘swshare文件夹下建立boot文件夹
06/26/14 13:39:50: execute cmd returncode = 1
06/26/14 13:39:50: execute cmd /c attrib -H -S  S:\Recovery\WindowsRE\winRE.wim
attrib命令去掉s盘下Recovery\WindowsRE下的winre.wim的隐藏和系统属性
06/26/14 13:39:50: execute cmd returncode = 0
06/26/14 13:39:50: execute cmd /c xcopy /H /C /Y "S:\Recovery\WindowsRE\winRE.wim" "c:\swshare\boot\."
拷贝s盘下Recovery\WindowsRE下的winre.wim到c:\swshare\boot\  "S:\Recovery\WindowsRE\winRE.wim" "c:\swshare\boot\."不知为什么要加引号
06/26/14 13:39:54: execute cmd returncode = 0
06/26/14 13:39:54: execute cmd /c attrib +H +S  S:\Recovery\WindowsRE\winRE.wim
attrib命令改回s盘下Recovery\WindowsRE下的winre.wim的隐藏和系统属性
06/26/14 13:39:54: execute cmd returncode = 0
06/26/14 13:39:54: Entering DataCollect::mount_wim ...
06/26/14 13:39:54: execute cmd /c mkdir "c:\swshare\mount"
在c盘swshare文件夹下建立mount文件夹
06/26/14 13:39:54: execute cmd returncode = 0
06/26/14 13:39:54: execute cmd /c "dism.exe"  /mount-wim /wimfile:c:\swshare\boot\winRE.wim /index:1 /mountdir:c:\swshare\mount
调用dism.exe挂载c:\swshare\boot\winRE.wim到c:\swshare\mount下
06/26/14 13:40:23: execute cmd returncode = 0
06/26/14 13:40:23: Leaving DataCollect::mount_wim ...
06/26/14 13:40:23: Entering DataCollect::unmount_wim ...
向winre.wim解压的文件里写入了文件,使其从修复功能变为恢复功能
06/26/14 13:40:23: execute cmd /c dism.exe /unmount-wim /mountdir:c:\swshare\mount /commit
调用dism.exe卸载c:\swshare\mount下解压的winRE.wim
06/26/14 13:40:56: execute cmd returncode = 0
06/26/14 13:40:56: Leaving DataCollect::unmount_wim ...
06/26/14 13:40:56: execute cmd /c rmdir /s /q "c:\swshare\mount"
删除非空文件夹
06/26/14 13:40:56: execute cmd returncode = 0
06/26/14 13:40:56: execute cmd /c xcopy /E /Y /C /H /I "S:\Boot" "c:\swshare\boot\Boot"
拷贝s盘下的boot到c:\swshare\boot\
06/26/14 13:40:58: execute cmd returncode = 0
06/26/14 13:40:58: execute cmd /c xcopy /H /C /Y "S:\bootmgr" "c:\swshare\boot\."
拷贝s盘下的bootmgr到c:\swshare\boot\
06/26/14 13:40:58: execute cmd returncode = 0
06/26/14 13:40:58: execute cmd /c xcopy /H /C /Y "C:\PROGRA~1\Lenovo\FACTOR~1\boot\bcd" "c:\swshare\boot\boot\."
注意:这步是把C:\PROGRA~1\Lenovo\FACTOR~1\boot下的bcd拷贝到c:\swshare\boot\boot,替换了c:\swshare\boot\boot中的bcd
06/26/14 13:40:58: execute cmd returncode = 0
06/26/14 13:40:58: Entering ProgressDlg::OnDestroy ...
06/26/14 13:40:58: Leaving ProgressDlg::OnDestroy ...
06/26/14 13:40:58: Entering DriverMgr::close_sp_driver ...
06/26/14 13:40:58: Entering DriverMgr::unmount_s ...
06/26/14 13:40:58: the drive:C: in disk is:0
06/26/14 13:40:58: Entering DriverMgr::execute_diskpart ...
06/26/14 13:40:58: execute cmd /c diskpart.exe /s "C:\PROGRA~1\Lenovo\FACTOR~1\execute_script.txt"
调用diskpart.exe给删除第一分区的盘符为S
execute_script.txt
内容如下
select disk 0
select partition 1
remove letter S
exit

06/26/14 13:41:01: execute cmd returncode = 0
06/26/14 13:41:01: Leaving DriverMgr::execute_diskpart ...
06/26/14 13:41:01: Leaving DriverMgr::unmount_s ...
隐藏了S盘
06/26/14 13:41:01: Leaving DriverMgr::close_sp_driver ...
06/26/14 13:41:11: total size is:40960

06/26/14 13:41:11: total size is:246665213
06/26/14 13:41:11: Entering DriverMgr::get_disk_space ...
06/26/14 13:41:11: Now to calculate size path is:G:

06/26/14 13:41:11: Leaving DriverMgr::get_disk_space ...
06/26/14 13:41:12: Entering ProgressDlg::OnInitDialog ...
06/26/14 13:41:12: Leaving ProgressDlg::OnInitDialog ...
06/26/14 13:41:12: Entering UsbMediumEntity::execute_diskpart ...
06/26/14 13:41:12: execute cmd /c diskpart.exe /s "C:\PROGRA~1\Lenovo\FACTOR~1\execute_script.txt"
激活u盘,内容如下
select disk 0
select vol G
active
exit

06/26/14 13:41:15: execute cmd returncode = 0
06/26/14 13:41:15: Leaving UsbMediumEntity::execute_diskpart ...
06/26/14 13:41:15: execute cmd /c format  G: /fs:ntfs /v:cbd_drive /q /x /y
格式化u盘并分配名称:cbd_drive
06/26/14 13:41:55: execute cmd returncode = 0
06/26/14 13:41:55: execute cmd /c C:\PROGRA~1\Lenovo\FACTOR~1\BootSect.exe  /nt60 G: /force
更新设备的分区引导,为什么不写入主引导呢,在/force后面加个/mbr就可以了
06/26/14 13:41:55: execute cmd returncode = 1
06/26/14 13:41:55: Entering ProgressDlg::OnDestroy ...
06/26/14 13:41:55: Leaving ProgressDlg::OnDestroy ...
06/26/14 13:41:55: execute cmd /c mkdir "G:\Boot"
在u盘G盘下建立boot文件夹
06/26/14 13:41:55: execute cmd returncode = 0
以下是拷贝文件和文件夹
06/26/14 13:41:55: execute cmd /c xcopy /H /C /Y "c:\swshare\boot\Boot\1BCD" "G:\Boot\."
06/26/14 13:41:56: execute cmd returncode = 0
06/26/14 13:41:56: execute cmd /c xcopy /H /C /Y "c:\swshare\boot\Boot\BCD" "G:\Boot\."
06/26/14 13:41:57: execute cmd returncode = 0
06/26/14 13:41:57: execute cmd /c xcopy /H /C /Y "c:\swshare\boot\Boot\BCD.LOG1" "G:\Boot\."
06/26/14 13:41:58: execute cmd returncode = 0
06/26/14 13:41:58: execute cmd /c xcopy /H /C /Y "c:\swshare\boot\Boot\BCD.LOG2" "G:\Boot\."
06/26/14 13:41:58: execute cmd returncode = 0
06/26/14 13:41:58: execute cmd /c xcopy /H /C /Y "c:\swshare\boot\Boot\boot.sdi" "G:\Boot\."
06/26/14 13:42:00: execute cmd returncode = 0
06/26/14 13:42:00: execute cmd /c xcopy /H /C /Y "c:\swshare\boot\Boot\BOOTSTAT.DAT" "G:\Boot\."
06/26/14 13:42:01: execute cmd returncode = 0
06/26/14 13:42:01: execute cmd /c mkdir "G:\Boot\cs-CZ"
06/26/14 13:42:01: execute cmd returncode = 0
06/26/14 13:42:01: execute cmd /c xcopy /H /C /Y "c:\swshare\boot\Boot\cs-CZ\bootmgr.exe.mui" "G:\Boot\cs-CZ\."
06/26/14 13:42:02: execute cmd returncode = 0

06/26/14 13:42:34: execute cmd /c xcopy /H /C /Y "c:\swshare\boot\Boot\tag" "G:\Boot\."

06/26/14 13:42:39: execute cmd /c xcopy /H /C /Y "c:\swshare\boot\bootmgr" "G:\."
06/26/14 13:42:40: execute cmd returncode = 0
06/26/14 13:42:40: execute cmd /c xcopy /H /C /Y "c:\swshare\boot\winRE.wim" "G:\."
拷贝完毕
06/26/14 13:44:17: execute cmd returncode = 0
06/26/14 13:44:19: burn schedule successful
此句的意思是:刻录目标成功
06/26/14 13:44:19: execute cmd /c rmdir /S /Q  c:\swshare\boot
删除非空文件夹
06/26/14 13:44:19: execute cmd returncode = 0
06/26/14 13:44:19: execute cmd /c rmdir /S /Q  c:\swshare\app
删除非空文件夹
06/26/14 13:44:19: execute cmd returncode = 0
06/26/14 13:44:19: Entering DriverMgr::close_sp_driver ...
06/26/14 13:44:19: Leaving DriverMgr::close_sp_driver ...
06/26/14 13:44:19: Entering DriverMgr::restore_drive_autorun ...
06/26/14 13:44:19: NoDriveTypeAutoRun = 0
06/26/14 13:44:20: Leaving DriverMgr::restore_drive_autorun ...









欢迎光临 无忧启动论坛 (http://bbs.wuyou.net./) Powered by Discuz! X3.3