制作启动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),我们可以这样办 …

apache配置解析php

用vim打开apache的核心配置文件vim /usr/local/apache2/conf/httpd.conf找到下面这段文字<Directory />Options FollowSymLinksAllowOverride NoneOrder deny,allowDeny from all </Directory>把deny from all 改为allow from all,若不修改访问网站会是禁…

jsp页面页面post传值_几种JSP页面传值方式

2010-01-25几种JSP页面传值方式&#xff1a;文章分类:Web前端几种JSP页面传值方式&#xff1a;1. 隐藏域传值&#xff1a;&ltform method"post" action"client_crud.jsp" &gt&ltinput type"hidden" name"id" value"&…

How to adjust OOM score for a process?

转载自http://www.dbasquare.com/kb/how-to-adjust-oom-score-for-a-process/ How to adjust OOM score for a process? Each process in Linux has a OOM score assigned to it. Its value is primarily based on the amount of memory a process uses. Whenever system is a…

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

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

浅谈JavaScript中闭包

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

Supervisord进程管家

Supervisord进程管家 Supervisord是一个守护进程的工具&#xff0c;当进程意外终止或服务器掉电起来后&#xff0c;希望进程能够自动运行&#xff0c;supervisord可以很好的为我们做这件事情。同时supervisord也自带监控界面&#xff0c;可以通过浏览器灵活的查看、操作。 以安…

WordPress 查询数据库 操作数据库

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

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

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

文档列表

兼容性列表 &#xff1a; http://caniuse.com/ 火狐浏览器css 文档 &#xff1a; --https://developer.mozilla.org/en-US/docs/Web/CSS apache &#xff1a;http://www.phpchina.com/resource/manual/apache/ 谷歌构建高性能网站专题&#xff1a;https://developers.google.…

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

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

C#常用的内置委托

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace 内置委托{ static class Program { static void Main(string[] args) { } static List<Person> GetPersonList() { return new List<Pe…

WordPress中输出当前页面SQL语句的方法

https://www.jb51.net/cms/145455.html 1. 代码方式 第一步&#xff0c;打开wp-config.php&#xff0c;添加 复制代码 代码如下: define(SAVEQUERIES, true); 开启SAVEQUERIES会使WordPress将当前页面执行的sql查询保存到一个数组中&#xff0c;数组保存了每条查询的语句、…

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

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

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

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

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

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

阿里REDIS优化

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

WordPress 常用数据库SQL查询语句大全

https://www.wpdaxue.com/wordpress-sql.html 在使用WordPress的过程中&#xff0c;我们少不了要对数据库进行修改操作&#xff0c;比如&#xff0c;更换域名、修改附件目录、批量修改文章内容等等。这个时候&#xff0c;使用SQL查询语句可以大大简化我们的工作量。 关于如何操…

linux搭建FTP服务器

1、搭建环境&#xff1a;OS:centOS7SOFT:vsftpd2、网络基本配置 [rootlocalhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-XXX //其中XXX请填写实际文件名称TYPEEthernetBOOTPROTOstatic //静态IPDEFROUTEyesPEERDNSyesPEERROUTESyesIPV4_FAILURE_FATALnoIPV4INITye…

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

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