답변:
같은 상황에서 동료의 데이터를 완전히 복구했습니다 (죽은 마더 보드). 이 도구는 dmsetup
Linux에있었습니다. Linux가 설치되어 있지 않으면 Knoppix와 같은 LiveCD를 사용하십시오.
Linux에 익숙한 지 잘 모르겠습니다. 내 대답은 당신이 ( mkdir
또는 같은 sudo
) 필요할 수있는 모든 "명백한"기본 사항을 다루지 않으므로 Linux 초보자라면 배우고 의견을 물어보십시오.
여기서 나는 두 개의 드라이브가 /dev/sda
및 이라고 가정합니다 /dev/sdb
. 내 예제를 실제 값으로 다시 매핑하십시오.
256 섹터가 128 KiB임을 알고 있으므로 섹터 크기는 512 B입니다. 모든 디스크에 몇 개의 섹터가 있는지 알아야합니다. 당신은 당신이 드라이브 순서를 알고 있다고 말했다. 그렇다고 반드시 /dev/sda
Linux가 시작될 때 어떤 장치가 사용되는지 알 수있는 것은 아닙니다 . 하나씩 호출하십시오.
gdisk -l /dev/sda
gdisk -l /dev/sdb
이 명령 중 하나는 정상 파티션 테이블을 보여 주어야하며, 이는 어레이의 첫 번째 장치를 나타냅니다 (이 지식은 나중에 유용합니다). 경고가 있으면 무시하십시오. 모든 명령에는 각 디스크의 섹터 수도 표시됩니다. 이 두 숫자는 같거나 같지 않을 수 있습니다. 동일하면 숫자에 2를 곱하십시오 (일반적으로 디스크 수). 같지 않으면 가장 낮은 수를 얻고 2를 곱하십시오. 결과는 RAID0이 사용할 수있는 최대 섹터 수입니다. 이것을 N 이라고합시다 .
그러나! 어레이에는 한 디스크의 256 섹터와 다른 디스크의 256 섹터 등이 있어야합니다. 따라서 배열의 섹터 수는 512로 나눌 수 있어야합니다. N 은 나눌 수 없으므로 512 로 나눌 수있는 가장 큰 정수가 아닌 정수를 선택해야합니다. 계산기 또는 bash와 같은 작업 (실제로 "N"으로 대체) 번호):
M=$((N/512*512))
echo $M
이것은 배열에서 가장 가능성이 높은 섹터 수입니다. 현재 가장 중요한 것은 어떤 이유로 든 실제 숫자가 그보다 작더라도 유효한 숫자입니다.
다음 명령은 당신에게 가장 적합한 명령이어야합니다.
echo "0 $M striped 2 256 /dev/sda 0 /dev/sdb 0" | dmsetup create mydevice
나는 조정할 것이 거의 없기 때문에 "거의"썼다.
$M
쉘 산술 대신 계산기를 사용한 경우 손으로 적절한 값으로 대체하십시오 .sudo
실행 해야 합니다 dmsetup
.의 인수 echo
는 장치 맵이며 mydevice
임의의 이름입니다. 지도는 새로운 디바이스 단편 출발하여 (순서)라고 0
번째 섹터와 피복 $M
섹터되어 stripped
, 빌드 2
의 스트라이프 크기 장치 256
섹터 (순서대로) 장치가있다 /dev/sda
(그부터 0
번째 섹터)과 /dev/sdb
(또한 출발 - 0
번째 부문에서).
이제 /dev/mapper/mydevice
사용 가능하고 사용 가능 해야 합니다. (나는 모든 dmsetup
생성 노드를 구현할 때 100 % 확실하지 않다 /dev/mapper/
; mydevice
어딘가에 나타나야한다.)
분할 테이블을 확인하고 이해해야합니다.
gdisk -l /dev/mapper/mydevice
GPT가 아닌 MBR이있는 경우 마지막 파티션과 겹치는 2 차 파티션 테이블에 대한 경고가 표시 될 수 있습니다. gdisk
GPT를 작성할 준비 가 되었기 때문 입니다. 그렇게 할 필요가 없으며 그렇게하지 않아도됩니다. 경고가 있으면 무시하십시오. 이미 GPT를 가지고 있고 겹치지 않는 한 걱정할 필요가 없습니다.
사람들 이 마운트하려는 파티션과 관련된 노드를 사용 dmsetup
하거나 kpartx
만드는 것을 보았습니다 . 또는 dd
파티션을 "추출"하고 결과 파일을 마운트 할 수도 있습니다. 이들 중 어느 것도 필요하지 않습니다. 요즘에는 옵션 mount
덕분에 전체 장치 내부에서 파티션을 만들 수 있습니다 offset
. 예를 들어 마운트해야 할 파티션이 63 번 섹터 (Windows XP 시스템 파티션의 공통 값)에서 시작되면 다음과 같이 마운트합니다.
mount -o offset=$((512*63)),ro /dev/mapper/mydevice /mnt/foo
-o ro
처음에는 읽기 전용 ( ) 을 마운트하는 것이 좋습니다 (또는 데이터를 가져 오려는 경우). 사용한 소프트웨어에 문제가 있거나 일부 명령으로 실수 한 경우 읽기 전용으로 마운트하지 않으면 데이터가 손상 될 수 있습니다. 이것은 ro
최소한 파일 시스템을 돌아 다니며 파일을 거의 읽지 않고 (예 : play mp3
-s 및 avi
-s, pdf
-s, display jpg
-s 등) 모든 것이 순서대로 보이는지 확인하기 전까지는 옵션 을 사용하는 것이 좋습니다 .
파괴하기 /dev/mapper/mydevice
:
dmsetup remove /dev/mapper/mydevice
물론 umount
먼저 파티션 을 만들어야 합니다.