ddrescue 사용법을 배우고 있는데 -d(직접) 옵션이 어떤 용도로 사용되며 어떤 상황에서 권장되는지 알고 싶습니다.
답변1
특정 상황 -d
(또는 )에서 --idirect
더 많은 데이터를 구출할 수 있습니다 .
사실이야, man ddrescue
의미라고 말하기엔 빠르지
입력 파일에 직접 디스크 액세스 사용
이것은 아마도 많은 것을 설명하지 못할 것입니다. 하지만 아직은GNU ddrescue 온라인 매뉴얼:
11 직접 디스크 액세스
위치와 크기를 보시면지도 파일항상 섹터 크기의 배수입니다. 커널이 디스크 액세스를 캐싱하고 그룹화할 수도 있습니다. 이 경우 직접 디스크 액세스를 사용해야 할 수도 있습니다.네펠레, 또는 원시 장치에서 읽어 커널 캐시를 우회하고 더 많은 데이터를 구출합니다.
노트!
--sector-size
이것이 제대로 작동하려면 직접 디스크 액세스 옵션을 사용하여 섹터 크기를 올바르게 설정해야 합니다 .참고: 직접 디스크 액세스는 전체 섹터를 읽은 다음 요청된 부분만 쓰는 방식으로 임의의 필드를 복사할 수 있습니다. 이는 ddrescue가 복구 도메인 외부의 데이터 읽기를 시도하는 유일한 경우입니다.
먼저 이
--idirect
옵션을 시도해 보세요. 시스템에서 디스크에 직접 액세스할 수 없는 경우 원래 장치를 사용해 보십시오. 원시 장치를 일반 블록 장치에 바인딩하는 방법을 알아보려면 시스템 설명서를 읽어보세요. 일부 운영 체제는/dev/rdisk
.Ddrescue는 직접 디스크 액세스 또는 원시 장치에서 읽는 데 사용할 수 있도록 I/O 버퍼를 섹터 크기에 맞춥니다. 효율성상의 이유로 페이지 크기가 섹터 크기의 배수이면 메모리 페이지 크기에도 맞춰집니다. 일부 시스템에서는 ddrescue가 원시 장치의 크기를 확인할 수 없으므로 명시적인
--size
또는 옵션이 필요할 수 있습니다.--complete-only
직접 디스크 액세스를 사용하거나 원시 장치에서 읽는 것은 운영 체제 및 하드웨어에 따라 일반적인 캐시된 읽기보다 느리거나 빠를 수 있습니다. 속도가 느린 경우 첫 번째 패스에 일반 캐시 읽기를 사용하고 직접 디스크 액세스 또는 원시 장치를 사용하여 실패한 블록 내의 양호한 섹터만 복구할 수 있습니다.