制作启动U盘与定制多系统启动

制作启动U盘与定制多系统启动

说明:本文将讲述有关bootmgr引导启动与grub引导启动制作的相关经验,文中提到的知识谈不上完全正确,只是一些个人在制作U盘启动获得的心得,但我会尽力正确的解释清楚。

制作启动U盘

所需工具:

  1. Bootice:部署U盘/硬盘启动,必须。
  2. grub4dos:grub引导必备,必须。
  3. grubinst:功能类似Bootice,可选。
  4. HPUSBFW:惠普U盘存储格式化工具,可选。
  5. NTBOOTautofix:自动修复启动项,功能类似Bootice,可选。
  6. 其它工具类镜像等如一键Ghost,MaxDos等,可选。
  7. VHD:虚拟光驱加载工具,可选

(1).U盘引导准备:更新主引导记录

说明:一般U盘的格式为FAT32,要求单文件大小不超过4G。如果刻录的系统盘中(如合盘后的镜像)有超过4G的单文件,则需要使用NTFS格式或者ExFAT。下面以NTFS格式为例说明。

操作步骤:

  1. 按照需要的格式将u盘格式化。如果u盘不是usb-hdd格式的话,需要用工具HPUSBFW来把u盘格成usb-hdd格式。
  2. 启动BOOTICE,选中选项页"物理磁盘处理",在"目标磁盘"选中待启动的U盘(根据大小和盘符判断);

  1. 点击"主引导记录(M)",弹出的对话框中,选择"UltraISO USB-HDD+/USB-ZIP+",点击"安装/配置(s)",弹出的对话框中,点击"UltraISO USB-HDD+",提示"已成功更新主引导记录",点击"确定",再点击"取消"回到软件开始界面;

如此,U盘的主导记录更新完毕,准备工作完成。

(2).启动项部署:更新分区引导记录

1.grub引导

说明:GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。GRUB采用滚动屏幕选择想要启动的操作系统。通过向"menu.lst"文件中添加相关信息,GRUB可以控制150或者更多的启动选项,在启动时用方向键进行选择。[From:Wiki]

1.1 更新分区引导记录

方法一:grubinst方案

    说明:采用此方案,可以忽略第(1)步更新主引导记录的操作。

1.管理员身份运行"grubinst_gui.exe","设备"大栏中勾选"磁盘",下拉选择相应待启动的U盘(根据大小和盘符判断);

2.点击"分区列表"后面的"刷新"按钮,然后在该栏下拉选择"整个磁盘MBR",如果没出现这一栏,则需要根据步骤(1)格式化U盘;

3."选项"大栏中勾选"不保存原来MBR"、"启动时不搜索软盘"、"不引导原来MBR",点击"安装",弹出界面,提示"The MBR/BS has been successfully installed...",按任意键退出。

方法二:BOOTICE方案

说明:采用此方案需要通过第(1)步更新主引导记录的操作。

1.启动BOOTICE,选中选项页"物理磁盘处理",在"目标磁盘"选中待启动的U盘(根据大小和盘符判断);

2.点击"分区引导记录(P)",弹出的对话框中,选择"GRUB4DOS 0.4.5c/0.4.6a(FAT/FAT32/NTFS/ExFAT)",点击"安装/配置(s)",弹出的对话框中,使用默认设置,点击"确定",提示"成功更新分区的PBR!",点击"确定",再点击"取消"回到软件开始界面;

3.点击"分区管理(G)",弹出的对话框中,选择引导文件"GRLDR"所在的分区,点击"激活",完成启动项设置,退出。如果"激活"按钮为灰色,说明该分区已经为活动分区,无需更改,退出即可。

 

1.2 设计引导菜单

1. 打开文件夹grub4dos,将其中的grldr和menu.lst文件复制到U盘根目录,建议把grub.exe也复制进去。注意,如果menu.lst有中文,则应该复制grub4dos\chinese文件夹下的文件,同时需要复制额外提供的字库文件FONTS.GZ。

