블록 크기와 시작 오프셋을 알고있는 경우 RAID 0 어레이 재 구축 (드라이브 실패 없음)?


0

내 노트북의 마더 보드가 죽었습니다. 두 개의 하드 드라이브를 제거했는데 둘 다 작동합니다. 그런 다음 둘 다 다른 컴퓨터에 꽂았 고 무료 소프트웨어를 사용하면 다음을 얻을 수있었습니다.

  • 블록 크기 : 128KB (256 섹터)
  • 데이터는 섹터 LBA 0에서 시작합니다
  • 블록 맵 : 1, 2
  • 나는 또한 드라이브 순서를 알고

이것이 배열을 재 구축하기에 충분한 정보인지 궁금합니다. 그렇다면 정보를 어떻게 얻을 수 있습니까?

답변:


0

같은 상황에서 동료의 데이터를 완전히 복구했습니다 (죽은 마더 보드). 이 도구는 dmsetupLinux에있었습니다. Linux가 설치되어 있지 않으면 Knoppix와 같은 LiveCD를 사용하십시오.

Linux에 익숙한 지 잘 모르겠습니다. 내 대답은 당신이 ( mkdir또는 같은 sudo) 필요할 수있는 모든 "명백한"기본 사항을 다루지 않으므로 Linux 초보자라면 배우고 의견을 물어보십시오.

여기서 나는 두 개의 드라이브가 /dev/sda및 이라고 가정합니다 /dev/sdb. 내 예제를 실제 값으로 다시 매핑하십시오.

추가 조사

256 섹터가 128 KiB임을 알고 있으므로 섹터 크기는 512 B입니다. 모든 디스크에 몇 개의 섹터가 있는지 알아야합니다. 당신은 당신이 드라이브 순서를 알고 있다고 말했다. 그렇다고 반드시 /dev/sdaLinux가 시작될 때 어떤 장치가 사용되는지 알 수있는 것은 아닙니다 . 하나씩 호출하십시오.

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 차 파티션 테이블에 대한 경고가 표시 될 수 있습니다. gdiskGPT를 작성할 준비 가 되었기 때문 입니다. 그렇게 할 필요가 없으며 그렇게하지 않아도됩니다. 경고가 있으면 무시하십시오. 이미 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먼저 파티션 을 만들어야 합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.