数据包写入¶
快速入门¶
在块设备部分选择数据包支持,并在文件系统部分选择 UDF 支持。
编译并安装内核及模块,然后重启。
你需要 udftools 软件包 (pktsetup, mkudffs, cdrwtool)。从此处下载:https://github.com/pali/udftools
准备一张新的 CD-RW 光盘并格式化它(假设 CD-RW 为 hdc,请酌情替换)
# cdrwtool -d /dev/hdc -q
设置你的刻录机
# pktsetup dev_name /dev/hdc
现在你可以挂载 /dev/pktcdvd/dev_name 并向其复制文件。尽情享受吧
# mount /dev/pktcdvd/dev_name /cdrom -t udf -o rw,noatime
DVD-RW 媒体的数据包写入¶
如果 DVD-RW 光盘处于所谓的“受限覆盖”模式,它们就可以像 CD-RW 光盘一样进行写入。要将光盘置于受限覆盖模式,请运行
# dvd+rw-format /dev/hdc
然后你就可以像使用 CD-RW 光盘一样使用该光盘了
# pktsetup dev_name /dev/hdc
# mount /dev/pktcdvd/dev_name /cdrom -t udf -o rw,noatime
DVD+RW 媒体的数据包写入¶
根据 DVD+RW 规范,支持 DVD+RW 光盘的驱动器应实现“2KB 粒度的真随机写入”,这意味着可以在此类光盘上放置任何块大小 >= 2KB 的文件系统。例如,应该可以进行
# dvd+rw-format /dev/hdc (only needed if the disc has never
been formatted)
# mkudffs /dev/hdc
# mount /dev/hdc /cdrom -t udf -o rw,noatime
然而,有些驱动器不遵循规范,并期望主机在 32KB 边界上执行对齐写入。其他驱动器确实遵循规范,但如果写入未对齐 32KB,则会遇到严重的性能问题。
这两个问题都可以通过使用 pktcdvd 驱动程序来解决,该驱动程序始终生成对齐写入
# dvd+rw-format /dev/hdc
# pktsetup dev_name /dev/hdc
# mkudffs /dev/pktcdvd/dev_name
# mount /dev/pktcdvd/dev_name /cdrom -t udf -o rw,noatime
DVD-RAM 媒体的数据包写入¶
DVD-RAM 光盘是随机可写入的,因此不需要使用 pktcdvd 驱动程序。然而,使用 pktcdvd 驱动程序可以像对 DVD+RW 媒体那样提高性能。
备注¶
CD-RW 媒体通常不能被覆盖超过约 1000 次,因此为了避免对媒体造成不必要的磨损,你应该始终使用 noatime 挂载选项。
缺陷管理(即坏扇区的自动重映射)尚未实现,因此如果光盘磨损,你很可能会遇到文件系统损坏的情况。
由于 pktcdvd 驱动程序使光盘显示为具有 2KB 块大小的常规块设备,你可以在光盘上放置任何你喜欢的文件系统。例如,运行
# /sbin/mke2fs /dev/pktcdvd/dev_name
以在光盘上创建 ext2 文件系统。
使用 pktcdvd sysfs 接口¶
自 Linux 2.6.20 以来,pktcdvd 模块具有一个 sysfs 接口,并可以通过它进行控制。例如,“pktcdvd”工具使用此接口。(参见 http://tom.ist-im-web.de/linux/software/pktcdvd )
“pktcdvd”的工作方式类似于“pktsetup”,例如:
# pktcdvd -a dev_name /dev/hdc
# mkudffs /dev/pktcdvd/dev_name
# mount -t udf -o rw,noatime /dev/pktcdvd/dev_name /dvdram
# cp files /dvdram
# umount /dvdram
# pktcdvd -r dev_name
有关 sysfs 接口的描述,请查看文件
使用 pktcdvd debugfs 接口¶
要以人类可读的形式读取 pktcdvd 设备信息,请执行
# cat /sys/kernel/debug/pktcdvd/pktcdvd[0-7]/info
有关 debugfs 接口的描述,请查看文件
链接¶
有关 DVD 写入的更多信息,请参见 http://fy.chalmers.se/~appro/linux/DVD+RW/。