2.设计grub引导菜单,通过修改menu.lst实现。我的menu.lst如下,请根据其复制相应文件到指定目录,或者自定义路径并在munu.lst中做相应修改。

 

color black/cyan yellow/cyan

 

#超时时间

timeout 30

 

#默认选项

default 0

 

fontfile /grub/fonts.gz

 

#背景底图

splashimage=/grub/jair.xpm.gz

 

#bootmgr启动

title [1] 安装Winows系统

find --set-root /bootmgr

chainloader /bootmgr

boot

 

#直接加载iso启动

title [2] 启动WinXPPE

fallback 6

find --set-root /tools/LMTWINPE.iso

map /tools/LMTWINPE.iso (0xff) || map --mem /tools/LMTWINPE.iso (0xff)

map --hook

chainloader (0xff)

savedefault --wait=2

 

#直接加载iso启动

title [3] 启动Win7PE系统

fallback 6

find --set-root /tools/WIN7PE.iso

map /tools/WIN7PE.iso (0xff) || map --mem /tools/WIN7PE.iso (0xff)

map --hook

chainloader (0xff)

savedefault --wait=2

 

#直接加载iso启动

title [4] 启动Win8PE系统

fallback 6

find --set-root /tools/Ton8PE.iso

map /tools/Ton8PE.iso (0xff) || map --mem /tools/Ton8PE.iso (0xff)

map --hook

chainloader (0xff)

savedefault --wait=2

 

#直接加载img启动

title [5] 启动MAXDOS9.3工具

map --mem /tools/MAXDOS9.3.IMG (fd0)

map --hook

chainloader (fd0)+1

rootnoverify (fd0)

 

#直接加载img启动

title [6] 磁盘分区管理 DiskGenius

clear

#password

map --mem /tools/DG450DOS.img (fd0)

map --hook

chainloader (fd0)+1

rootnoverify (fd0)

 

#直接加载img启动

title [7] 启动江民杀毒 KV2006

clear

#password

map --mem /tools/kv2006.img (fd0)

map --hook

chainloader (fd0)+1

rootnoverify (fd0)

 

#直接加载img启动

title [8] 启动一键GHOST

clear

#password

map --mem /tools/GHOST.img (fd0)

map --hook

chainloader (fd0)+1

rootnoverify (fd0)

 

#直接加载img启动

title [9] 用户密码清除工具

find --set-root --ignore-floppies /tools/password.img

map --mem /tools/password.img (fd0)

map --hook

chainloader (fd0)+1

rootnoverify (fd0)

 

#直接加载img启动

title [10] BIOS密码清除工具

find --set-root --ignore-floppies /tools/cmos.img

map --mem /tools/cmos.img (fd0)

map --hook

chainloader (fd0)+1

rootnoverify (fd0)

 

#直接加载ima启动

title [11] 启动DOS98工具

map --mem /tools/win98j.ima (fd0)

map --hook

chainloader (fd0)+1

rootnoverify (fd0)

        

title [12] 重启计算机

reboot

 

title [13] 关闭计算机

halt

至此,grub引导启动U盘制作完毕。

1.3 常见问题

1.直接引导ISO失败的问题

如果iso文件不能成功引导,问题可能出在这个iso文件的文件系统格式不为grub4dos支持上,用UltraISO把它转为标准的iso文件即可。

2.直接引导WinPE的ISO时无法加载外置程序的问题

