表 1. IDE/ATAPI 设备名名称 设备 hda IDE 总线/连接器 0 主设备 hdb IDE 总线/连接器 0 从属设备 hdc IDE 总线/连接器 1 主设备 hdd IDE 总线/连接器 1 从属设备 要找到系统上的驱动器,请输入: $ dmesg | grep '^hd.:' hda: IBM-DTLA-305020, ATA DISK drive hdb: TOSHIBA DVD-ROM SD-M1202, ATAPI CD/DVD-ROM drive hdc: LITE-ON LTR-24102B, ATAPI CD/DVD-ROM drive hda: 40188960 sectors (20577 MB) w/380KiB Cache, CHS=2501/255/63, UDMA(66) 大多数现代 Linux 都包含了已编译进内核的 SCSI 仿真: $ locate ide-scsi.o /lib/modules/2.4.19/kernel/drivers/scsi/ide-scsi.o 如果您的系统不是这样的,那么您就必须将它编译到您的内核中。对于这篇篇幅有限的文章来说,那是一个过大的主题,因此请参阅参考资料(当您知道如何做时,您会发现它并不难)。 您需要编辑两个文本文件来配置系统,让它使用 ide-scsi 驱动程序。第一个是 /etc/modules.conf(在 Debian 中是 /etc/modules)。我的系统有一个 CD-ROM 和一个 CD-R/RW 驱动器,设备分别是 hdb 和 hdc。使用适合于您系统的值,将这两行添加到 /etc/modules.conf(或 /etc/modules): ide-cd ignore=\"hdb hdc\" ide-scsi 缺省情况下,IDE 子系统将所有的 ATA 设备声明为它自己的设备,因此 ignore 这一行使得 SCSI 子系统既能抓取 CD-R/RW 也能抓取 CD-ROM。 接下来,为您的引导装载程序(GRUB 或 LILO)编辑配置文件。对于 LILO 用户,请将下面两行添加到 lilo.conf 的末尾: append="hdb=ide-scsi" append="hdc=ide-scsi" 对于 GRUB 用户,请将下面这行添加到 /etc/grub.conf(或者 Debian 中的 /boot/grub/menu.lst)中 kernel 这行的末尾: hdb=scsi hdc=scsi 现在重新引导,并验证它是否已装入: $ lsmod 这条命令将返回一个长列表;请查找 ide-scsi。 创建 .iso 文件 一旦选择了您想复制的档,对 CD 进行刻录就只有两步:用 mkisofs 创建 .iso,然后用 cdrecord 将这些档刻录进盘中。使用以下命令来创建 .iso 文件: $ mkisofs -o test.iso -Jrv -V test_disk /home/carla/ 在上面的示例中: -o 为新的 .iso 映像档命名(test.iso) -J 为了与 Windows 兼容而使用 Joliet 命名记录 -r 为了与 UNIX/Linux 兼容而使用 Rock Ridge 命名约定,它使所有档都公共可读 -v 设置详细模式,以便在创建映像时获得运行注释 -V 提供了卷标识(test_disk);该标识就是出现在 Windows 资源管理器中的盘名 列表中的最后一项是选择要打包到 .iso 中的文件(都在 /home/carla/ 中) 现在,挂装 .iso 来进行验证;我喜欢创建一个测试目录: $ mkdir /test_iso $ mount -t iso9660 -o ro,loop=/dev/loop0 test.iso /test_iso 查看目录的内容;所有的档都应该在那里,并且都可读。否则,就是映像坏掉了,如果您将它刻录到盘上,那么您最终将得到一个刻录失败的光盘。 刻录盘 将映像写到盘中再简单不过了。首先,找到 CD-R/RW 的 SCSI 地址: $ cdrecord -scanbus Cdrecord 1.10 (i686-pc-linux-gnu) Copyright (C) 1995-2001 Jrg Schilling Linux sg driver version: 3.1.24 Using libscg version 'schily-0.5' scsibus0: 0,0,0 0) 'TOSHIBA ' 'DVD-ROM SD-M1202' '1020' Removable CD-ROM 0,1,0 1) 'LITE-ON ' 'LTR-24102B ' '5S54' Removable CD-ROM 0,2,0 2) * 0,3,0 3) * 0,4,0 4) * 0,5,0 5) * 0,6,0 6) * 0,7,0 7) * 每一项的前三个数字分别指 SCSI 总线、设备标识和 LUN(逻辑单元号,Logical Unit Number)。(第四个数字也是设备标识。)cdrecord 需要这三个数字。在上面的示例中,CD 刻录机是 0,1,0。SCSI 总线 0 上的设备都可以缩写为 1,0,即省去头一个 0。这是一个公共约定。如果有其它总线的话,则必须指定 — 没有快捷方式。 现在向盘中写内容: $ cdrecord -v -eject speed=8 dev=0,1,0 test.iso 在上面的示例中: -v 指详细方式 -eject 在完成写任务后弹出盘 -speed 指定写速度(8) -dev 是从 cdrecord -scanbus 获得的设备号(0,1,0) 最后一个是所刻录的映像的名称(test.iso) 对于创建用于公用分发的盘,这是一种简单且可用的方法,因为它创建了可以在任何 Windows 或 Linux 系统上读取的盘。mkisofs 本身就非常适合于创建供下载的 .iso,而且 mkisofs 可以为许多平台创建文件系统。请参阅 mkisofs 联机帮助页以获取更多信息。 |