Iso

如何恢復使用 Ctrl+C 中止的“wodim”DVD 刻錄?

  • October 4, 2016

我想將 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進行比較/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。使用growisofscdrskinxorrecordcdrecord

帶有 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表示您沒有嘗試 original cdrecord ,而是同時嘗試了它的非常孤立的 clone wodim。那裡的選項將是舊的-toc而不是-minfo. 輸出更難解釋。不管怎樣, 的輸出dvd+rw-mediainfo最詳細地講述了這個故事。

wodim保留軌道號 1,大小為 2138864 個塊 =~ 4177 MiB。從塊 74384 =~ 145 MiB 開始,這條軌道仍然是可寫的。

但是現有軌道的這種可寫性是 DVD+R(也許是 BD-R)的一個特殊功能,它不適合刻錄程序的使用模型。所以他們寧願嘗試使用剩餘的未保留軌道號 2,它從塊 2138880 開始。如果他們完全接受這個中等狀態。

至少cdrskinxorriso宣布他們將嘗試通過他們的陳述Next writable address:Media nwa. growisofs原始碼看起來會做出同樣的選擇。關於(原創)cdrecord我只能猜測。

當然,將剩餘的 ISO 寫入磁軌 2 的嘗試將失敗,因為它只有 300 MB 可用空間。(無論如何,這會造成無法讀取的扇區的巨大差距。)


刻錄程序可能要做的事情:

它主要是關於從現有軌道而不是從下一個軌道來確定下一個可寫地址。

這可以在libburnfunction中被覆蓋,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(for growisofs) 或 statically linked的原始碼cdrskin。然後我們可以開始通過郵件討論哪些程式碼更改將在第一次也是唯一一次嘗試中提供最大的成功機會。然後將在此處報告結果。

(以防不明顯:我是 and 的開發者libburncdrskin

引用自:https://unix.stackexchange.com/questions/313840