分析:因为PE的软件分为有全内置和外挂,而大多数的PE软件都是外挂的,外挂式PE在启动时只载入PE内核,进入系统后才从光盘中挂载外置程序,而grub引导iso启动后,不可能再给此iso分配盘符(因为grub只负责引导系统系统启动,系统启动之后的不再处理),如此也就无法加载外置程序。至于解决方案,网上有很多,下面罗列其中的四种,但不见得每一种都能有效解决问题。

  1. 把软件全部转化为内置式的,这个不是很好,首先对于内存小的老式电脑来说,负荷太大,其次修改PE也是需要花点功夫的,有些时候我们只是需要偶尔用一下PE而已,需要PE反而本末倒置。
  2. 启动后手动挂载外置程序。在u盘上存储虚拟光驱软件,在系统启动后,运行虚拟光驱,将启动用的iso载入,运行CMD,执行命令:

    pecmd load X:\*** \xxx.ini

    参数说明:第一个X为虚拟光驱盘符,*** 为外置程序所在目录,xxx.ini为系统内核加载后,完成外置程序加载的配置文件。拿我用的老毛桃911版WinPE来说,进入PE后没有任何软件,加载iso到虚拟光驱,然后在cmd下执行pecmd load X:\MINIPE\WinPE.INI,所有软件就会加载成功了。至于虚拟光驱,可以用微软的VCdControlTool,也可以用VHD等。

  3. 给PE加上firadisk驱动,这个方法也是需要修改PE的,但是相对来说对PE的进行的手术不是很大,所以可以一试。下面也是拿老毛桃911版WinPE来说命操作步骤:
    1. 获取Firadisk驱动文件,最新版下载地址:。
    2. 打开PE镜像文件,进入MINIPE 文件夹获取PE内核文件WINPE.IS_,用压缩软件解压获取WinPE.ISO;
    3. 打开内核镜像文件WinPE.ISO,进入WXPE文件夹获取TXTSETUP.SI_文件,再将其解压获取TXTSETUP.SIF文件。
    4. 将Firadisk.sys文件复制到PE的/WXPE/SYSTEM32/DRIVERS目录下,修改winnt.sif,在[SCSI.Load]节加入一行"Firadisk=Firadisk.sys,4"(不包括冒号),最后用CAB打包工具CABdabgj重新打包为TXTSETUP.SI_,然后再将WinPE.ISO重新打包为WINPE.IS_即可。
    5. 替换之前的PE镜像文件中的PE内核文件,用UltraISO重新制作新的ISO镜像。
  4. 用加载firadisk镜像的方式。Grub菜单类似如下:

    find --set-root /FIRADISK.IMG

    map --mem /FIRADISK.IMG (fd0)

    find --set-root /MYISO.ISO

    map /MYISO.ISO (0xff) || map --mem /MYISO.ISO (0xff)
    map –hook

    chainloader (0xff)

  5. 上面四种方案在我的机子上测试都出现问题,具体原因也没去深究。菜鸟纠结太多也是浪费时间,不过我自己想了一种解决方法。既然说无法分配盘符,然后找不到外置软件,那我就把外置软件的文件夹复制到U盘根目录,应该就可以找到了吧?实验证明,这种笨方法确实有效。所以就会看见,启动U盘根路径下多了一个文件夹MINIPE。还是以老毛桃911版WinPE为例说明。将该PE镜像文件中的MINIPE文件夹复制到U盘根目录,然后删除WINPE.IS_,因为这个是内核PE,可以正常加载就无需累赘了。这样的话,MINIPE文件夹下只有两个文件,OP.WIM和WINPE.INI,OP.WIM为外置软件镜像,即为所需的文件。

3.在WinPE下安装XP无法找到硬盘分区的问题

分析:机器的硬盘为SATA硬盘且主板开启了AHCI模式。

解决:

一、换一个集成了SATA驱动的PE。(这方法不太好,谁知道哪个PE集成了?难不成一个个试啊?)

二、在BIOS中更改硬盘模式为兼容模式Compatible即可。总之就是在bios中找到SATA关键字,然后把其中的值AHCI变成其它的即可。比如我的ThinkPad电脑,进入BIOS后,选择Config,然后选择进入Serial ATA(SATA),可以看到SATA Controller Mode Option 的值为AHCI,更改为Compatible保存退出即可。

2.ntldr引导

说明:NTLDR文件是Windows NT/windows 2000/windows XP/windows server 2003引导文件,当此文件丢失时启动系统会提示"NTLDR is missing..."并要求按任意键重新启动,不能正确进入系统[From:百度百科]

利用BOOTICE部署U盘,意义不大,因为一般不会只在U盘引导XP系统,而是多启动项,后面会介绍。有关进一步ntldr引导知识请自行百度,本文不再赘述。

