• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 在Linux上燒錄CD

    發表于:2007-05-26來源:作者:點擊數: 標簽:
    Linux 為創建 CD 提供了功能強大且靈活的工具。您可以創建在幾乎任何平臺上都可讀的盤,還可以創建 .iso 文件以供下載和分發。 在任何平臺上從命令行燒錄 CD 都是一件令人費解且煩躁的事情,Linux 當然也不例外。不過,由于在各平臺上所用到的命令和術語都十
    Linux 為創建 CD 提供了功能強大且靈活的工具。您可以創建在幾乎任何平臺上都可讀的盤,還可以創建 .iso 文件以供下載和分發。

    在任何平臺上從命令行燒錄 CD 都是一件令人費解且煩躁的事情,Linux 當然也不例外。不過,由于在各平臺上所用到的命令和術語都十分相似,因此學習一下如何在 Linux 上刻錄 CD 還是十分有用的。許多 Linux 軟件都是通過 .iso 映像分發的,因此如果您知道如何燒錄 CD,就可以下載 .iso 來創建您自己的安裝盤。

    Linux 和 Windows 都有可錄 CD 的程序可用,但 Linux 版本比起 Windows 版本來功能更強大通用性也更好。在本文中,我們將研究 Linux CD 刻錄命令中的兩個主力: mkisofscdrecord 。 mkisofs 創建預先錄制的映像,來生成 ISO9660/JOLIET/HFS 混合文件系統。它同時創建和填充文件系統。與其它數據存儲介質(如硬盤驅動器和軟盤驅動器)不同,CD 上的文件系統并不是先創建后填充數據的。CD-R 只有一次機會:首先格式化將會創建一個帶有空文件系統的盤。 cdrecord 命令在 橙皮書(Orange Book)CD-R/RW 上刻錄數據,這差不多就是其全部工作了。

    由于采用了諸如 CD 刻錄之類的新興技術,最好使用這些程序的較新版本。 mkisofscdrecord 的版本都應該至少已經達到了 1.10。 cdrecord 的最新版本 V2.0 已經被重命名為 cdrtools 。要查明機器上所安裝的版本,請輸入:

    $ cdrecord --version

    $ mkisofs --version

    對于那些剛接觸可刻錄 CD 的人而言,在我們繼續之前,有幾樣東西是值得先了解一下的:

    • CD-R:可刻錄 CD(CD-Recordable)。它們是 WORM(寫一次,讀多次,Write Once, Read Many)。
    • CD-RW:可重寫 CD(CD-Rewritable)。它們是 WMRM(寫多次,讀多次,Write Many, Read Many)。
    • CD-R 的使用很廣泛,在任何 CD-ROM 驅動器上都應該可讀。
    • CD-RW 在所有現代驅動器上都應該可讀。驅動器必須是“多格式讀取的(multiread)”,以便能夠讀取 CD-R 和 CD-RW 盤。較老的驅動器會出問題。扔掉那個 4 倍速的舊驅動器,買個新的;用不著發火。
    • 商用 CD 不是用激光燒錄成的,而是壓制而成的。
    • 哪一種 CD-R/RW 驅動器最好呢?隨便請教普通的硬件評論員,讓他們給您一些建議。

    下面是與文件格式有關的一些術語:

    • 黃皮書(Yellow Book):數據 CD 的物理格式
    • 橙皮書:可刻錄 CD 的物理格式:
      • 第一部分:CD-MO(磁-光,Ma.neto-Optical)
      • 第二部分:CD-WO(寫一次,Write-Once;包括 PhotoCD 的“混合”規范)
      • 第三部分:CD-RW(可重寫,Re-writable)
    • ISO-9660:舊的文件布局標準,它只允許 8.3 格式的文件名
    • Rock Ridge:是對 ISO-9660 的擴展,它允許長文件名和 UNIX 樣式的符號鏈接;保留了所有文件屬性,如所有權和許可權。在 Windows 系統上讀盤時,不會顯示 UNIX 文件的屬性。
    • Joliet:Microsoft 對 ISO 9660 文件系統的擴展,它允許在文件名中使用 Unicode 字符,同樣也允許長文件名。為了與 MS-DOS 兼容,它還創建截斷的文件名(這些看起來怪怪的樣子:FILENA~1.TXT)。它允許文件名長達 64 個字符(包括空格),Windows 95 或更高版本以及運行 Joliet 卷訪問(Joliet Volume Aclearcase/" target="_blank" >ccess)擴展的 Macintosh 計算機都可以讀取它。Macs 不會讀取長度超過 31 個字符的 Joliet 文件名。
    • El Torito:可引導 CD-ROM(Bootable CD-ROM)格式規范
    • HFS(分層文件系統,Hierarchical File System):Macintosh 使用的本機文件系統
    • 多段刻錄(Multisession):允許多次添加文件,而不是只允許在單個段中添加文件。要使盤可讀,就必須“關閉”段。但是,這卻導致不能向盤中添加更多文件。多段刻錄將單個段鏈接起來,然后更新盤的目錄,使得它好象一個目錄一樣。
    • CD-UDF(通用盤格式,Universal Disk Format):業界標準遞增包寫文件系統(incremental packet-writing filesystem)

    對 UDF 的一點簡單說明:UDF 意味著能夠直接將文件放入盤。目前,這是在軟件級別上完成的。讀取該盤需要用來創建該盤的軟件。計劃將 UDF 添加到 Linux 內核(可能是 2.6)。要實現這一點,CD 驅動器需要具有 CD-MRW 電路(“CD Mount Rainier ReWrite”;不要問我他們為什么取這么個名字),因此它將是新型驅動器的一項功能。當這一點得到實現時,向 CD-R/RW 中復制文件將和向軟盤中復制文件一樣容易,而且這些盤將普遍可讀。而且,它還被吹捧為古老的 3.5" 軟盤的另一種替代品。我們將拭目以待。(請參閱 參考資料以獲取到更多有關 Mount Rainier 的信息的鏈接。)

    Linux SCSI 仿真冒險

    如果可以的話,請使用 IDE/ATAPI 或 SCSI CD 刻錄機。并口接口是一種會給您添麻煩的棘手玩意兒,而 USB 驅動器則很慢。在 Linux 中它們都得不到很好的支持(雖然對于較新的 USB 2.0 驅動器,您的運氣可能會好一些)。

    IDE/ATAPI 驅動器最為常見,但使用起來卻需要做些調整。那么,如果 cdrecord 顯示沒有配置任何驅動器,會發生什么事情呢?要想檢查是否配置有驅動器,請輸入以下命令:

    $ cdrecord -scanbus

    如果命令顯示了 CD-RW 驅動器(請參閱后面的 燒錄盤),那么您可以跳過這一節的大部分,盡管您可能還是都想瀏覽一下這些內容,以便有所了解。

    Linux 使用 SCSI 仿真子系統,因此 IDE/ATAPI CD 刻錄機需要兼容性驅動程序。如果同一臺 PC 上既有 CD-ROM 也有 CD-R/RW,那么二者都需要 ide-scsi 偽設備驅動程序來支持盤的復制。在 CD-ROM 上使用 SCSI 仿真沒有什么不利之處;它同樣能工作;只是名稱會改變。驅動器的名稱將會隨 Linux 的具體分發版而有所不同,其名稱可以是 /dev/cdrom0、/dev/hdc 或 /dev/scd0(要獲得 IDE/ATAPI 設備名列表,請參閱表 1)。

    表 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 聯機幫助頁以獲取更多信息。

    在一臺運行速度極快且內存很大的機器上,您可以在刻錄期間從容地處理非 CPU 密集型任務,但是在燒錄盤期間最好別做別的事情。激光器不能先停下來,然后從停下來的地方重新開始,所以任何中斷都是致命的。

    cdrecord 將試圖以最快速度運行刻錄機,因此不必指定速度,但是,應該根據經驗來判斷如何做。指定較慢的速度對于糾正錯誤和緩沖區欠載運行很有用。采用“burn- proof”技術的新型驅動器(開發這項技術的初衷與它現在的名字正好相反;同樣,誰取的這些名稱呢?)不會有老式驅動器那樣的緩沖區欠載運行煩惱。

    復制盤

    要直接將內容從源盤復制到可刻錄盤,請使用下面的命令:

    $ cdrecord -v dev=0,1,0 speed=4 -isosize /dev/scd0

    這條命令直接將 CD-ROM 即 /dev/scd0 的內容“流”入 CD 刻錄機 dev=0,1,0。不要在速度慢的舊機器上這么做。直接復制速度很快,但卻更容易出錯。更好的做法是:先將源盤的內容復制到硬盤驅動器,再從硬盤驅動器復制到 CD 刻錄機:

    $ mount /cdrom
    $ dd if=/dev/scd0 of=/tmp/diskfile.iso
    $ cdrecord dev=0,1,0 speed=8 fs=8m -v -eject -dummy /tmp/diskfile.iso

    請注意兩個新選項 fs=8m-dummy 。 fs=8m 定義了環形緩沖區的大?。涸谝欢ǔ潭壬?,越大越好。記住,中斷是致命的;如果什么東西讓數據傳送慢下來了,那么 fs=8m 將創建一個足夠大的緩沖區來讓刻錄機保持運行。如果 8 MB 還不夠,那么您可能需要一臺更好的 PC。另一方面,超過 8 MB 也不一定更好,因為操作系統重新裝入 MMU(內存管理單元,Memory Management Unit)表時會浪費時間。缺省值是 4 MB。

    -dummy 是一個了不起的選項,可以用它來先進行一次“排練”,然后在實際的盤上冒險??啼洐C執行一切操作,但是不打開激光頭,這使用戶有機會在將內容提交到盤上之前捕獲錯誤。

    多段刻錄

    CD 由段構建而成,而段由磁道構成。只有一個段的盤上有一個導入點、一個 TOC(目錄,table of content)、數據和一個導出點,導出點標記著這張盤的終點,并阻止在這張盤上進行進一步的刻錄。 mkisofs 將單獨段鏈接在一起。用 GUI 程序(如 X-CD-Roast 或 KonCD)創建多段刻錄盤可能要更容易一些,但這里演示的是如何用命令行工具完成這一任務。

    第一次在盤上刻錄一個段時,請在 cdrecord 中使用 -multi 開關:

    $ cdrecord -v -eject speed=8 dev=0,1,0 -multi test.iso

    盤將會以某種方式被固定下來,使得盤可讀,也可以添加更多數據。要向這張盤中添加更多段, mkisofs 需要知道起始扇區號和結束扇區號,可以象下面這樣來找到這些號碼:

    $ cdrecord dev=0,1,0 -msinfo
    0,27139

    確保把要添加數據的盤放入了 CD 刻錄機。然后,添加兩個新開關 -C-M

    $ mkisofs -o test2.iso -Jr -V Session2 -C 0,27139 -M 0,1,0 /files/path/

    或者更好的辦法是,讓命令 shell 完成這項工作:

    $ mkisofs -o test2.iso -Jr -V Session2 -C `cdrecord dev=0,1,0 -msinfo` -M 0,1,0 /files/path/

    多段刻錄 CD 驅動器讀取已寫入的最后一個段。上面的命令從最后一個段獲取 TOC,然后將它組合進新 TOC 中。在刻錄盤上的最后一個段時,請省略 -multi 選項。

    結束語

    Linux 中的 CD 刻錄功能強大且全面。CD 刻錄機可以跨越網絡共享,還可用于自動備份; mkisofscdrecord 也能用于 DVD。雖然有許多優秀的圖形前端程序,但是完整的功能在命令行程序上。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>