USB 스틱의 약간 동일한 이미지를 어떻게 만듭니 까? 수없는 USB

어떤 이유로 읽을 수없는 USB 스틱이 있습니다. 저장 목적으로 이미지를 만들어 나중에 이미지에서 데이터를 검색하려고합니다.

USB 스틱과 같은 약간의 동일한 이미지를 만드는 방법은 무엇입니까?


이것은 사용할 때 발생하는 오류입니다 dd.

oshirowanen@desktop:~$ sudo dd if=/dev/sdd of=/USB_image
[sudo] password for oshirowanen:
dd: reading `/dev/sdd': Input/output error
0+0 records in
0+0 records out
0 bytes (0 B) copied, 1.00783 s, 0.0 kB/s
oshirowanen@desktop:~$



답변

dd 그것!

사용법은 같은 것 sudo dd if=/dev/sdb of=~/USB_image은 / dev / SDB가 별로 나열로의 USB 드라이브 sudo fdisk -l~ / USB_image는 복사가 이루어집니다 이미지 파일 (이미지 파일이 생성 될 경로)입니다.

이미지를 다른 USB 드라이브로 복원하려면 프로세스를 반전하십시오. ~ / USB_image 를 장치 sdbsudo dd if=~/USB_image of=/dev/sdb복원 합니다. 새 USB 드라이브가 원래 드라이브보다 크거나 큰지 확인하십시오.

를 사용하여 방금 만든 이미지 파일을 다른 USB 드라이브로 먼저 복원 할 필요없이 경로에 마운트 할 수도 있습니다 mount ~/USB_image /mnt/USB_image -o loop.


답변

사용하십시오 ddrescue. 오류가 발생한 후에도 계속 dd되며 단순히 실패합니다.

또한 ddrescuerepos에 있습니다. 13.04에서 sudo apt-get install gddrescue
설치를 입력 했습니다.

사용 sudo fdisk -l또는 dmesg장치 위치 등 알아낼 : /dev/sdb다음 명령을 같은 실행

ddrescue /dev/sdb /home/user/desktop/bkp.img

에 대한 많은 옵션이 ddrescue있으며 man페이지 를 읽으십시오 . 또한 하드웨어가 실패하고 덤프하는 이유를 잘 모르겠습니다 dd. 하나의 불량 블록이 dd종료 될 수 있지만 간헐적 인 정전이 발생할 수 있습니다. dmesg발생할 수있는 하드웨어 오류에 대해 자세히 알려줄 수 있습니다.

장치가 마운트되지 않았는지 확인하십시오! 데이터 복구, 이미징 등을 시도 할 때 문제가 발생할 수 있습니다.

데이터 복구에 잘못 될 수있는 많은 것들이 있습니다. 문제가 있으면 다시 게시하십시오. testdisk이미지가 있으면 데이터 복구를 수행하는 데 유용한 유틸리티입니다.

간단히 말해서, 이것은 USB 하드 드라이브 또는 USB (솔리드 스테이트 메모리) 장치입니까?

I / O 오류는 일반적으로 파일 시스템 손상이 아닌 하드웨어 오작동을 나타냅니다.

가능한 경우 장치의 SMART 데이터 분석을 시도하십시오. 이것은 장치가 과열되어 오랫동안 전원이 켜져 있고 불량 섹터가 있고 X no 이상에 노출 된 경우와 같은 것을 알려줍니다. Gs 등


답변

을 사용하여 USB 스틱 (또는 다른 장치)의 이미지를 만들 수 있습니다 dd.

예 :

dd if=<usb device> of=usb.img

dd명령을 최적화하기 위해 더 많은 매개 변수를 추가 할 수 있습니다 (예 🙂 bs.


답변

dd이전 포스터에서 언급했듯이 기본 이동 방법입니다. 그래도 오류를 계속 극복하기를 원하므로 다음과 같이 시작하십시오.

dd if=<usb device> of=<new file on disk with enough space> bs=<should match your blocksize> conv=noerror,sync

중요한 부분은 마지막 부분입니다. conv=syncdd에 부분적으로 만 읽을 수있는 모든 블록을 0으로 채우도록 지시하므로 결과 이미지에 0이 너무 많을 수 있지만, 읽기 오류를 뺀 디스크와 구조적으로 동일합니다. conv=noerror
dd에게 다음 블록을 계속하도록 지시하면서 읽기 오류를 처리했습니다. 이 시점에서 블록 크기가 중요합니다. 오류를 건너 뛰는 데 필요한 것보다 크면 읽을 수있는 데이터가 손실됩니다. Blocksize는 항상 2의 요소가 512k되어야합니다.

그런 다음 제안합니다.

  • 해당 이미지의 수정되지 않은 사본을 안전한 곳에 보관
  • fsck 디스크 이미지의 사본
  • 디스크 이미지를 마운트
  • 파일 확인-문제없이 읽을 수 있지만 일부가 없거나 잘릴 수 있습니다.
  • 장치 자체를 전혀 읽을 수 없으면 운이 좋지 않을 수 있습니다. 또한 장치에 일부 독점 소프트웨어가 포함 된 경우 첫 번째 블록에서 액세스 할 때 읽기 오류를 반환하도록 설정 될 수 있습니다.

(2010 년에 작성된 기사에서 일부 인용)

네이티브 상태를 유지할 필요가없는 경우, 항상 ddrescue (package gddrescue) 및 해당 동반자 ddrescueview( sourceforge ) 와 같이 프로세스를 다소 완화하려는 도구 를 사용하여 오류를 시각화 할 수 있습니다.


답변

당신의 질문의 후반과 관련하여 “이것은 dd를 사용할 때 얻는 오류입니다”: 몇 가지 가능성을 볼 수 있습니다.

  1. 입력 한 명령과 허용 된 답변의 차이점에 유의하십시오. 의 ~앞에 누락되었습니다 /USB_image. 즉, 홈 디렉토리 대신 파일 시스템의 루트를 출력하려고합니다.
  2. /dev/sdd올바른 드라이브가 아닐 수 있습니다. 실행 sudo fdisk -l하고 USB 스틱의 알려진 크기로 드라이브의 크기를 비교합니다. 예를 들어, 16GB에 가깝기 때문에 이것이 내 USB 스틱이라는 것을 알고 Disk /dev/sdf: 15.8 GB, 15805186048 bytes있습니다.

답변