3.bootmgr引导

说明:bootmgr是在Windows Vista和Windows 7和win8(8.1)中使用的新的启动管理器,以代替Windows xp中的启动管理器—NTLDR。电脑加电后,首先是启动BIOS程序,BIOS自检完毕后,找到硬盘上的主引导记录MBR,MBR读取DPT(分区表),从中找出活动的主分区,然后读取活动主分区的PBR(分区引导记录,也叫pbr),PBR再搜寻分区内的启动管理器文件bootmgr,在bootmgr被找到后,控制权就交给了bootmgr。bootmgr读取\boot\bcd文件(BCD=Boot Configuration Data ,也就是"启动配置数据",简单地说,windows7下的bcd文件就相当于xp下的boot.ini文件),如果存在着多个操作系统并且选择操作系 统的等待时间不为0的话,这时就会在显示器上显示操作系统的选择界面。[From:百度百科]

启动项配置文件BCD文件放在磁盘分区的活动分区下,一般该分区作为保留分区(可理解为未分配驱动号的分区,一般比较小),不在此上安装操作系统。通过右键点击计算机,依次选择"管理"-"磁盘管理",找到计算机磁盘,分别点击各分区可查看哪一个为活动的分区。

    注意:

    如果活动的分区不为保留的分区,如安装了操作系统地分区,建议将保留分区设置为活动的分区,因为这样,下次重装系统时才不会覆盖之前的启动项配置。重新设置活动的分区后,应该运行NTBOOTautofix自动修复启动项,如此在新的活动分区上生成BCD文件。BCD文件位置:C:\Boot\BCD,注意此处的C盘泛指保留分区,一般在WinPE系统下,保留分区被分配为C盘。

更新分区引导PBR步骤:

1.启动BOOTICE,选中选项页"物理磁盘处理",在"目标磁盘"选中待启动的U盘(根据大小和盘符判断);

2.点击"分区引导记录(P)",弹出的对话框中,选择"BOOTMGR引导程序(FAT/FAT32/NTFS/ExFAT)",点击"安装/配置(s)",弹出的对话框中,使用默认设置,点击"确定",提示"成功更新分区的PBR!",点击"确定",再点击"取消"回到软件开始界面;

3.点击"分区管理(G)",弹出的对话框中,选择引导文件"GRLDR"所在的分区,点击"激活",完成启动项设置,退出。如果"激活"按钮为灰色,说明该分区已经为活动分区,无需更改,退出即可。

通过上述部署后,可将Windows 7系统版本以上的镜像文件解压到U盘,可实现U盘启动安装系统。

多系统启动

说明:有关于多系统,无非就是Windows多个版本的系统,以及Linux等多系统共存的问题。在装双系统时,经常会出现系统启动项丢失的问题,尤其是Window与Linux双系统时问题更加突出,这时就需要通过Bootice来修复启动项。要设计多系统启动项,可以使用Grub引导,与之前部署U盘启动方法一致,唯一的区别就是启动文件放在本地硬盘中,只需要注意将其放在活动分区即可。下面着重介绍bootmgr读取bcd文件启动方案,bcd文件位于活动分区的boot文件夹下,该分区可能为隐藏分区,可以进入Windows磁盘管理其中查看哪个分区为活动的分区。如果当前系统为本机硬盘中的系统,可以直接打开BOOTICE编辑BCD文件。如果进入的是U盘的WinPE系统,想编辑该BCD文件,需要先为该分区分配盘符,否则找不到该BCD文件。正式进入正题:

部署步骤:

1.打开BOOTICE,选中选项页"BCD编辑",如果进入的是本机硬盘系统,则选择"当前系统BCD",否则找到相应BCD文件编辑。然后点击"智能编辑";

2、选择"其它BCD文件",点击"..."浏览,在路径"C:\Boot\BCD"下找到BCD文件。如果该路径存在BCD文件,则进入步骤3。否则,选择"新建BCD",弹出的对话框中文件名填写"BCD",并保存在"C:\Boot"下(活动分区的Boot文件夹下),然后进入步骤3;

