ddrescue를 사용하여 Linux에서 데이터 복구

PHPz
풀어 주다: 2024-03-20 13:37:06
앞으로
760명이 탐색했습니다.

DDREASE는 하드 드라이브, SSD, RAM 디스크, CD, DVD 및 USB 저장 장치와 같은 파일 또는 블록 장치에서 데이터를 복구하는 도구입니다. 한 블록 장치에서 다른 블록 장치로 데이터를 복사하여 손상된 데이터 블록은 남겨두고 양호한 데이터 블록만 이동합니다. ddreasue는 복구 작업 중에 간섭이 필요하지 않으므로 완전히 자동화된 강력한 복구 도구입니다. 게다가 ddasue 맵 파일 덕분에 언제든지 중지하고 다시 시작할 수 있습니다. DDREASE의 다른 주요 기능은 다음과 같습니다:

  • 복구된 데이터를 덮어쓰지는 않지만 반복 복구 시 공백을 메웁니다. 그러나 도구에 명시적으로 지시된 경우에는 잘릴 수 있습니다.
  • 여러 파일이나 블록의 데이터를 단일 파일로 복구합니다.
  • SATA, ATA, SCSI, MFM 드라이브, 플로피 디스크 및 SD 카드와 같은 다양한 유형의 장치 인터페이스를 지원합니다.

이 가이드에서는 이 강력한 데이터 복구 도구를 심층적으로 살펴보고 설치 단계와 이를 사용하여 블록 장치 또는 파티션을 복구하는 방법에 대해 설명합니다.

  • ddrescue 설치
  • 기본 알아보기
  • 중요 고려사항
  • DDREASE를 사용하세요
  • 깨진 블록 수리
  • 이미지 파일을 새 블록으로 복구
  • 데이터 블록을 다른 데이터 블록으로 복원
  • 저장된 이미지 파일에서 특정 데이터 복구
  • 고급 기능
  • ddrescue 작동 방식
  • 결론

참고: 이 가이드에서는 Linux 배포판(Ubuntu 22.04)을 사용하고 있습니다. Ddreasure 유틸리티의 설치 단계는 배포판에 따라 다를 수 있지만 지침은 모든 Linux 배포판에 공통적으로 적용됩니다.

ddrescue 설치

Linux, 특히 Ubuntu 및 해당 버전이나 Debian 기반 배포판에 ddrescue를 설치하려면 다음을 사용하세요: 목적:

sudo apt install gddrescue

REHL, Fedora 및 CentOS에 설치하려면 먼저 ETEL(Enterprise Linux용 추가 패키지)을 활성화하세요.

sudo yum install epel—release

위 명령은 해당 배포판의 최신 버전에 적용 가능합니다.

그런 다음 다음 명령을 실행하여 ddreasue를 설치하세요.

sudo yum install ddrescue

Arch-Linux 및 Manjaro와 같은 Arch-Linux 기반 배포판의 경우 아래 명령을 사용하여 ddrescue 복구 유틸리티를 설치하세요.

sudo pacman—S ddrescue

저는 Ubuntu 22.04를 사용하고 있으므로 APT 패키지 관리자를 이용해 설치하겠습니다.

기본 알아보기

ddreasue 도구를 사용하여 데이터를 복구하기 전에 복구 프로세스에 익숙하지 않은 사용자는 Linux의 일부 명명 규칙을 이해하는 것이 좋습니다.

Linux는 블록(장치)을 파일로 인식하여 /dev 디렉터리에 저장합니다. /dev 디렉토리의 파일을 나열하려면 ls/dev 명령을 사용하십시오.

하드 드라이브(저장 블록)는 sd와 알파벳으로 표시됩니다. 여러 저장 장치의 경우 파일은 /dev/sda, /dev/sdb 등으로 표시됩니다.

저장 장치에 파티션이 있는 경우 /dev/sda1, /dev/sda2 등과 같이 해당 드라이브 파일 이름과 함께 숫자로 표시됩니다.

시스템의 모든 블록과 기타 연결된 장치를 나열하려면 list block lsblk 명령을 사용하세요.

lsblk

ddrescue를 사용하여 Linux에서 데이터 복구

