資料包寫入

快速入門

  • 在塊裝置部分選擇資料包支援,並在檔案系統部分選擇 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 介面的描述,請檢視檔案