如何用 ISO 镜像制做 U 盘安装盘(通用方法、无需 WinPE)

 

  今天聊的这个话题属于老生常谈,这几年时常有读者来询问(如今有愈来愈多的电脑是无光驱的)。再加上俺后面要扫盲一些“特殊的 Linux 发行版”,到时候确定又要涉及到制做可引导U盘的事情。因此,今天先单独发一篇教程,说说几种不一样的搞法。
  事先声明:
  1. 本文针对的是U盘,而不是外置的USB硬盘。外置USB移动硬盘的操做方式稍有不一样,若是不少人感兴趣,再另外写一篇教程)
  2. 本文介绍的是“用U盘当安装盘”,而不是“安装系统到U盘”(这二者是彻底不一样滴)windows

★基本概念解释缓存

  考虑到本文面向的读者,技术水平良莠不齐。针对某些菜鸟读者,俺须要先解释一下基本概念。若是你自认为不是菜鸟,请略过“基本概念解释”,直接看后续章节。安全

◇光盘镜像工具

  所谓的“光盘镜像”实际上是一个文件,能够用专门的刻录软件(再配合“可写光驱”),就能够把镜像文件刻录成光盘。
光盘镜像有好几种格式,目前最多见的是扩展名为“ISO”的格式(这个扩展名源自于 ISO 9660 标准)。大多数操做系统提供的光盘镜像文件,都是ISO格式的。测试

◇啥是“可启动的”光盘镜像?spa

  “可启动光盘”也称为“可引导光盘”(洋文叫“bootable”)。这类光盘插入光驱以后,若是你在 BIOS 中设置“光驱优先启动”,那么就能够用这种光盘启动电脑。
  一样的,光盘镜像也分:可启动 和 不可启动 两种。好比某些存放视频/音乐的ISO就是不可启动的;而用来安装系统的镜像,必须是可启动的(显然嘛)。因此,若是你想制做可启动的U盘,前提是你用的光盘镜像自己是可启动的。操作系统

◇如何判断光盘镜像是否可启动?命令行

  刚才说了:光盘镜像只是一个文件,不是物理光盘。因此你无法把它塞入物理光驱中,用虚拟光驱也不方便测试。俺建议用虚拟机软件测试。历来没据说过“虚拟机软件”的同窗,能够先看以前的教程《扫盲操做系统虚拟机》。
  测试方法以下:先建一个空的虚拟系统(Guest OS),在虚拟系统的“光驱”中设置你要测试的那个镜像文件,而后启动虚拟系统。若是能看到操做系统的相关画面,就说明启动成功;若是屏幕一片黑或者出现找不到系统的英文提示,就说明这个镜像没法启动(没法引导)。视频

◇Hybrid 模式教程

  对于可启动光盘,有一种模式称之为“Hybrid 模式”(混合模式)。这种模式的光盘,能够直接刻录成物理光盘,也能够直接制做成可引导的U盘。
  现在愈来愈多的操做系统安装光盘采用“Hybrid 模式”,这就方便了大伙儿制做“可启动U盘”。另外,有些光盘虽然不是“Hybrid 模式”,但能够用工具转换成“Hybrid 模式”。

★啥是通用制做方法?

  所谓的“通用作法”,就是说这类方法跟光盘内置的系统无关,适用于大多数的光盘镜像(能够是 Windows 系统盘,也能够是 Linux 系统盘,也能够是苹果的系统盘)。
  可是,“通用方法”不等于“万能方法”。某些古老的系统(好比 Win2000、WinXP)用下列方法可能搞不定。针对这类老系统,须要使用专门的工具(考虑到老系统用得愈来愈少了,因此今天暂时不聊)。
  今天介绍的这三种工具,应该能够搞定:
1. WIndows Vista 以后的安装盘(Vista、Win七、Win8)
2. 各类主流的 Linux 发行版(好比 Debian、Ubuntu、RedHat、CentOS、Fedora、等)
3. 苹果的安装盘

★为啥选择这几款工具

  可以达到“通用”目的工具备很多。俺今天挑选3款开源的来介绍。为啥只挑选开源的?有以下几个讲究:
一来,俺本人比较偏好开源软件(纯属我的喜爱)
二来,开源软件不但免费,并且无需注册码,也没有使用期限的限制(方便性)。
三来,相对闭源软件而言,开源比较让人放心(安全性)。

  常看俺博客的同窗应该都知道,俺是比较关注“安全性”的,因此再把第三点补充说明一下。
  用光盘镜像制做可启动U盘,主要都是为了装系统。若是使用的制做工具自己不可靠(好比带木马),会致使你制做出来的启动U盘也不安全,进而致使你安装出来的系统不安全。

  顺便再说一下:为啥俺不喜欢用 WinPE 类型的 U盘工具。
  首先是 PE 方式的局限性——只能用于 Windows 系统(而如今有愈来愈多的网友开始玩 Linux 或 Mac OS)。
  其次是不少 PE 工具是国产的,有些国产的 PE 工具喜欢“夹带私货”。不要怨俺“崇洋”,实在是国产软件出了太多的流氓,用起来内心不踏实。