ddrescue 명령은 전체 블록(MBR 및 파티션 포함) 또는 파티션을 복구할 수 있습니다. 반면, 특정 파티션에서 특정 파일만 복구해야 한다면 전체 블록보다는 파티션을 복구하는 것이 더 좋습니다.

중요 고려사항

ddue 유틸리티를 사용하기 전에 고려해야 할 몇 가지 매우 중요한 문제가 있습니다.

  • 마운트된 블록을 복구하려고 시도하지 마세요. 읽기 전용 모드에 있어서도 안 됩니다.
  • I/O 오류가 있는 데이터 블록을 복구하려고 시도하지 마세요.
  • 시스템 재부팅 시 입력 및 출력 장치 이름을 변경할 수 있습니다. 복사 프로세스를 시작하기 전에 장치 이름이 올바른지 확인하십시오.
  • 별도의 블록을 출력 장치로 사용하는 경우 해당 장치의 모든 데이터를 덮어쓰게 됩니다.

ddrescue를 사용하세요

ddrescue 유틸리티를 설치하고 명명 규칙을 이해한 후 다음 단계는 장애가 발생한 디스크를 식별하고 ddrescue 도구를 사용하여 복구하는 것입니다.

손상된 블록 수리

첫 번째 예시에는 전체 블록을 복구하는 과정이 포함됩니다. 먼저 lsblk 명령을 사용하여 블록을 나열합니다.

lsblk—o 이름, 크기, FSTYPE

—o 플래그는 명령이 출력해야 하는 정보(필드) 유형을 지정하는 데 사용됩니다. 이름, 크기, FSTYPE 또는 파일 시스템 유형을 언급했습니다.

ddrescue를 사용하여 Linux에서 데이터 복구

이제 복구된 이미지 파일을 저장할 대상 블록, 파티션 및 위치를 결정할 수 있습니다.

또 다른 중요한 점은 Linux에서는 부팅 시 블록 이름이 동적으로 할당되며 재부팅 후에는 블록 이름이 변경될 수 있다는 것입니다. 따라서 블록 이름을 적을 때는 주의하세요.

이제 아래 구문을 사용하여 청크를 이미지 파일로 저장하고 루트 디렉터리의 로그 파일을 사용합니다.

sudo ddrescue—d—rX/dev/[블록][경로/이름].img [로그파일_이름].

참고: 이미지 파일의 [block], [path/name] 및 [logfile_name]을 원하는 이름으로 바꾸세요.

이 예에서는 이미지 파일 이름인 Recovery.img를 사용하여 루트 디렉터리의 /dev/sda를 복구하고 있습니다. 언제든지 복구를 재개하려면 로그 파일(맵 파일이라고도 함)이 필요합니다.

Sudo dd 구조 -d-r2/dev/sda2 복원.img 복원.log

위 명령에는 두 가지 중요한 플래그가 사용됩니다.

—간접 도구가 디스크에 직접 액세스하고 커널 캐시를 무시하도록 지시하는 데 사용됩니다
RX -재시도-통과 불량 섹터를 X번 재시도하도록 도구에 지시하는 데 사용됩니다

위 명령을 실행하는 동안 파일 브라우저에 Recovery.img와 Recovery.log라는 두 개의 파일이 나타나는 것을 볼 수 있습니다.

ddrescue를 사용하여 Linux에서 데이터 복구

복구 시간은 입력 블록 크기 및 손상에 따라 다릅니다. 대규모 데이터 블록을 복구하려면 프로세스를 완료하는 데 몇 시간 또는 며칠이 걸릴 수 있으므로 로그 파일을 사용하는 것이 좋습니다.

위 명령의 출력은 다음과 같습니다.

ddrescue를 사용하여 Linux에서 데이터 복구

출력 이미지에서 ipos는 복사가 시작되는 입력 파일의 입력 위치이고, opos는 출력 파일에 쓰여진 데이터의 출력 위치입니다.

Non-try는 시도를 기다리지 않고 블록의 크기를 결정하는 것입니다. Rescued는 성공적으로 복구된 블록의 크기를 나타냅니다. 복구된 비율은 성공적으로 복구된 데이터의 비율을 나타냅니다. 정리되지 않은, 스크랩되지 않은, 불량 섹터 및 불량 영역이라는 용어는 설명이 필요하지 않습니다. 그러나 읽기 오류 용어는 실패한 읽기 시도를 숫자로 나타냅니다.

