어떤 이유로 읽을 수없는 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 를 장치 sdb 로 sudo dd if=~/USB_image of=/dev/sdb
복원 합니다. 새 USB 드라이브가 원래 드라이브보다 크거나 큰지 확인하십시오.
를 사용하여 방금 만든 이미지 파일을 다른 USB 드라이브로 먼저 복원 할 필요없이 경로에 마운트 할 수도 있습니다 mount ~/USB_image /mnt/USB_image -o loop
.
답변
사용하십시오 ddrescue
. 오류가 발생한 후에도 계속 dd
되며 단순히 실패합니다.
또한 ddrescue
repos에 있습니다. 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=sync
dd에 부분적으로 만 읽을 수있는 모든 블록을 0으로 채우도록 지시하므로 결과 이미지에 0이 너무 많을 수 있지만, 읽기 오류를 뺀 디스크와 구조적으로 동일합니다. conv=noerror
dd에게 다음 블록을 계속하도록 지시하면서 읽기 오류를 처리했습니다. 이 시점에서 블록 크기가 중요합니다. 오류를 건너 뛰는 데 필요한 것보다 크면 읽을 수있는 데이터가 손실됩니다. Blocksize는 항상 2의 요소가 512k
되어야합니다.
그런 다음 제안합니다.
- 해당 이미지의 수정되지 않은 사본을 안전한 곳에 보관
- fsck 디스크 이미지의 사본
- 디스크 이미지를 마운트
- 파일 확인-문제없이 읽을 수 있지만 일부가 없거나 잘릴 수 있습니다.
- 장치 자체를 전혀 읽을 수 없으면 운이 좋지 않을 수 있습니다. 또한 장치에 일부 독점 소프트웨어가 포함 된 경우 첫 번째 블록에서 액세스 할 때 읽기 오류를 반환하도록 설정 될 수 있습니다.
(2010 년에 작성된 기사에서 일부 인용)
네이티브 상태를 유지할 필요가없는 경우, 항상 ddrescue (package gddrescue
) 및 해당 동반자 ddrescueview
( sourceforge ) 와 같이 프로세스를 다소 완화하려는 도구 를 사용하여 오류를 시각화 할 수 있습니다.
답변
당신의 질문의 후반과 관련하여 “이것은 dd를 사용할 때 얻는 오류입니다”: 몇 가지 가능성을 볼 수 있습니다.
- 입력 한 명령과 허용 된 답변의 차이점에 유의하십시오. 의
~
앞에 누락되었습니다/USB_image
. 즉, 홈 디렉토리 대신 파일 시스템의 루트를 출력하려고합니다. /dev/sdd
올바른 드라이브가 아닐 수 있습니다. 실행sudo fdisk -l
하고 USB 스틱의 알려진 크기로 드라이브의 크기를 비교합니다. 예를 들어, 16GB에 가깝기 때문에 이것이 내 USB 스틱이라는 것을 알고Disk /dev/sdf: 15.8 GB, 15805186048 bytes
있습니다.