★rufus 的玩法(Windows 平台)

  rufus 这款工具,知名度不过高,但用起来比较爽(界面的定制选项多,并且速度快)。它的官网在“这里”。
  提醒一下:rufus 的 exe 文件带有数字签名,因此下载以后先验证数字签名是否有效(要养成这个好习惯)。不懂得验证数字签名的同窗,请看《扫盲文件完整性校验——关于散列值和数字签名》

  这玩意儿的界面截图以下:
不见图 请翻墙

  它在刻录前会先格式化U盘,因此必定要记得勾选“快速格式化”。若是没勾选这项,它会进行“彻底格式化”。如今的U盘动不动都有好几个GB,彻底格式化要等好久。

★UNetbootin 的玩法(跨平台)

  UNetbootin 的官网在“这里”。主页开头就是三大平台(Windows、Linux、Mac OS X)的下载连接。

  Windows 的界面截图以下:
不见图 请翻墙

  这玩意儿的使用很简单,看俺截图上的标注应该就懂。

★dd 的玩法(跨平台)

  dd 是一个颇有用的 Linux/Unix 命令,它能够用来进行设备之间的“裸读写”。所谓的“裸读写”就是——它不理睬文件系统,直接越过文件系统对物理设备进行读写。因此它能够干不少“拷贝命令”(copy/cp)没法干或不方便干的事情(好比 备份/恢复 硬盘主引导扇区)。今天俺来聊聊如何用 dd 把光盘镜像刻录到 U盘。
  可能有些熟悉 Linux 的同窗会质疑,Linux 的 cp 命令也能够用来刻录 iso 镜像。俺解释一下:本文之因此强调 dd 命令,还考虑到 dd 有 Windows 的移植版本,并且 dd 的 Windows 版本照样能把 ISO 镜像制做到 U盘。

◇在 Linux/Unix 上的玩法

  假设你有一个 iso 镜像文件,路径是 ~/xxx.iso
  假设你的 U盘对应的设备是 /dev/sdb
  那么就能够用以下这个 dd 命令
dd bs=4M if=~/xxx.iso of=/dev/sdb

稍微解释一下:
bs=4M 参数表示每次批量读写 4MB 字节的数据(俺通常都用 4M,你也能够用 8M、 2M 或 1M)。
if 参数表示输入(文件/设备)的路径,在这里用的是光盘镜像文件。
of 参数表示输出(文件/设备)的路径,在这里用的是U盘设备。

  大多数 Linux 发行版都内置了这个命令,因此通常状况下,你无需额外安装软件包就可使用 dd 命令。执行完 dd 命令以后,要记得再执行一下 sync 命令同步磁盘缓存,而后才拔出U盘。

◇在 Windows 上的玩法

  dd 命令也被移植到 Windows 系统上。具体请到“这里”下载。页面比较长,前半段是帮助,你找“Downloads for dd”,就能够看到下载连接。
  俺目前用的是 0.5 版本(0.6 仍是 beta,不爽)。

  Windows 下的 dd,用法跟 Linux 下差很少。惟一要留意的是 U盘的“设备路径”。
  (一般U盘上只有一个分区)你插入 U盘 后,假如盘符是 F: 那么对应的设备路径就是 \\.\f:
  若是你的 iso 镜像文件放在 C:\xxx.iso 那么就用以下的 dd 命令把镜像刻录到 U盘
dd bs=4M if=C:\xxx.iso of=\\.\f:
(参数刚才解释过,这儿就再也不罗嗦了)

★优缺点对比

  总结一下上述三种方法的优缺点。

◇兼容性方面

  对于U盘制做工具,兼容性很重要。兼容性很差,可能致使刻录的U盘没法启动。
  rufus 和 UNetbootin 的兼容性好于 dd。dd 的缺点在于:若是某个镜像自己不是 hybrid 模式(hybrid的解释,本文开头说过),用 dd 刻录以后会没法启动。而 rufus 和 UNetbootin 能够在刻录U盘的时候进行相应的处理。
  针对 dd 的这个缺点,有一个补救的办法:
  对于 Linux/Unix 平台,先使用 isohybrid 命令把 iso 镜像转换成 hybrid 模式(该命令属于 SysLinux/ISOLinux 软件包)。假设你的光盘镜像位于 ~/xxx.iso 那么使用以下命令转换:(惋惜该命令没有 windows 版本)
isohybrid ~/xxx.iso

  至于 rufus 和 UNetbootin 的对比,俺我的以为 rufus 不但优于 UNetbootin,并且也优于某些其它工具(好比 Universal USB Installer)。俺曾经碰到过:同一个ISO镜像,同一个物理U盘,用 UNetbootin 刻录后没法启动,而 rufus 刻录后能够启动。

◇速度方面

  dd 的速度最快(前面说了,dd 是“裸读写”,因此速度快)。rufus 的速度比 UNetbootin 快(rufus 的官网界面上有几种不一样工具的速度对比)

◇易用性方面

  UNetbootin 和 rufus 差很少——都有傻瓜化的图形界面。
  dd 易用性最差——必须得用命令行

◇跨平台方面

  UNetbootin 好于 dd 好于 rufus(rufus 只有 Windows 版本)
  提醒一下:
  这里说的“跨平台”指的是工具自身,而不是制做出来的光盘。好比 rufus 虽然只有 Windows 版本,但 rufus 能够制做 Linux 的安装盘。