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그것이 제안하는 옵션이 처음부터 새로운 트랙을 굽는 데 사용된다고 생각하는데, 이는 내가 원하는 것이 아닙니다. 이 디스크에서 부팅해야 하므로 원하는 파일에 액세스할 수 있다는 것뿐만 아니라 데이터의 실제 구조도 중요합니다. 디스크가 낭비되지 않도록 중단된 부분부터 끝내려면 어떻게 해야 합니까? 중단된 위치에 대한 정확한 표시는 없지만(단지 "4177MB 중 145MB 기록"으로 충분하지 않음) 디스크와 이미지를 읽고 처음 다른 부분을 찾아보면 쉽게 확인할 수 있습니다. .

편집하다:방금 ISO와 cmp비교 했는데 첫 번째 다른 바이트가 바이트 152307713이라고 나와 있었습니다. 그래서 그것이 중단된 부분입니다. /dev/sr0ISO의 시작 부분을 잘라 해당 바이트에서 시작하도록 한 다음 동일한 명령을 사용하여 해당 파일을 디스크에 구우면 작동합니까? 아니면 트랙 경계나 그 사이에 문제를 일으킬 만한 것이 있습니까?

편집 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의 완벽한 사본을 생성하지는 않습니다.

추가 의견 및 정보:

wodimDVD에는 정말 적합하지 않습니다. growisofs, cdrskin, xorrecord또는 을 사용합니다 cdrecord.

DVD+R 미디어가 포함된 드라이브는 시뮬레이션된 쓰기를 제공하지 않습니다. wodim옵션을 사용하여 실행했을 때 무엇을 했는지 -dummy는 CD-R[W], DVD-R 또는 포맷되지 않은 DVD-RW에서 보는 것과 동일하지 않았습니다. 실제 굽기 시작을 wodimDVD+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: -minfocdrecord 이는 원본을 시도하지 않고 그 동안 매우 고아가 된 복제품을 시도했음을 나타냅니다 wodim. 옵션 -toc-minfo. 출력을 해석하기가 더 어렵습니다. 어쨌든 의 출력은 dvd+rw-mediainfo이야기를 가장 자세하게 전달합니다.

wodim2138864 블록 = ~ 4177MiB 크기의 예약된 트랙 번호 1. 이 트랙은 블록 74384 =~ 145MiB부터 계속 쓸 수 있습니다.

그러나 기존 트랙에 대한 쓰기 가능성은 DVD+R(또는 BD-R)의 특수 기능으로 굽기 프로그램의 사용 모델에 잘 맞지 않습니다. 따라서 그들은 오히려 블록 2138880에서 시작하는 예약되지 않은 나머지 트랙 번호 2를 사용하려고 시도할 것입니다. 만약 그들이 이 중간 상태를 전혀 수용한다면.

적어도 거기에 cdrskin그들의 xorriso진술 Next writable address:Media nwa. growisofs소스 코드도 같은 선택을 할 것 같습니다. (원본)에 대해서는 cdrecord추측만 할 수 있습니다.

물론 남은 ISO를 트랙 2에 쓰기 시도하면 여유 공간이 300MB만 있으므로 실패합니다. (어차피 읽을 수 없는 섹터에 엄청난 공백이 생길 수 있습니다.)


화상 프로그램이 수행해야 할 작업:

주로 다음 트랙이 아닌 기존 트랙에서 다음 쓰기 가능 주소를 결정하는 것입니다.

이는 libburn함수 에서 재정의되거나 함수에서 호출된 burn_disc_track_lba_nwa() 후에 재정의될 수 있습니다 . 결국 변수는 74384 값을 얻어야 합니다.cdrskinCdrskin_obtain_nwa()cdrskin*nwa

growisofsNWA를 결정하는 함수는 입니다 plusminus_r_C_parm(). 변수는 값 74384를 얻어야 합니다. 아마도 프로그램 실행에 추가 옵션 next_session을 제공하고 .-use-the-force-luke=seek=74384-Z-M

또 다른 잠재적인 문제는 그러한 해킹 후에도 프로그램이 여전히 SCSI 명령을 실행할 수 있다는 것입니다 RESERVE TRACK. 이를 방지해야 합니다.

growisofsDVD-R, DVD-R DL, 포맷되지 않은 DVD-RW에만 명령을 보내는 것 같습니다 . cdrskin해당 옵션이 있으면 보내지 않습니다 -tao.

이 스케치만으로는 충분하지 않으며 실험으로 인해 부분적으로 작성된 DVD+R이 복구할 수 없을 정도로 망가질 수 있다는 점을 두려워해야 합니다. 그럼에도 불구하고 도전하고 싶다면 소스 코드를 얻는 것이 출발점일 것입니다.dvd+rw-tools(의 경우 growisofs) 또는 정적으로 링크됨cdrskin. 그런 다음 어떤 코드 변경이 첫 번째이자 유일한 시도에서 성공할 수 있는 가장 좋은 기회를 제공하는지 메일로 논의하기 시작할 수 있습니다. 그 결과는 여기에 보고됩니다.

(명확하지 않은 경우: 나는 libburn및 의 개발자입니다 cdrskin.)

관련 정보