3、点击"智能编辑",然后自定义编辑启动项;

4、点击左侧面板的"添加",根据系统类型选择新建类型,这里以新建win8.1启动项为例,选择"新建Windows 7/8/8.1启动项"。其它的根据需求做相应选择。注意留意"设备类型"的变化,一般会根据选择的系统自动更改。

5、在右侧面板,"启动磁盘"项选择计算机本身的硬盘,可根据大小判断为哪一个;必须更改!

6、如果计算机的磁盘有很多个分区,则"启动分区"项需要选择操作系统所在的分区;必须更改!

7、"菜单标题"可改为指定的标题,如"Windows 8.1 Pro x64",其它选择保持默认的不变。选择性更改!

8、点击右侧面板下方的"保存当前系统设置",注意没添加或修改一个系统需要保存一下!

9、点击左侧面包下方的"保存全局设置",然后点击"关闭"退出编辑,点击"退出",退出软件。

 

另外:由于Windows系统镜像中也有BCD文件,同样也位于boot文件夹下,因此该BCD文件也可做自定义的修改,具体方法不再赘述。

 

[完毕]

 

作者: JairkongJairkong's Blog on 博客园) 
出处:http://www.cnblogs.com/jairkong/
本作品由Jairkong创作,采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
欢迎转载,但任何转载必须保留完整文章,在显要地方显示署名以及原文链接。如您有任何疑问或者授权方面的协商,请 给我留言

转载于:https://www.cnblogs.com/jairkong/p/3738276.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399436.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wordpress footer置底

/* 通过calc()函数让内容区块自动伸缩 */ .my-body{min-height: calc(71.7vh - 80px); } footer{height:50px; } 参考:https://www.jianshu.com/p/6efe2c76a2dd 当我们要设置网页中的footer置底(sticky footer),我们可以这样办 …

电脑公司 GHOST WIN10 X64 装机专业版 V2018.04(64位)

http://www.xitongzhijia.net/win10/201804/123923.html 系统简介 电脑公司 GHOST WIN10 X64 装机专业版 V2018.04 系统维护和美化工具,常用软件一站到位,自带安全软件,自动屏蔽木马病毒阻止病毒运行,阻挡填出IE插件,G…

浅谈JavaScript中闭包

引言 闭包可以说是JavaScript中最有特色的一个地方,很好的理解闭包是更深层次的学习JavaScript的基础。这篇文章我们就来简单的谈下JavaScript下的闭包。 闭包是什么? 闭包是什么?通俗的解释是:有权访问另一个函数作用域中变量的函…

WordPress 查询数据库 操作数据库

https://www.168seo.cn/jianzhan/wordpress/advance-wordpress-tutorial/24692.html 插件位置 需要注意的是,由于在WordPress中可以配置wp-content/plugins/目录的位置,所以你必须使用plugin_dir_path()和plugins_url()两个函数来获取插件的路径。 Wor…

std string与线程安全_C++标准库多线程简介Part1

Part1:线程与互斥量本篇文章将简单的介绍一下C的标准线程库,本篇内容十分基础,如果你有C多线程相关的使用经验或者知识,就不必在这篇文章上浪费时间了...如果你认为本篇文章对你有帮助,请点赞!!&#xff01…

secilog 1.17 发布 增加了英文版本等新功能

2019独角兽企业重金招聘Python工程师标准>>> 日志分析软件 secilog 1.17发布,增加了英文版本,对日志导入增加了日志机器ip和日志机器名,或者日志ip和日志域名的关系。上篇文章1.16,有兴趣可以了解一下。本次升级主要增…

用clipboard.js实现纯JS复制文本到剪切板

以前很多人都是用ZeroClipboard.js来实现网页复制内容,火端也是用它。ZeroClipboard是利用flash来实现的,ZeroClipboard兼容性很好,但是由于现在越来越多的浏览器不支持flash,导致一些没法正常使用了。 今天火端开始使用clipboard…

vbs获取程序窗体句柄_PyQt5 GUI程序的基本框架

