如何恢復使用 Ctrl+C 中止的「wodim」DVD 燒錄?

如何恢復使用 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 個”,這還不夠準確),但通過讀取光盤和圖像並找到它們首先不同的位置應該很容易確定。

編輯:我只是用來與 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。使用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表明您沒有嘗試原始cdrecord ,而是同時嘗試了相當孤立的克隆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 nwagrowisofs原始碼看起來也會做出同樣的選擇。關於(原文)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。)

相關內容