• <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-5-26 11:30 | 作者: Carla Schroder | 來源: IBM | 查看: 29次 | 進入軟件測試論壇討論

    領測軟件測試網
    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 Access)擴展的 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/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品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>