制作 U 盘启动盘

这篇文章说的是 U 盘启动盘是如何运作的,同时有一个既能装 Windows 又能装 Linux 的 U 盘启动盘的例子。

U 盘启动盘

当按下开机键后,电脑能启动我原本安装的操作系统。在电源键按下到启动系统这中间也有很多的故事,你可能知道 BIOS 或者 UEFI。BIOS 做完了事情之后就要把硬件的控制权交给操作系统了,在启动操作系统之前,还有个东西叫做启动管理器,由用户选择启动哪一个操作系统。

Linux环境中,目前最流行的启动管理器是Grub2。

把 Grub2 安装到 U 盘上可以启动放在我 U 盘上的 ISO 文件来安装系统。对于启动 Linux 的 ISO 镜像来说操作很简单,按照 Multiboot_USB_drive 一步一步操作再用人家写好了的模版就能启动 Linux ISO 镜像了。

但是如果要启动 WinPE 呢?Grub2 启动 WinPE 有很多种方式

* ntldr
* grub2 -> grub4dos
* grub2 + syslinux/memdisk
* grub2 引导 WinPE 的 WIM 文件

由于GRUB2不能在 UEFI 模式下对 ISO 文件进行仿真,那么我们应该如何在UEFI模式下引导 WindowsPE 呢?答案是必须使用 WIM 格式的 WindowsPE。具体说来就是首先用GRUB2链式加载微软的 "bootx64.efi" 引导管理器,然后再由 "bootx64.efi" 根据 BCD 文件的指引去启动 WindowsPE。那么 BIOS 就通过 grub4dos 来启动 WindowsPE 吧。

Note: bootmgfw.efi 文件其实就是镜像文件里的 /EFI/Boot/bootx64.efi

更进一步来说,我们可以把 WinPE 中的 /EFI/Boot/bootx64.efi 拷贝到 U 盘的 /EFI/BOOT/bootmgfw.efi,这只是引导。然后把要加载的 /sources、/Boot 目录也拷贝到 U 盘就能启动PE了。

chainloader bootx64.efi

基于 GRUB2 制作滋瓷 BIOS/UEFI 双模式启动的 Linux/Windows 安装U盘 介绍了如何对 U 盘分区,安装 grub2。在此基础上我们单独为 WindowsPE 开一个分区,然后引导 "bootx64.efi" 启动 WindowsPE。

menuentry 'UEFI Windows PE Boot Manager' --unrestricted {
         set root=(hd0,4)         # WindowsPE 所在的分区
         chainloader /EFI/Boot/bootx64.efi
}

配置 grub4dos

拷贝 "grub.exe" 到 U 盘,在 '/boot/grub/grub.cfg' 增加下面的代码。'/boot/grub4dos/grub.exe' 是 "grub.exe" 在 U 盘的位置,'--config-file=/boot/grub4dos/menu.lst' 是 "menu.lst" 在 U 盘的位置。

menuentry "Grub4Dos" {
         linux /boot/grub4dos/grub.exe --config-file=/boot/grub4dos/menu.lst
}

添加下面的代码到 '/boot/grub4dos/menu.lst','/bootmgr' 的意思是说 "bootmgr" 在 U 盘的根目录下。(bootmgr 在 WindowsPE ISO 的根目录下)

title Win10PE
find --set-root /bootmgr
chainloader /bootmgr

参考文章

