레코딩 후 디스크 확인은 실제로 데이터를 확인하기 위해 무엇을합니까?


6

원본 파일과 디스크에 구운 파일을 비교 한 것이지만 실제로 저수준에서 어떻게 수행되는지 아는 사람이 있습니까?

즉, 소스 및 대상 컨텐츠의 해시를 작성한 다음 비교합니까? 그렇다면 레코딩 된 콘텐츠의 해시를 RAM에 저장합니까? 아니면 하드 드라이브의 임시 파일로 저장합니까? 무슨 일이 일어나고 있는지에 대한 로그 파일이 있습니까?

이 기능이 어떻게 작동하는지 정확히 알고 궁금합니다. :) Windows Image Burner를 언급하고 있습니다.


2
그것들은 구현 세부 사항 (결과가 저장되는 특정 해시 알고리즘 등)이므로 특정 응용 프로그램에 대해 이야기하지 않으면 말할 수 없습니다.
Frank Thomas

디스크의 파일을 소스 파일과 비교합니다.
Ramhound

답변:


12

IBurnVerification인터페이스 및 IMAPI_BURN_VERIFICATION_LEVEL열거 형 에 대해서는 Windows API에서이 MSDN 페이지를 확인하십시오 .

데이터 디스크의 경우 빠른 모드에서 전체 디스크를 검사하지 않고 선택한 섹터 만 검사합니다. 그런 다음 API가 새 디스크에 대해 호출 READ_DISC_INFO하고 READ_TRACK_INFO성공 하는지 확인합니다 .

전체 확인을 위해 위의 검사를 수행 한 다음 레코딩중인 메모리 스트림에서 계산 된 체크섬에 대해 새 디스크의 마지막 세션에서 전체 체크섬을 수행합니다. 체크섬은 램에 저장해야하지만 수명이 짧은 값일 수 있습니다. 소스 미디어 자체가 아니라 RAM의 디스크 이미지와 비교 한 것이므로 소스 데이터가 올바르게 읽히지 않으면 잘못 기록됩니다. 검증은이를 감지하지 못합니다.

음악 디스크의 경우 검사 READ_TRACK_INFO및 디스크 목차 에 중점을 두지 만 체크섬 계산은 수행하지 않습니다. 음악에 대한 전체 검증 모드가 없습니다.


6

Frank는 Windows 별 검증에 대해 잘 설명했습니다. 좀 더 일반적인 답변을 드리겠습니다.

레코딩 후 디스크 확인은 실제로 데이터를 확인하기 위해 무엇을합니까?

즉, 소스 및 대상 컨텐츠의 해시를 작성한 다음 비교합니까? 그렇다면 레코딩 된 콘텐츠의 해시를 RAM에 저장합니까? 아니면 하드 드라이브의 임시 파일로 저장합니까? 무슨 일이 일어나고 있는지에 대한 로그 파일이 있습니까?

그것은 확실히 비교를 구현할 수있는 한 가지 방법입니다. 하나의 파일을 해시하고 (충분히 크면 충돌 가능성이 낮은 알고리즘을 읽음) 다른 하나를 반복하고 해시를 비교하십시오. 이것이 검증이 구현 된 방법이라면 드라이브 LED가 잠시 동안 깜박 인 다음 CD / DVD-LED가 잠시 동안 깜박임을 볼 수 있습니다.

확인을 구현하는 또 다른 방법은 한 파일의 블록을 읽은 다음 다른 파일에서 같은 블록을 읽고 비교 한 다음 파일 끝에 도달 할 때까지 반복하는 것입니다. 이 경우 두 드라이브의 LED가 앞뒤로 번갈아 표시됩니다.

물론, 하드 드라이브와 광학 드라이브에 LED가없는 경우 분명하지 않지만 ProcessMonitor와 같은 것으로 확인할 수 있습니다. 다른 하나는 하나의 큰 버스트 또는 교대로 작은 버스트입니다.

원본 파일과 디스크에 구운 파일을 비교 한 것이지만 실제로 저수준에서 어떻게 수행되는지 아는 사람이 있습니까?

실제로, 비교 기능이 메모리 캐시 대신 실제 디스크에서 데이터를 읽도록 드라이브 캐시를 플러시하는 것입니다. 캐시에서 확인을 수행하면 실제로 디스크에있는 내용을 나타내지 않으므로 손상이 쉽게 발생할 수 있기 때문에 이것은 중요한 단계입니다.

드라이브의 속도 또는 RAM의 캐시에서 비교가 수행되는 속도를 통해 확인할 수 있습니다. 간단한 비교 (예 : WinDiff 또는 WinMerge를 사용하거나 해싱 도구를 사용하여 해시)를 수행하면 메모리 캐시에서 파일을 읽기 때문에 비교가 예상보다 훨씬 빠르게 진행됩니다. 실제 디스크에서 캐시를 읽으려면 캐시를 플러시해야합니다. 광학 드라이브 (플래시 드라이브 및 메모리 카드와 같은 다른 이동식 미디어의 경우 드라이브를 꺼내는 것만으로도 캐시를 플러시하기에 충분하지만 하드 드라이브의 경우 거의 단순하지 않습니다 (일반적으로 중요하지는 않지만 새 사본은 테스트하려는 사본입니다).


또한 새로 구운 미디어를 구운 드라이브와 다른 드라이브에서 읽어서 새로 구운 미디어의 내용을 확인하는 데 도움이 될 수 있습니다. 캐시하는 경우 또는 약간 기울어 진 데이터를 읽는 데 문제가없는 경우 (그런 식으로 작성했기 때문에 기울어지기 때문에).
Shadow Man

Windows 접근 방식에 대해 언급 한 한 가지 사항은 모든 소스 CRC / 체크섬 계산이 소스 디스크가 아닌 기록중인 이미지의 메모리 스트림에서 수행된다는 것입니다. 나는 그들이 GIGO를 가정하고 파일을 처음부터 올바르게 읽을 수 없다면 올바르게 쓸 수 없다고 생각합니다. 이상하게도 과거에는 Nero를 사용하여 창을 제대로 읽을 수없는 디스크를 새 CD에 복사했습니다. nero가 Windows와 다르게 작동한다고 생각합니다. MS 접근 방식을 통해 동일한 프로세스를 사용하여 iso 및 다른 디스크 이미지를 확인할 수 있다고 생각합니다.
Frank Thomas

@ShadowCreeper에서 드라이브를 꺼내면 캐시가 처리되지만 드라이브 바이어스에 대한 의미를 알 수 있습니다. 더 나쁜 것은, 그 경우라면 레코딩 한 모든 것에 적용되므로 잘못 정렬 된 드라이브 인 경우 오류를 발견하기 전에 많은 디스크를 레코딩 할 수 있습니다. :-(
Synetech

@ FrankThomas, Windows의 경우 우선 순위가 성능이라고 생각하므로 신중한 것이 아니라 신속하게 노력합니다. 나는 ImgBurn을 선호합니다 .
Synetech
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.