制作 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. 极致CMS建站系统后台GETSHELL

    起因 正在学习代码审计 看到有人提交了一个注入https://www.cnvd.org.cn/flaw/show/CNVD-2019-42775 想试试看还有没有别的漏洞 受影响版本 v1.6.3 - ...

  2. POI教程

    很多时候,一个软件应用程序需要生成Microsoft Excel文件格式的报告.有时,一个应用程序甚至希望将Excel文件作为输入数据.例如,一个公司开发的应用程序将财务部门需要所有输出生成自己的Ex ...

  3. datepicker时间选择弹窗

    准备工作 首先请到jqueryui.com官网下载datepicker插件代码,注意官网提供了整个jquery ui的所有插件下载,但是您可以选择其中几个用到的插件下载,本文中只用到datepicke ...

  4. 《Hadoop学习之路》学习实践

    (实践机器:blog-bench) 本文用作博文<Hadoop学习之路>实践过程中遇到的问题记录. 本文所学习的博文为博主“扎心了,老铁” 博文记录.参考链接https://www.cnb ...

  5. js保留两位小数的方法

    js保留两位小数的方法如下 1.toFixed()方法 需注意,保留两位小数,将数值类型的数据改变成了字符串类型 2.Math.floor(),不四舍五入 ,向下取整 注意,不改变数据类型 3.字符串 ...

  6. ArrayList的几种初始化方法

    1.使用Arrays.asList方法 ArrayList<Object> obj = new ArrayList<Object>(Arrays.asList(Object o ...

  7. Mysql中(@i:=@i+1)的作用

    Oracle中有一个伪列rownum,可以在生成查询结果表的时候生成一组递增的序列号.MySQL中没有这个伪列,但是有时候要用,可以用如下方法模拟生成一列自增序号. (1)sql示例:select ( ...

  8. 开机流程 模块管理 Loader

    主机系统开机流程 boot loader 主要功能 显示核心模块加载信息 查询模块信息 核心模块的加载与移除 boot loader 的两个 stage grup2配置文件  /boot/grub2/ ...

  9. Java优化性能

    尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:第一,控制资源的使用,通过线程同步来控制资源的并 ...

  10. 转帖 maven(一) maven到底是个啥玩意~

    转载自:https://www.cnblogs.com/whgk/p/7112560.html 我记得在搞懂maven之前看了几次重复的maven的教学视频.不知道是自己悟性太低还是怎么滴,就是搞不清 ...