我想將 ISO 燒錄到 DVD+R。我決定先進行一次虛擬寫入(雷射關閉,因此基本上是一次空運行),因為我以前從未使用過該命令,並且我想確保我做得正確。我這樣做了wodim -v dev=/dev/sr0 speed=4 -dummy -eject path/to.iso
,看起來它工作正常。我不想等待它完成假裝刻錄大光碟映像的操作,因此我按 Ctrl+C 並輸入相同的命令,但沒有-dummy
真正開始刻錄。
wodim: WARNING: Data may not fit on current disk.
wodim: Notice: Most recorders cannot write CD's >= 90 minutes.
wodim: Notice: Use -ignsize option to allow >= 90 minutes.
wodim: Notice: Use -overburn option to write more than the official disk capacity.
wodim: Notice: Most CD-writers do overburning only on SAO or RAW mode.
我把光碟拿出來,看了一下底部,發現有一個深淺不一的細環,說明光碟上已經刻錄了少量的資料。我只能得出結論,由於某種原因,該-dummy
選項不起作用,而且它正在真實地刻錄圖像,至少在我中止它之前是這樣。
我認為它-overburn
建議的選項用於從頭開始刻錄新曲目,這不是我想要的。我需要從這張光碟啟動,因此資料的實際結構很重要,而不僅僅是我想要的檔案是否可存取。如何讓它從上次停止的地方結束,以免光碟浪費?我沒有看到任何關於它停止位置的確切指示(只是“寫入了 4177 MB 中的 145 個”,這還不夠準確),但通過讀取光盤和圖像並找到它們首先不同的位置應該很容易確定。
編輯:我只是用來與 ISOcmp
進行比較,它說第一個不同的位元組是位元組 152307713。 所以這就是它停止的地方。/dev/sr0
如果我切斷 ISO 的開頭,使其從該位元組開始,然後使用相同的命令將該檔案刻錄到光碟上,這會起作用嗎?或者是否存在軌道邊界或中間的某些東西會導致問題?
編輯2:以下是 Thomas Schmitt 建議的命令的輸出:
$ dvd+rw-mediainfo /dev/sr0
INQUIRY: [MATSHITA][DVD+-RW UJ8C7 ][1.00]
GET [CURRENT] CONFIGURATION:
Mounted Media: 1Bh, DVD+R
Media ID: CMC MAG/M01
Current Write Speed: 8.0x1385=11080KB/s
Write Speed #0: 8.0x1385=11080KB/s
Write Speed #1: 2.4x1385=3324KB/s
Speed Descriptor#0: 01/2295103 [email protected]=4294967040KB/s [email protected]=11080KB/s
Speed Descriptor#1: 01/2295103 [email protected]=4294967040KB/s [email protected]=3324KB/s
READ DVD STRUCTURE[#0h]:
Media Book Type: 00h, DVD-ROM book [revision 0]
Legacy lead-out at: 2295104*2KB=4700372992
READ DISC INFORMATION:
Disc status: appendable
Number of Sessions: 1
State of Last Session: incomplete
"Next" Track: 1
Number of Tracks: 2
READ TRACK INFORMATION[#1]:
Track State: partial/complete
Track Start Address: 0*2KB
Next Writable Address: 74384*2KB
Free Blocks: 2064480*2KB
Track Size: 2138864*2KB
READ TRACK INFORMATION[#2]:
Track State: blank
Track Start Address: 2138880*2KB
Next Writable Address: 2138880*2KB
Free Blocks: 156224*2KB
Track Size: 156224*2KB
ROM Compatibility LBA: 265696
READ CAPACITY: 0*2048=0
$ cdrskin -v dev=/dev/sr0 -minfo
cdrskin 1.4.2 : limited cdrecord compatibility wrapper for libburn
cdrskin: verbosity level : 1
cdrskin: NOTE : greying out all drives besides given dev='/dev/sr0'
cdrskin: scanning for devices ...
cdrskin: ... scanning for devices done
cdrskin: pseudo-atip on drive 0
cdrskin: status 3 BURN_DISC_APPENDABLE "There is an incomplete disc in the drive"
scsidev: '/dev/sr0'
Device type : Removable CD-ROM
Vendor_info : 'MATSHITA'
Identifikation : 'DVD+-RW UJ8C7'
Revision : '1.00'
Drive id : 'WQ36 064543'
Driver flags : BURNFREE
Supported modes: TAO SAO
cdrskin: burn_drive_get_write_speed = 11080 (8.0x)
Current: DVD+R
Profile: 0x0012 (DVD-RAM)
Profile: 0x002B (DVD+R/DL)
Profile: 0x001B (DVD+R) (current)
Profile: 0x001A (DVD+RW)
Profile: 0x0013 (DVD-RW restricted overwrite)
Profile: 0x0014 (DVD-RW sequential recording)
Profile: 0x0016 (DVD-R/DL layer jump recording)
Profile: 0x0015 (DVD-R/DL sequential recording)
Profile: 0x0011 (DVD-R sequential recording)
Profile: 0x0010 (DVD-ROM)
Profile: 0x000A (CD-RW)
Profile: 0x0009 (CD-R)
Profile: 0x0008 (CD-ROM)
Profile: 0x0002 (Removable disk)
book type: DVD+R (emulated booktype)
Product Id: CMC_MAG/M01/48
Producer: CMC Magnetics Corporation
Manufacturer: 'CMC MAG'
Media type: 'M01'
Mounted media class: DVD
Mounted media type: DVD+R
Disk Is not erasable
disk status: incomplete/appendable
session status: empty
first track: 1
number of sessions: 1
first track in last sess: 1
last track in last sess: 2
Disk Is unrestricted
Disk type: DVD, HD-DVD or BD
Track Sess Type Start Addr End Addr Size
==============================================
1 1 Apdbl 0 2138863 2138864
2 1 Blank 2138880 2295103 156224
Next writable address: 2138880
Remaining writable size: 156224
Warning: Incomplete session encountered !
$ xorriso -outdev /dev/sr0 -toc
xorriso 1.4.2 : RockRidge filesystem manipulator, libburnia project.
Drive current: -outdev '/dev/sr0'
Media current: DVD+R
Media status : is written , is appendable
Media summary: 1 session, 2295104 data blocks, 4483m data, 305m free
xorriso : WARNING : Incomplete session encountered !
Drive current: -outdev '/dev/sr0'
Drive type : vendor 'MATSHITA' product 'DVD+-RW UJ8C7' revision '1.00'
Drive id : 'WQ36 064543'
Media current: DVD+R
Media product: CMC_MAG/M01/48 , CMC Magnetics Corporation
Media status : is written , is appendable
Media blocks : 1 readable , 156224 writable , 2295104 overall
TOC layout : Idx , sbsector , Size , Volume Id
Incmp session: 1 , 0 , 0s ,
Media summary: 1 session, 2295104 data blocks, 4483m data, 305m free
Media nwa : 2138880s
xorriso : WARNING : Incomplete session encountered !
$ cdrecord -v dev=/dev/sr0 -minfo
wodim: Bad Option: -minfo.
Usage: wodim [options] track1...trackn
Use wodim -help
to get a list of valid options.
Use wodim blank=help
to get a list of valid blanking options.
Use wodim dev=b,t,l driveropts=help -checkdrive
to get a list of drive specific options.
Use wodim dev=help
to get a list of possible SCSI transport specifiers.
答案1
也許您將不得不放棄這種部分寫入的媒體並開始使用新的(空白)DVD。
理論上,在未完全寫入的 DVD+R 軌道上恢復寫入運行並非不可能。但我不知道有任何刻錄程式可以做到這一點。不過,我可能是錯的。因此,只要嘗試讓刻錄程式在該媒體上運行會發生什麼。
我預計刻錄程式要么會抱怨開放軌道併中止,要么會嘗試在 DVD 上尚未聲明的區域中開始新軌道。兩者都不會在 DVD 上產生完美的 ISO 副本。
進一步的意見和資訊:
wodim
不太適合 DVD。使用growisofs
、cdrskin
、
xorrecord
或cdrecord
。
裝有 DVD+R 媒體的磁碟機不提供類比寫入功能。無論wodim
您使用 option 運行它時做了什麼-dummy
,它都與您在 CD-R[W]、DVD-R 或未格式化的 DVD-RW 中看到的不同。以真正刻錄的開始為標誌,wodim
不知道 DVD+R、DVD+RW、DVD-RAM、格式化 DVD-RW 或 BD 媒體。 (對於 DVD-R 和未格式化的 DVD-RW 可能就足夠了,因為它們的行為與 CD-R 非常相似。)
您可以透過以下命令之一檢查 DVD+R 的當前狀態:
dvd+rw-mediainfo /dev/sr0
cdrskin -v dev=/dev/sr0 -minfo
xorriso -outdev /dev/sr0 -toc
cdrecord -v dev=/dev/sr0 -minfo
問題中「編輯2」後更新:
wodim: Bad Option: -minfo
表明您沒有嘗試原始cdrecord
,而是同時嘗試了相當孤立的克隆wodim
。那裡的選項將是較舊的-toc
而不是-minfo
。輸出更難解釋。不管怎樣,輸出dvd+rw-mediainfo
最詳細地講述了故事。
wodim
保留磁軌號 1,大小為 2138864 塊 =~ 4177 MiB。該軌道從塊 74384 =~ 145 MiB 開始仍然可寫入。
但現有軌道的這種可寫性是 DVD+R(也可能是 BD-R)的一個特殊功能,它不太適合刻錄程式的使用模型。因此,他們寧願嘗試使用剩餘的未保留軌道號 2,該軌道號從區塊 2138880 開始。
至少cdrskin
並xorriso
宣布他們將嘗試在那裡寫下他們的聲明Next writable address:
和Media nwa
。
growisofs
原始碼看起來也會做出同樣的選擇。關於(原文)cdrecord
我只能猜測。
當然,嘗試將剩餘 ISO 寫入磁軌 2 將會失敗,因為它只有 300 MB 可用空間。 (無論如何,這都會造成一個巨大的不可讀扇區間隙。)
刻錄程式可能需要做什麼:
它主要是從現有軌道而不是從下一個即將到來的軌道確定下一個可寫入位址。
這可以在libburn
函數中burn_disc_track_lba_nwa()
或cdrskin
在其函數中調用它之後被覆蓋Cdrskin_obtain_nwa()
。最後,cdrskin
變數*nwa
需要獲得值 74384。
在growisofs
函數中確定NWA為plusminus_r_C_parm()
。此變數next_session
需要取得
-use-the-force-luke=seek=74384
值74384 -Z
。-M
另一個潛在的問題是,此類駭客攻擊後的程式仍然可以發出 SCSI 命令RESERVE TRACK
。必須防止這種情況發生。
似乎growisofs
僅向 DVD-R、DVD-R DL 和未格式化的 DVD-RW 發送命令。如果存在cdrskin
選項,則不會發送它。-tao
必須擔心的是,這個草圖還不夠充分,實驗會損壞部分寫入的 DVD+R,無法修復。如果你想挑戰的話,第一步就是取得原始碼dvd+rw-tools
(對於growisofs
) 或靜態連結的cdrskin
。然後我們可以開始透過電子郵件討論哪些程式碼變更將在第一次也是唯一一次嘗試中提供成功的最佳機會。結果將在這裡報告。
(如果不明顯:我是libburn
和的開發者cdrskin
。)