本节先通过一个简单的示例程序介绍PyQt5 GUI应用程序的基本框架。启动Python自带的编程和交互式环境IDLE,点击“File”→“New File”菜单项,打开一个文件编辑窗口,在此窗口中输入下面的程序,并保存为文件demo2_1Hello.py&#xf…

【学神】1-4 用户及用户组管理

用户及用户组管理本节所述内容:用户和组的相关配置文件管理用户和组 进入单用户模式找回root身份一、用户和组的相关配置文件1.用户的分类(1)根据帐号的位置:本地帐号、远程(域)帐号、LDAP&…

阿里REDIS优化

转载于:https://www.cnblogs.com/isoftware/p/3745956.html

vb子程序未定义怎么改怎么办_煤粉输送不畅、秤不稳怎么办?多家企业这样改!...

摘要: CWF型煤粉转子喂料系统优点在于运行稳定、精度高,一致以来受到用户的青睐,但其对煤粉要求也高,尤其是水分含量,直接影响给料的稳定性和受控性。各种非正常因素对测控的影响较大,容易造成下料不畅、波动等现象,下…

SQL Server实现读写分离提高系统并发

转自:http://www.canway.net/Lists/CanwayOriginalArticels/DispForm.aspx?ID666 在一些大型的网站或者应用中,单台的SQL Server 服务器可能难以支撑非常大的访问压力。很多人在这时候,第一个想到的就是一个解决性能问题的利器——负载均衡。…

php如何获取网址中的参数

https://zhidao.baidu.com/question/140978452.html 比如有一个网址为 http://域名/goods.php?u59&id24#pinglun 我想得到这个id值 可以用正则,也可以用php函数解析到数组中 用正则可以这样 preg_match(/id(\d)/,$_SERVER["REQUEST_URI"],$m);//$_SERVER 这…

.net core 引用jar_Python一键转Jar包,Java调用Python新姿势!

粉丝朋友们,不知道大家看故事看腻了没(要是没腻可一定留言告诉我^_^),今天这篇文章换换口味,正经的来写写技术文。言归正传,咱们开始吧!今天的这篇文章,聊一个轩辕君之前工作中遇到的…

PHP版本的区别

2019独角兽企业重金招聘Python工程师标准>>> 以为这个已经写过了,发现没有,赶紧补充下。 PHP的版本,自从进入5以后,发布新版本速度明显提升很多,从PHP5.2开始,5.3 、5.4 、5.5,就快要…

1515 跳 - Wikioi

题目描述 Description邪教喜欢在各种各样空间内跳。现在,邪教来到了一个二维平面。在这个平面内,如果邪教当前跳到了(x,y),那么他下一步可以选择跳到以下4个点:(x-1,y), (x1,y), (x,y-1), (x,y1)。而每当邪教到达一个点&#xff0…

快速格式化的DOS命令是什么?

https://zhidao.baidu.com/question/3269005.html Dos下的format命令是用来进行格式化的。 FORMAT A:或c:, d:等等,后面可以加一些参数 比如FORMAT A: /S 这是格式化并追加系统。也就是制作一个简单的启动盘。 如果给硬盘进行格式化(重装系统前的准备工…

ADT-bundle

eclipse 弹出 Version 1.4.2_03 of the JVM not suitable for this product.Version1.6or geeater is requir 原因jdk版本过低,需更换高版本 ADT-bundle-linux-X86 解压后有两个文件夹eclipse 和sdk 注意:adb命令在platform-tools下 解压后还需修改sdk的…

合并两个有序链表算法(leetcode第21题)

题目描述: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1:输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4] 示例 2:输入:l1 [], l2 [] 输…

修改maven本地仓库位置

2019独角兽企业重金招聘Python工程师标准>>> 首先需要安装好&#xff0c;假设安装位置在&#xff1a;D:\****\maven\apache-maven-3.3.3修改本地仓库位置&#xff0c;打开配置文件&#xff1a;D:\****\maven\apache-maven-3.3.3\conf\settings.xml<!-- localRepo…