日期:2014-05-16  浏览次数:20727 次

细数Linux下制作U盘系统启动盘的方法!

        我们都知道 Windows 下我们可以使用 UltraISO(中文版叫软碟通)制作U盘系统启动盘,使用方法可能N多人都会,但是本文主要想简单介绍下 Linux 制作U盘启动盘的方法,所以不赘述了,如果有不会的请百度/谷歌去,但是如果你仔细看了本文,估计以后你也不想用 UltraISO 来制作,因为 Linux 下可以一条命令完成的为什么要切换到Windows下然后安装专门的软件呢?(而且还要想办法破解 UltraISO)


1、cat

我们都知道这只 “” 在Linux下可是相当有名,而且使用频率也很高,那么你知道可以使用它来制作U盘启动盘么?其实我上面说了,只需要一条命令……

                root@Raring-Ringtail:/home/dslab# cat ubuntu-13.10-desktop-i386.iso >/dev/sdb1

使用方法很简单:cat  镜像目录 > 设备(可以使用fdisk -l 查看)。

注意:后面重定向的是设备而不是设备挂载后的目录,还有就是,使用 root 权限运行。


2、dd

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&nbs