细数Linux下制作U盘系统启动盘的方法!
我们都知道 Windows 下我们可以使用 UltraISO(中文版叫软碟通)制作U盘系统启动盘,使用方法可能N多人都会,但是本文主要想简单介绍下 Linux 制作U盘启动盘的方法,所以不赘述了,如果有不会的请百度/谷歌去,但是如果你仔细看了本文,估计以后你也不想用 UltraISO 来制作,因为Linux 下可以一条命令完成的为什么要切换到Windows下然后安装专门的软件呢?(而且还要想办法破解 UltraISO)
我们都知道这只 “猫” 在Linux下可是相当有名,而且使用频率也很高,那么你知道可以使用它来制作U盘启动盘么?其实我上面说了,只需要一条命令……
root@Raring-Ringtail:/home/dslab#cat ubuntu-13.10-desktop-i386.iso >/dev/sdb1
使用方法很简单:cat 镜像目录 > 设备(可以使用fdisk -l 查看)。
注意:后面重定向的是设备而不是设备挂载后的目录,还有就是,使用 root 权限运行。
dd 命令可能很多人不熟悉(至少没有 cat 熟悉),甚至有些新手可能都没听过,那么我在这简单介绍下 dd 的用法:
功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。可以用该命令实现DOS下的diskcopy命令的作用。先用dd命令把软盘上的数据写成硬盘的一个寄存文件,再把这个寄存文件写入第二张软盘上,完成diskcopy的功能。需要注意的是,应该将硬盘上的寄存文件用rm命令删除掉。系统默认使用标准输入文件和标准输出文件。
语法:dd [选项] (最好自己看一下 dd 的 manpage)
if =输入文件(或设备名称)。
of =输出文件(或设备名称)。
ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。
skip = blocks 跳过读入缓冲区开头的ibs*blocks块。
obs = bytes 一次写入bytes字节,即写入缓冲区的字节数。
bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。
cbs = byte 一次转换bytes字节。
count=blocks 只拷贝输入的blocks块。
conv = ASCII 把EBCDIC码转换为ASCIl码。
conv = ebcdic 把ASCIl码转换为EBCDIC码。
conv = ibm 把ASCIl码转换为alternate EBCDIC码。
conv = block 把变动位转换成固定字符。
conv = ublock 把固定位转换成变动位。
conv = ucase 把字母由小写转换为大写。
conv = lcase 把字母由大写转换为小写。
conv = notrunc 不截短输出文件。
conv = swab 交换每一对输入字节。
conv = noerror 出错时不停止处理。
conv = sync 把每个输入记录的大小都调到ibs的大小(用NUL填充)。
那么,我们可以看到 dd 主要的功能就是拷贝文件,并且在拷贝时可以格式转换,所以 dd 也是平时使用比较多的进行制作 U 盘(或者 cdrom)的工具。我看道网上说甚至可以使用 dd 将 CD 上的文件拷贝到本地并放在一个镜像中(我们可以使用这个来实现将 CD/DVD上的系统拷贝到本地作为镜像文件)。
使用 dd 制作 U 盘启动盘:dd if=ubuntu-13.10-desktop-i386.iso of=/dev/sdb1 bs=4M(我们可以看到,使用 dd 只是和使用 cat 带入参数方法不一样,镜像目录使用 if= 来指定,U盘设备的地址使用 of= 来指定,最后的 bs=4M 上面也可以看到是指定一次写入字节数)
使用 dd 制作 CD/DVD 系统盘:dd if=ubuntu-13.10-desktop-i386.iso of=/dev/cdrom bs=4M
使用 dd 制作镜像: dd if=/dev/cdrom of=/home/username/cd.iso bs=4M
注:1、 bs 带的参数是一次写入字节数,可以自己替换更高的数来得到更高的速度,但是真正使用时,速度的上限还是限于硬件的读写速度(比如说,USB2.0 的U盘,你带入参数 bs=16M,但是真正得到的读写速度仍然是3M~4M的样子)
2、 使用 root 权限运行