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

★基本概念解释

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

◇光盘镜像

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

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

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

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

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

◇Hybrid 模式

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

★啥是通用制作方法?

  所谓的“通用做法”,就是说这类方法跟光盘内置的系统无关,适用于大多数的光盘镜像(可以是 Windows 系统盘,也可以是 Linux 系统盘,也可以是苹果的系统盘)。
  但是,“通用方法”不等于“万能方法”。某些古老的系统(比如 Win2000、WinXP)用下列方法可能搞不定。针对这类老系统,需要使用专门的工具(考虑到老系统用得越来越少了,所以今天暂时不聊)。
  今天介绍的这三种工具,应该可以搞定:
1. WIndows Vista 之后的安装盘(Vista、Win7、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 的安装盘。

如何用 ISO 镜像制作 U 盘安装盘(通用方法、无需 WinPE)的更多相关文章

  1. 快速制作U盘启动盘和U盘安装盘的方法

    制作U盘启动盘的方法: 1. 安装UltraISO; 2. 安装完成后,用管理员权限打开UltraISO; 3. 打开启动盘文件,一般为ISO文件: 4. 插入U盘: 5. 选择 启动 -> 写 ...

  2. cat和cp的神奇用法:制作U盘安装盘

    使用U盘安装debian,U盘的制作方法: 方法一: https://www.debian.org/doc/manuals/debian-handbook/installation.zh-cn.htm ...

  3. U盘制作Win7安装盘的方法

    Windows 7 USB/DVD download tool 微软官方说明:http://www.microsoftstore.com/st ... Win7_usbdvd_dwnTool 下载地址 ...

  4. 用Rufus来制作Windows10的U盘安装盘

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:用Rufus来制作Windows10的U盘安装盘.

  5. 在CentOS-6.3环境下,利用grub工具手工制作Linux U盘安装盘

    注:此文是本人亲自操作实现后写的心得,同时也是对自己操作的记录. 制作的全过程概况 准备工作: U盘重新分区: 格式化U盘: 安装grub文件到U盘特定的分区: 拷贝镜像中的相关文件到U盘: 安装时设 ...

  6. Mac上制作Centos7系统U盘安装盘

    Centos7 下载地址: http://101.110.118.47/isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD- ...

  7. 老外写的-用Rawrite神器写入u盘镜像-制作u盘启动- fedora -u盘安装制作

    用Rawrite神器写入u盘镜像? ====================================================== 尝试用ultraiso, 写入硬盘镜像, 不能启动,在 ...

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

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

  9. Mac 制作 10.11.3 U盘安装盘

    U盘要且只分一个区  Mac OS 拓展(日志式)  GUID分区表: 将“安装 OS X El Capitan” 放到  应用程序文件夹下 命令: sudo /Applications/Instal ...

随机推荐

  1. springboot注册到consul中报错:Spring MVC found on classpath, which is incompatible with Spring Cloud

    今天在做springboot整合成springCloud并注册到consul中时,发现若注册到consule中成功 则不能启动swagger,且不能提供任何API服务,要是能提供API服务则不能注册到 ...

  2. hdu 1501 贪心问题

    这道题目的关键就是逐个搜索的过程 找个时间得复习一下dfs了    这里使用temp作为参照变量 每次比较以后(由于已经排序好) 已temp为参照进行下一次的比较

  3. SQL case when 遇到null值

    case  when f.FPH is  NULL then a.HSJE else f.KPHSJE  end    yes case f.FPH  when   NULL then a.HSJE ...

  4. MySQL-8.0.16 的安装与配置

    最近老是安装mysql, 但是由于各个环境下文件不互通,所以感觉笔记还是记录在这里比较方便.以下内容,是对网络上大家的笔记的搜集和整理,并经过自己的实践,记录下来.以便,让大家更好.更快的配置mysq ...

  5. falcon 数据丢失处理方法参考

    背景:使用 netstat -ano | grep ESTABLISH | grep 11883 监控 send_Q 和 recv_Q 的值,由于单次推送数据量在1w条以上,导致falcon-agen ...

  6. Java 之 字节输出流[OutputStream]

    一.字节输出流 java.io.OutputStream 抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地. 该类中定义了字节输出流的基本共性功能方法. 公性方法: public v ...

  7. 文件锁 flock/fcntl

    多个进程同时操作一个文件 1. flock int flock(int fd, int operation); LOCK_SH 建立共享锁定.多个进程可同时对同一个文件作共享锁定(读锁定) LOCK_ ...

  8. MVC-Cache-1.输出缓存(Cache:[1].输出缓存2.应用程序缓存)

    缓存前提概念: 1.使用缓存的目的就是为提供网站性能,减轻对数据库的压力,提高访问的速度. 2.如果使用缓存不当,比不使用缓存造成的影响更恶劣(缓存数据的更新不及时.缓存过多等). 3..net MV ...

  9. [转]理解Linux的性能

    来源:http://www.linuxfly.org/post/114/ [转]理解Linux的性能       项目中常遇到需要对目前运行的系统进行效率分析,或碰到客户咨询如何优化系统的效率问题.更 ...

  10. Linux常用命令与详解

    在Linux系统中文件删除.创建.更改等操作都是通过一个个不同的命令来完成我们想要的操作,那么什么是命令呢? 凡是在字符操作界面中输入的能够完成特定操作和任务的字符串都可以称为命令.严格来说,命令通常 ...