制作 U 盘启动盘的更多相关文章

  1. U盘启动盘的制作--用U盘硬装Windows系统、或是重装Windows系统

    借助IT天空的优启通U盘启动盘的制作--用U盘装Windows系统.或是重装Windows系统之U盘启动盘的制作 1.==================================== 2.== ...

  2. 制作centos的U盘启动盘

    制作centos的U盘启动盘比ubuntu麻烦一些,因为可能涉及到fat32文件格式不支持大于4G的文件存储的问题,而最新版本的centos就是大于4G的,所以就需要对U盘进行分区. 一个做主引导,一 ...

  3. windows下制作linux U盘启动盘或者安装优盘(转)

    windows下制作linux U盘启动盘或者安装优盘(转) Linux发行版排行榜:http://iso.linuxquestions.org/ [方案一]:UltraISO(不推荐,在Window ...

  4. 制作U盘启动盘及安装操作系统的方法

    U盘启动盘制作方法: 1.从网上下载最新的老毛桃U盘启动制作工具主程序并安装 2.插入U盘(制作启动盘前先保存好你的资料到其它地方,以防丢失不可找回) 3.插入正确的U盘后程序会自动检测到U盘,启动模 ...

  5. U深度利用iso文件制作U盘启动盘

    利用U盘装win10系统: 工具:U深度装机版   文件:win10.iso 步骤1:下载U深度装机版安装 步骤2:打开U深度,制作U盘启动盘,注意选择iso模式,如下图所示 接下来下一步即可,工具会 ...

  6. 用UltraISO制作支持windows 7的U盘启动盘

    用UltraISO制作U盘启动盘,有人写过,我也看过,不过依照网上的那些文章,成功的并不多,经过几次试验,在不同的主板环境下成功概率高的方法应该如下:   1. UltraISO建议9.3以上 2. ...

  7. UltraISO制作U盘启动盘安装Win7/10系统攻略

    UltraISO制作U盘启动盘安装Win7/9/10系统攻略 U盘安装好处就是不用使用笨拙的光盘,光盘还容易出现问题,无法读取的问题.U盘体积小,携带方便,随时都可以制作系统启动盘. U盘建议选择8G ...

  8. Windows-002-U盘启动盘制作

    通常我们安装系统时,均采用光盘的形式安装,只是这种方法需要随时随地的带着光盘,还不容易保存.携带光盘.这时,一个 U盘启动盘 就是您的首选了,此种方式的好处多多,比如:忘记开机密码.系统备份.安装系统 ...

  9. 一键制作u盘启动盘教程

    第一步:制作完成u深度u盘启动盘   第二步:下载Ghost Win7系统镜像文件包,存入u盘启动盘   第三步:电脑模式更改成ahci模式,不然安装完成win7系统会出现蓝屏现象 正式安装步骤: u ...

  10. windows和linux环境下制作U盘启动盘

    新笔记本上,要装xp的系统,100%会破坏原有的Linux系统,因为安装xp的时候会自动覆盖硬盘的主引导扇区,这个扇区一旦被重写,那么原有的linux根本就启动不了. 要想玩linux和xp双系统,一 ...

随机推荐

  1. PAT甲级——A1141 PATRankingofInstitution

    After each PAT, the PAT Center will announce the ranking of institutions based on their students' pe ...

  2. Django框架(十六)—— cookie和session组件

    目录 cookie和session组件 一.cookie 1.cookie的由来 2.什么是cookie 3.cookie的原理 4.cookie的覆盖 5.在浏览器中查看cookie 6.cooki ...

  3. java算法汇总(一)

    1.有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子涨到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月兔子总数为多少? 程序分析:斐波那契数列 0.1.1.2.3.5.8.13.21 ...

  4. Apache和Tomcat的区别是什么?

    Apache 和 Tomcat 都是web网络服务器,两者既有联系又有区别,在进行HTML.PHP.JSP.Perl等开发过程中,需要准确掌握其各自特点,选择最佳的服务器配置. Apache是web服 ...

  5. 跨域Ajax请求时是否带Cookie的设置

    1. 无关Cookie跨域Ajax请求 客户端 以 Jquery 的 ajax 为例: $.ajax({ url : 'http://remote.domain.com/corsrequest', d ...

  6. 高级UI晋升之自定义view实战(七)

    更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680本篇文章自定义ViewGroup实现瀑布流效果来进行详解dispatchTouch ...

  7. linux python2.6升级2.7

    一.升级 Python 2.7.10 版本 1. 准备安装包,系统是最小化安装 # 下载安装依赖的相关包[root@vip ~]# yum install vim gcc make wget -y [ ...

  8. Selenium3 + Python3自动化测试系列十二——窗口截图与关闭浏览器

    窗口截图 自动化用例是由程序去执行的,因此有时候打印的错误信息并不十分明确.如果在脚本执行出错的时候能对当前窗口截图保存,那么通过图片就可以非常直观地看出出错的原因.WebDriver提供了截图函数g ...

  9. C語言中資料結構(struct)的大小

    通常在PC上寫程式時,很少會去管struct會佔掉多少記憶體.當要使用到時,也不會想去用手算到底佔掉多少,大多是直接使用sizeof來做計算.然而sizeof計算出來的值往往不會如我們想的一樣.因為c ...

  10. ES5的 forEach, map 方法的实现

    如果浏览器不支持forEach,map方法, 要我们自己封装一个, 该怎么操作呢? 1. forEach Array.prototype.forEach = function(fn) { if (th ...