如何恢復使用 Ctrl+C 中止的“wodim”DVD 刻錄?
我想將 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 個”,這還不夠準確),但是通過讀取光碟和圖像並找到它們首先不同的位置應該很容易確定.**編輯:**我只是用來與 ISO
cmp
進行比較/dev/sr0
,它說第一個不同的字節是字節 152307713。所以這就是它停止的地方。如果我切斷 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 R@3101059.2x1385=4294967040KB/s W@8.0x1385=11080KB/s Speed Descriptor#1: 01/2295103 R@3101059.2x1385=4294967040KB/s W@2.4x1385=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.
可能您將不得不放棄這種部分寫入的媒體並從新的(空白)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
表示您沒有嘗試 originalcdrecord
,而是同時嘗試了它的非常孤立的 clonewodim
。那裡的選項將是舊的-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
function中被覆蓋,burn_disc_track_lba_nwa()
或者cdrskin
在它的 function 中呼叫它之後Cdrskin_obtain_nwa()
。最後,cdrskin
變數*nwa
需要得到值 74384。在
growisofs
函式中確定 NWA 是plusminus_r_C_parm()
。該變數next_session
需要獲得值 74384。可能必須為程序執行提供額外的選項-use-the-force-luke=seek=74384
並使用選項-Z
而不是-M
.另一個潛在的問題是這樣的黑客攻擊後的程序仍然可以發出 SCSI 命令
RESERVE TRACK
。必須防止這種情況。似乎
growisofs
只將命令發送到 DVD-R、DVD-R DL 和未格式化的 DVD-RW。如果它的選項存在,cdrskin
將不會發送它。-tao
不得不擔心這個草圖還不夠充分,而且實驗破壞了部分寫入的 DVD+R 無法修復。儘管如此,如果你想敢的話,起點是獲取
dvd+rw-tools
(forgrowisofs
) 或 statically linked的原始碼cdrskin
。然後我們可以開始通過郵件討論哪些程式碼更改將在第一次也是唯一一次嘗試中提供最大的成功機會。然後將在此處報告結果。(以防不明顯:我是 and 的開發者
libburn
。cdrskin
)