我们在日常使用Windows系统中,通常要用到能启动pe的光盘,然后将下载的后缀名为iso的光盘镜像拷贝到U盘中,如果要直接制作一个不含pe的iso原版启动安装U盘,则需要在Windows系统正常启动后,下载一个专门烧录U盘的工具软件,将iso镜像原原本本地刻录到U盘上。不能简单地将ISO文件解压后,复制到U盘里。这样复制出来的光盘是无法启动的。尤其是Linux发行版的ISO镜像文件,在用Windows PE启动的界面下,也是无法安装的。Windows PE的一键安装,也是通常从ISO镜像中,查找gho为后缀名的文件,然后用ghost还原到本地硬盘上。但Linux发行版的ISO镜像文件中,里面就根本没有gho文件,只有实实在在的目录与实实在在的文件名。
但这一切困难,在Linux的任何一个发行版中,在任何一个命令行的shell里面,都只要一个非常简单的命令就可以解决。
首先,我们要习惯Linux中对磁盘及分区的称呼。Linux中,没有C盘D盘E盘的概念,也没有cpu、内存、光盘、U盘、硬盘那么精确的硬件分类,所有硬件都不过是/dev目录下的一个子目录下的一个子目录而已。无论光盘U盘硬盘,通通称为块设备。也就是说,这些东西在读取数据或写入数据时,不是一个字节一个字节读的或写的,而是一块一块读的或写的。
当我们安装完心仪已久的某一个Linux发行版后,突然发现忘记设置一个用来虚拟内存的交换分区了,怎么办?其实非常简单啊,只要在根目录用dd命令生成一个文件,然后在/ETC目录下的配置文件中,把交换分区指向这个文件就行了。
如:
sudo dd if=/dev/zero of=/sw1 bs=1M count=2048
dd命令与cp命令是不同的!
CP是一个字节一个字节去拷贝,dd是一块一块的复制。
当然,当我们把U盘插入电脑以后,你一定要知道,你这个U盘在系统中被称为啥,这通常可以在硬盘管理软件或分区软件上查到。
无非是/dev/sda 或/dev/sdb或/dev/sdc而已,这几个概念都还没有搞清楚,Linux也就没有必要继续玩下去了。
我们把下载下来的ISO镜像文件放在某一个目录下,然后在这个目录下进入命令行。
打入如下命令,就能制作出来与镜像文件完全相同的,一个能启动安装的U盘了,无论是Windows系统还是Linux系统。无需下载或安装任何其它软件。
假设U盘为/dev/sdb
1. 卸载 U 盘(若已挂载,假设挂载点为 /media/usb ):
sudo umount /media/usb 或 sudo umount /dev/sdb* (卸载所有分区)。
2. 执行刻录命令(替换 xxx.iso 为实际 ISO 文件名):
sudo dd if=./xxx.iso of=/dev/sdb bs=4M status=progress
- if=./xxx.iso :指定源文件为当前目录的 ISO 文件;
- of=/dev/sdb :指定目标设备为 U 盘(务必确认是 U 盘路径,勿写 /dev/sda 等硬盘路径);
- bs=4M :设置块大小为 4MB,提升刻录效率;
- status=progress :显示刻录进度(可选,方便查看过程)。
3. 等待命令执行完成(终端返回提示符即结束),之后可安全拔出 U 盘。