md0에 / boot가 설치된 저하 된 RAID1에서 Linux 부팅


0

우선 Linux에서 RAID 어레이를 관리하는 데 익숙하지 않기 때문에 질문이 매우 기본적이지만 인터넷에서 정확한 시나리오를 찾지 못하는 것 같습니다.

HDD가 2 개인 RAID1 시스템이 있고 / boot 파티션을 포함하여 모든 파티션이 RAID 어레이 위에 설치됩니다. 오늘 mdadm은 다음과 같이 어레이가 저하되고 (아마도 HDD 중 하나가 고장 났음) 어레이가 자동으로 저하 상태로 바뀌 었다고 경고했습니다.

# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[0]
      204736 blocks super 1.0 [2/1] [U_]

md2 : active raid1 sdb2[0]
      151858048 blocks super 1.1 [2/1] [U_]
      bitmap: 2/2 pages [8KB], 65536KB chunk

md1 : active raid1 sdb3[0]
      4092864 blocks super 1.1 [2/1] [U_]

그런 다음 서버를 종료하고 실패한 드라이브를 교체하고 나머지 드라이브에서 부팅을 시도했지만 GRUB이 커널을 부팅하려고 시도한 후 다음 메시지가 표시됩니다.

Error 17: Cannot mount selected partition.

누구든지 내가 작업 드라이브에서 시스템을 부팅하기 위해 여기서 어디로 가야하는지 알고 있습니까? 나는 기본적으로 GRUB에 대한 지식이 없으며 문서를 몇 번 읽으려고했지만 여전히 너무 복잡하며 지금부터 전원이 꺼진 서버가 있습니다. 도움을 주시면 감사하겠습니다.

답변:


0

올바르게 이해하면 첫 번째 드라이브 ( /dev/sda)가 교체 된 것입니다. 또한 GRUB을 설치할 때 RAID1 설정에 필요한대로 두 디스크 모두에 GRUB을 설치하지 못한 것 같습니다.

문제는 grub이 grub이 설치되지 않은 첫 번째 하드 드라이브를 검색한다는 것입니다. 이 문제에 대한 빠른 인터넷 검색이 나타납니다 : https://www.novell.com/support/kb/doc.php?id=7010670 . 거기에있는 단계와 관련 페이지를 참조하여 필요에 따라 수정하십시오. 들어 /dev/sdb당신은 사용해야합니다 hd1GRUB에서.


늦은 의견에 대해 죄송합니다. 나는 그때 그것을 읽었지만 실제로 나를 도와주지 않았다. GRUB 레거시를 말하는 것 같습니다. 어떻게 해결했는지 자세히 설명하는 위의 답변을 읽으십시오.
Railander

0

2 년 후 나 자신의 질문에 대답하면 ...

나는이 서버에서 모든 것을 내보내고 서식을 지정했지만 최근에 다시 문제에 직면하여 문제를 해결하기로 결정했습니다.

여기서 언급 한 모든 것은 다음과 같습니다.

  • 와 CentOS는 7 ml에서 커널 ELRepo.
  • 두 소자 (A)에 첨가 하였다 raid1(OS를 설치하는 동안 과 같이 ) 및 모든 파티션이 RAID 1의 상단에 탑재 (하였다 /boot, /swap). LVM 은이 주제와 관련하여 차이를 보이지 않는 것 같습니다.
  • 기본 CentOS 7 설치와 마찬가지로 GRUB2기존 GRUB문서 대신에 온라인에서 찾을 수있는 대부분의 문서가 v1과 관련되어 있기 때문에 큰 차이가 있습니다.
  • 내 설정은 하지 않습니다 포함 된 EFI파티션을. 내가 찾은 것에서 EFI는 RAID 위에서 작동하지 않으므로 EFI가 있으면 아래 절차가 올바르게 작동하지 않으므로 여기에서 큰 관심을 기울이십시오.

CentOS가 부트 로더 (GRUB2)를 첫 번째 물리적 장치에만 설치하고 있다는 것이 문제라는 것이 분명해졌습니다. 분명히 그것은 MSDOSRAID 위에서 실행할 수없는 작은 파티션 (파티션이 올바른 용어입니까? 아마도 '플래그'입니까?)을 사용합니다. 이로 인해 보조 디스크에 시스템의 전체 사본이 있더라도 부트 로더가없는 것처럼 디스크를 간단히 교체하더라도 시스템을 부팅 할 수 없습니다.

이제 간단하게 솔루션을 탐색하려면 부트 로더를 기본 디스크에서 보조 디스크로 복사하십시오.

부트 로더가 장치를 어떻게 호출하는지 정확히 몰랐기 때문에 진행 방법을 잘 모르겠습니다. 어쩌면 첫 번째 부트 로더를 단순히 미러링하면 충돌이 발생할 수 있으므로 항목을 반전시켜 어떤 장치가 실제로 어떤 장치인지 알 수 있습니다.

이것에 dd대해 살펴보면서 부트 로더를 두 번째 디스크에 복사하는 데 사용할 솔루션을 찾았습니다 . 나는 사용자가 항상 그렇게하고 항상 효과가 있다고 말한 게시물을 찾았지만 어떤 이유로 든 그것이 아니었다.

GRUB2의 작동 방식을 더 잘 이해하기 위해 부트 로더를 원하는 장치에 쉽게 추가하는 '설치'도구가 포함되어 있음을 알았습니다. 내가해야 할 일은 :

grub2-install /dev/sdb

그런 다음 디스크를 교체 한 후에도 시스템이 여전히 예상대로 부팅되었습니다! 임무의 절반이 완료되었습니다.

그런 다음 두 장치가 부팅 될 수 있음을 확인한 후 어레이에서 고장난 디스크 (이제 'sdb')를 제거해야했습니다 (이 문서는 온라인에서 찾을 수 있으며 장치를 고장난 것으로 표시 한 다음 어레이에서 제거해야 함). 새 디스크로 교체 한 다음 마지막으로 다시 mdadm 배열에 추가하면 자동으로 동기화가 시작되기를 바랍니다 (진행 상황을 볼 수 있음 watch cat /proc/mdstat).

또한 grub2-install완료 후 새 장치 에서 다시 실행하는 것을 잊지 마십시오 .

잘하면 이것은 다른 사람이 같은 문제에 직면하는 데 도움이 될 수 있기를 바랍니다.

EFI 파티션이있는 경우 보조 장치의 시작 부분에 복사 할 수있는 방법을 찾아야 할 것입니다 ( dd어떤 매개 변수를 제공해야할지 모르겠지만 작업을 수행해야합니다).

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