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


21

어떤 이유로 읽을 수없는 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:~$ 

어떤 16 진 편집기를 사용하십니까?
AJMansfield

/dev/sdxUSB 스틱을 가리키는 장치에서 읽을 수 없으면 심각한 문제가 있으며 일반 사용자가 사용할 수있는 도구가 없다고 생각합니다. 자세한 내용은이 링크를 참조하십시오. askubuntu.com/questions/144852/… ; 한 번에 포기하지 마십시오. 읽기에 도움이 될만한 것들의 목록에 따라 시도하십시오. 어쩌면 USB 펜 드라이브를 분리하여 마이크로 SD 카드를 찾을 수 있습니다. 마이크로 SD 카드는 @ ubfan1의 의견에 따라 작동합니다 (연결된 답변에서).
sudodus

문제를 처리하는 두 가지 옵션이 있습니다. 첫 번째 쉬운 방법 : sudo su를 실행 한 다음 루트로 dd 명령을 실행하십시오. 두 번째로 숙련 된 버전을 dd로 실행하십시오. * | gzip> ~ / Backup-USB.img.gz '
WiKrIe

답변:


39

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.


fdisk -lUSB 드라이브가 보이지 않으면 어떻게 합니까? 그러나 디스크 유틸리티 프로그램에서 / dev / sdd로 볼 수 있지만 명령을 사용하려고하면 실패한 것 같습니다.
oshirowanen

무슨 잘못으로 실패?
Bruno Pereira

의견이 너무 많아 원래 질문에 오류가 추가되었습니다.
oshirowanen

1
fdisk에 장치가 표시되지 않으면 dmesg를 사용하여 장치가 연결될 때 발생하는 상황을 확인하십시오. dmesg는 커널 상호 작용의 목록이므로 기본적으로 하드웨어가 컴퓨터에서 무언가를 수행하면 dmesg에 메시지가 표시됩니다.
j0h

2
@ 알렉스 사용 status='progress'dd 우분투, 또는 그림 당신의 PID 밖으로 dd명령과 그 전송 SIGUSR1신호. 그러나 다른 구현에 대해서는 확실하지 않습니다.
Sergiy Kolodyazhnyy 2012

7

사용하십시오 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 스틱, 나는 또한 사용할 필요가 있다고 생각 ... 분석 할 SMART의 데이터가없는 sudo위해 ddrescue, * DD 단순히 실패 할 경우 *입니다 종류의 사용자가 구성 할 수 있기 때문에 정말 사실이 아니다의 dd읽기 오류를 무시 할 수 있습니다. testdisk굉장 당신이 잃어버린 읽을 수있을 때 드라이브가 죽은하지 않을 경우, 데이터의 섹터를.
Bruno Pereira

#은 루트의 기호이므로 아니오, sudo는 필요하지 않습니다. 그것이 $라면 그렇습니다.
j0h

또한 ddrescue 또는 dd가 실패하더라도 이미지를 생성 할 수있는 경우에도 해당 이미지에서 데이터 복구를 시도 할 수 있습니다.
j0h

나는의 사용 제안 gddrescue에 대한을 ddrescue하기 때문에 gddrescue새로운 및 작업 할 더 수있는 ddrescue수행합니다.
Bruno Pereira

1
나는 남자도 몰라 내 게시물을 읽습니다. gddrescue는 패키지이고 ddrescue는 명령입니다.
j0h

2

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

예 :

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

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


2

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 ) 와 같이 프로세스를 다소 완화하려는 도구 를 사용하여 오류를 시각화 할 수 있습니다.


2

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

  1. 입력 한 명령과 허용 된 답변의 차이점에 유의하십시오. 의 ~앞에 누락되었습니다 /USB_image. 즉, 홈 디렉토리 대신 파일 시스템의 루트를 출력하려고합니다.
  2. /dev/sdd올바른 드라이브가 아닐 수 있습니다. 실행 sudo fdisk -l하고 USB 스틱의 알려진 크기로 드라이브의 크기를 비교합니다. 예를 들어, 16GB에 가깝기 때문에 이것이 내 USB 스틱이라는 것을 알고 Disk /dev/sdf: 15.8 GB, 15805186048 bytes있습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.