JBOD를 재구축할 수 있나요?

JBOD를 재구축할 수 있나요?

몇 년 전에 고장난 오래된 하드웨어가 있는데 아직 거기에 2개의 HDD가 있는데 둘 다 JBOD로 구성되어 있습니다.

이러한 드라이브를 하나의 HDD에 덤프하고 더 이상 사용할 수 없는 실제 하드웨어로 JBOD를 제거/재구축할 수 있는 방법이 있습니까?

JBOD는 AMD 64용 MSI 메인보드 K8T Neo인 Promise 20579 칩을 기반으로 구축되었습니다.

답변1

디스크가 손상될 가능성이 있습니다.연결됨하나의 큰 볼륨으로. JBOD의 경우 가장 간단한 솔루션입니다.하드웨어 담당자만 따라갔더라면키스의 원리, 하드웨어 대신 소프트웨어를 사용하여 데이터에 액세스/덤핑하는 데 문제가 없습니다.

Linux에서 적절한 도구는 이지만 dmsetup디스크를 이미지(또는 다른 디스크)에만 덤프하려는 경우 간단한 방법으로 cat충분할 수 있습니다.

조사

먼저 JBOD에서 디스크의 원래 순서를 알아야 합니다. 첫 번째 디스크를 쉽게 식별할 수 있어야 합니다. 까다로운 부분은 나머지 부분을 주문하는 것입니다. 귀하의 경우에는 HDD가 두 개 있으면 문제가 없습니다. 첫 번째 디스크에는 파티션을 설명하는 유효한 MBR 파티션 테이블 또는 유효한 GPT(기본이지만 보조 테이블은 아님)가 있습니다.전체JBOD. 파티션 테이블 없이 JBOD를 사용하지 않는 한 이 방법이 작동합니다. 디스크를 확인 gdisk -l하고 첫 번째 디스크를 식별하십시오.

준비

내 예에서 올바른 순서는 /dev/sdb, 입니다 /dev/sdc. 아래 변수 정의를 필요에 맞게 변경하십시오.

device1=/dev/sdb
device2=/dev/sdc

이렇게 하면 아무런 변경 없이 이어지는 Bash 명령을 사용할 수 있습니다.

디스크를 이미지로 덤프하려면 이것으로 충분합니다(참고: 지금부터는 가 필요할 수 있습니다 sudo).

cat "$device1" "$device2" > image.raw

실제로 JBOD를 사용하려면 더 많은 준비가 필요합니다. 장치의 크기를 512바이트 섹터에 저장해야 합니다. 크기를 검색하는 명령은 blockdev --getsz /dev/sdX다음과 같습니다.

size1="$(blockdev --getsz "$device1")"
size2="$(blockdev --getsz "$device2")"

echo "$size1" "$size2"두 개의 전화번호가 있는지 확인하세요 . (온전성 검사: 512를 곱하면 디스크 크기를 얻을 수 있습니다.)

매핑된 장치 생성

이제 가상으로 연결된 장치를 생성할 차례입니다. 다음 코드는 다음을 사용합니다.여기 문서가독성을 위한 구문. Bash를 사용하지 않는 경우 조정해야 할 수도 있습니다. 반면에 Bash를 사용하면 터미널에 붙여넣기만 하면 작동합니다.

dmsetup create mydevice << EOF
0 $size1 linear $device1 0
$size1 $size2 linear $device2 0
EOF

참고는 mydevice임의의 이름입니다. 두 번째와 세 번째 줄은 에 대한 장치 맵을 만듭니다 dmsetup. man dmsetup자세한 내용은 을 참조하세요 .

이제 사용할 수 /dev/mapper/mydevice있고 사용할 준비가 되었습니다. 그것은 당신의 JBOD입니다. (모든 구현이 에서 dmsetup노드를 생성하는지 100% 확신할 수는 없습니다 /dev/mapper/. 그럼에도 불구하고 mydevice어딘가에 나타나야 합니다.) 다른 장치와 마찬가지로 작업하십시오.

설치

읽다내 또 다른 대답. 전체설치해당 조항은 귀하의 사건에 적용됩니다.

청소

파괴 /dev/mapper/mydevice:

dmsetup remove /dev/mapper/mydevice

물론 umount파티션을 먼저 만들어야 합니다.

관련 정보