실행 시간은 도구가 프로세스를 완료하는 데 걸린 시간을 표시하고, 남은 시간은 복구 프로세스를 완료하는 데 남은 시간을 나타냅니다. 위의 출력은 프로세스가 완료되었기 때문에 남은 시간이 0임을 보여줍니다. 아래의 미완성 프로세스 이미지에서 출력을 읽어보시기 바랍니다.

ddrescue를 사용하여 Linux에서 데이터 복구

로그 파일에서 얻은 내용을 살펴보겠습니다. 생성된 로그 파일을 열려면 vim Recovery.log 명령을 사용하세요.

ddrescue를 사용하여 Linux에서 데이터 복구

current_status는 +로 프로세스의 종료를 나타내며 current_pos는 블록에서의 위치입니다.

현재 상태 목록은 아래 표를 참조하세요.

? 복사
* 트림
/ 스크랩
다시 시도해 보세요
F 지정된 블록 채우기
G 로그 파일 생성
+ 프로세스가 완료되었습니다

아래 로그 파일에는 이전에 구출된 청크의 상태가 아래 나열된 문자로 표시됩니다.

? 블록은 아직 시도되지 않았습니다
* 잘라내지 않은 결함 블록
/ 스크래핑되지 않은 잘못된 블록
불량 섹터 실패 데이터 블록
+ 완전한 블록

이미지 파일을 새 블록으로 복구

복구 프로세스를 완료하고 이미지 파일이 있으면 이제 손상된 드라이브에서 새 드라이브로 이동할 수 있습니다. 이미지 파일을 새 블록으로 이동하려면 먼저 블록을 시스템에 연결한 다음 lsblk 명령을 사용하여 블록 이름을 식별합니다.

/dev/sdb라고 가정하고 다음 명령을 사용하여 이미지를 새 블록에 복사합니다.

sudo ddrescue—f 복구 img/dev/sdb logfile.log

데이터가 있으면 -f 플래그를 사용하여 새 블록을 덮어씁니다. 이전에 저장된 로그 파일과 별도로 유지하려면 로그 파일의 이름이 달라야 합니다.

위 작업은 파일 복사를 위한 또 다른 강력한 명령인 dd를 사용하여 수행할 수도 있습니다.

sudo dd if = =/dev/sdb의 img

복원을 진행하기 전에 새 블록은 복구된 블록 전체를 보존할 수 있을 만큼 커야 한다는 점을 기억하세요. 예를 들어 복구된 블록이 5GB인 경우 새 블록은 5GB보다 커야 합니다.

복구된 이미지 파일에 오류가 많이 발생하는 경우 Linux에서 fsck 명령을 사용하여 어느 정도 복구할 수 있습니다. Windows에서는 CHKDSK 또는 SFC 명령을 사용하여 이 작업을 수행할 수 있습니다. 그러나 복구는 손상된 파일로 인해 생성된 오류 수에 따라 달라집니다.

이제 복구 과정 및 수리 작업이 완료되었습니다. 주목해야 할 또 다른 중요한 점은 이미지 파일을 생성한 다음 이를 새 블록에 복사하는 대신 손상된 블록을 다른 블록에서 직접 복구할 수 있다는 것입니다. 좋습니다. 다음 섹션에서는 이 프로세스에 대해 자세히 설명하겠습니다.

데이터 블록을 다른 데이터 블록으로 복원

블록을 새 블록으로 직접 복원하려면 먼저 블록을 시스템에 연결한 다음 lsblk 명령을 다시 사용하여 블록 이름을 식별하세요. 블록 이름이 잘못되면 전체 프로세스가 중단될 수 있으며 데이터가 손실될 수 있습니다.

소스 및 대상 블록을 식별한 후 다음 명령을 사용하여 블록을 복원합니다.

sudo ddrescue—d—f—r2/dev/[소스]/dev/[대상] backup.log

/dev/sdb가 대상 블록이라고 가정하고 /dev/sda 디렉토리를 새 블록에 복사하려면 다음을 사용하세요.

Sudo ddue-d-f-r2/dev/sda/dev/sdb backup.log

이 프로세스를 시도하기 전에 이전 섹션에서 언급한 주요 고려 사항을 참조하세요.

저장된 이미지 파일에서 특정 데이터 복구

많은 경우 데이터 복구의 목적은 손상된 드라이브에서 특정 파일을 찾는 것입니다. 특정 파일에 액세스하려면 이미지 파일을 마운트해야 합니다. Linux에서는 mount 명령을 사용하여 복구된 이미지 파일을 탐색할 수 있습니다.

이미지 파일을 마운트하기 전에 이미지 파일 내용을 추출할 폴더나 디렉터리를 만드세요.

mkdir 복구 마운트

다음으로 다음 명령을 사용하여 이미지 파일을 마운트합니다.

sudo 마운트—o 루프 복구 img~/Recovery Mount

—o 플래그는 옵션을 나타내고 루프 옵션은 이미지 파일을 블록 장치로 처리하는 데 사용됩니다.

이제 아래 스크린샷과 같이 이미지 파일의 내용에 액세스할 수 있습니다.

ddrescue를 사용하여 Linux에서 데이터 복구

블록을 마운트 해제하려면 umount 명령을 사용하세요.

SUDO 제거~/복원 로딩

고급 기능

특정 지점에서 재개하려면 -i 플래그 또는 -input-position을 사용하세요. 바이트 단위여야 하며 기본값은 0바이트입니다. 특정 지점부터 복제를 재개하는 것이 중요합니다. 예를 들어 10GB 지점부터 복사 프로세스를 시작하려면 다음 명령을 사용하십시오.

sudo ddrescue—i10GiB/dev/sda 이미지 파일.img logfile.log

입력 장치의 최대 크기를 정의하려면 -s 플래그가 사용됩니다. -s는 -size로도 사용할 수 있는 크기를 바이트 단위로 나타냅니다. 도구가 입력 파일의 크기를 인식하지 못하는 경우 이 옵션을 사용하여 지정하십시오.

Sudo ddreasure-s10GiB/dev/sda Imagefile.img 로그 파일.log

—묻기 옵션은 복사 프로세스를 시작하기 전에 입력 및 출력 블록을 확인하라는 메시지를 표시하므로 매우 편리합니다. 앞서 언급했듯이 시스템은 블록에 이름을 동적으로 할당하고 재부팅 시 이름을 변경합니다. 이 경우 이 옵션이 유용할 수 있습니다.

sudo ddrescue——ask/dev/sda imagefile.img logfile.log

또한 다음은 몇 가지 다른 대안입니다.

—R —역방향 복사 방향 반전
—q —그냥 모든 출력 메시지 취소
—V —상세 자세히 말하면 모든 출력 메시지
—p -사전 할당 출력 파일을 위한 저장 공간 사전 할당
—P -데이터 미리보기 최신에 읽은 데이터의 표시 줄은 기본적으로 3줄입니다

ddrescue 작동 방식

DDREASE는 4단계로 구분되는 강력한 복구 알고리즘을 사용합니다.

1.복사

2.가지치기

3.면도

4. 다시 시도해 보세요

ddrescue 알고리즘의 실행은 아래 그림과 같습니다.

ddrescue를 사용하여 Linux에서 데이터 복구

결론

ddrescue는 데이터를 다른 드라이브에 복사하여 손상되거나 결함이 있는 드라이브에서 데이터를 복구하는 강력한 복구 도구입니다. 기본 패키지 관리자의 도움으로 모든 Linux 배포판에 쉽게 설치할 수 있습니다. 이 가이드에 언급된 도구를 사용하기 전에 중요한 고려 사항에 유의하세요. 데이터를 복사하는 과정은 간단합니다. 드라이브를 마운트 해제하고 소스 드라이브 이름 및 대상 드라이브 이름과 함께 ddrescue 명령을 사용합니다. 로그 파일은 복구 프로세스 중에 매우 유용하므로 사용하는 것을 잊지 마십시오.

위 내용은 ddrescue를 사용하여 Linux에서 데이터 복구의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:mryunwei.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!