드라이브를 재할당한 후 Grub을 다시 작동시키려면 어떻게 해야 합니까?

드라이브를 재할당한 후 Grub을 다시 작동시키려면 어떻게 해야 합니까?

내 구성: opensuse 11.4, 부팅 파티션은 pendrive에 있고 하드 드라이브에는 sda1, sda2, sdb1 파티션이 있습니다.

오늘 컴퓨터 케이스를 교체하고 실수로 두 번째 드라이브를 SATA 2 대신 SATA 3에 연결했습니다. 따라서 두 번째 드라이브가 잘못 설치되었습니다. 컴퓨터를 종료하고 올바르게 연결한 후 문제가 시작되었습니다.

이제 시스템을 전혀 부팅할 수 없습니다. 이전에는 이동식 드라이브에서 부팅하도록 BIOS(펜 드라이브)에 설정이 있었지만 이제 컴퓨터(BIOS)에서는 펜 드라이브를 이동식 드라이브로 인식하지 못하고 일반 HDD를 이동식 드라이브로 인식하는 것 같습니다. 따라서 "이동식 드라이브"가 부팅되지 않습니다. 부팅 순서를 변경하고 하드 드라이브에서 부팅하도록 선택하거나(첫 번째 하드 드라이브를 펜 드라이브로 설정) 부팅 메뉴에서 직접 펜 드라이브에서 부팅하도록 설정하면 다음 오류가 발생합니다. GRUB 오류, 오류가 복구 모드로 들어갑니다.

제 생각에는 어떤 이유로 펜 드라이브가 더 이상 이동식 미디어로 인식되지 않지만 하드 드라이브, 하드 드라이브가 다르게 매핑되어 있으므로 매핑을 수정해야 할 것 같습니다.

CD 설치 프로그램을 부팅하고 pendrive를 마운트하여 grub 구성의 내용을 볼 수 있지만 grub 복구 모드에서 "ls"를 실행하면 다음과 같은 메시지가 나타납니다.

(hd0) (hd0,msddos1) (hd1) (hd1,msddos2) (hd1,msdos1) (hd2) (hd2,msddos1)

하지만 매핑이 표시되지 않으므로 hd0이 실제로 무엇을 의미하는지 알 수 없습니다. 여기서 hd1은 2개의 파티션을 가지고 있기 때문에 sda라고 의심할 수 있습니다(접미사 msdsos가 파티션을 의미하는 경우).

Grub을 다시 작동시키려면 어떻게 해야 하나요?

답변1

문제는 grub이 실행 중인 시스템에서 실행할 때와 부팅할 때 다른 USB 디스크를 본다는 것일 수 있습니다. 문제를 해결하는 방법은 다음과 같습니다.

일반적으로 하드 드라이브에서 부팅하고 grub이 나타나면 grub 콘솔을 엽니다(보통 을 누르기만 하면 됩니다 c). grub 프롬프트에서 다음을 입력하기 시작합니다 root (hd.

grub> root (hd

그런 다음 를 누르면 Tab디스크가 가능한 완료로 표시됩니다. 디스크와 파티션을 선택하세요 /boot. 확실하지 않은 경우 의심되는 각 항목에 대해 다음을 수행하십시오.

  • ( root파티션을 선택하려면 명령을 완료한 후 누르세요 Enter)
  • 를 입력 cat /하고 누릅니다 Tab. 파티션에 있는 파일 목록이 표시됩니다.
  • 파일 목록을 보고 커널(아래)이 포함된 파티션인지 확인합니다 /boot/.
  • 그렇지 않은 경우 를 누르고 Esc다시 시작하세요.

grub이 파티션을 어떻게 인식하는지 알아낸 후에는 부트로더를 다시 설치하고( setup명령을 사용하여) 파일에서 올바른 파티션/파일을 가리킬 수 있습니다./boot/grub/menu.lst 또는 /boot/grub/grub.conf(귀하의 버전에서 어떤 버전을 사용할지 결정하거나 동일한 내용을 포함하도록 해야 합니다.)


[편집]: Macias의 특별 요청에 따라 grub을 사용하여 MBR을 복구하는 방법에 대한 자세한 내용은 다음과 같습니다.

드라이브에 MBR을 다시 설치하는 한 가지 방법은 위에서 언급한 명령을 grub사용하는 것입니다 . setup이것은 grub 버전 0.9X(문서 보기). 하지만 최신 grub 브랜치(1.9X)를 사용하고 있는 것으로 보이며 해당 명령이 다릅니다. 구경하다해당 문서- 이 버전에서는 MBR에 grub을 설치할 수 있습니다.grub-install유틸리티 사용grub-0.97과 같은 grub "rescue" 프롬프트에서 다른 방법이 있는지 잘 모르겠습니다. 어쩌면 그렇지 않을 수도 있습니다. 아마도 이것이 많은 배포판이 "레거시" 버전을 선호하는 이유 중 하나일 것입니다.

답변2

이 파일은 menu.lstgrub-legacy에서만 사용됩니다. . grub.cfg​Grub2는 또한 그것 없이도 작동하기를 좋아하므로 device.map이를 제거하고 grub을 다시 설치할 수도 있습니다.

답변3

이 문제에 대한 해결책은 두 가지입니다. 한 가지는 grub을 수정하는 것이고, 또 다른 것은 MBR을 수정하는 것입니다.

첫 번째는 아주 간단(?) 설치 CD(openSUSE!)로 컴퓨터를 실행하고 "복구 모드"를 선택한 다음, 복구 모드에서 실행한 후 루트로 로그인하고(비밀번호 필요 없음) 펜드라이브를 삽입하고 마운트(예: ~/pendrive)한 후 다음으로 이동합니다. ~ /pendrive/grub 및 두 개의 파일(device.map 및 menu.lst)을 편집합니다. 두 파일 모두에서 항목(hdX)을 찾아야 합니다. 여기서 X는 (보통) 0과 1입니다. 내 경우에는 모든 0을 1로 바꾸고 모든 1을 0으로 바꿉니다.

MBR을 간단하게 수정하는 방법은 모르겠지만 Rozcietrzewiacz가 해결책을 제안할 수 있기를 바랍니다. :-) 만약을 대비해 가장 어려운 방법은 다른 펜 드라이브와 다른 하드 드라이브를 들고 일반 하드 드라이브를 모두 뽑고 모방을 수행하는 것입니다. 원래 설치의 "가짜" 설치입니다. 모든 것이 제대로 작동하고 새로운 "가짜" 시스템이 부팅되면 작동하는 펜 드라이브에서 작동하지 않는 펜 드라이브로 MBR 섹터를 복사할 수 있습니다(참조:grub을 사용하여 부팅 파티션을 완전히 재구축하는 방법은 무엇입니까?). 다음 지침을 따르세요.

"여기서는 /dev/sdb가 기존 펜 드라이브이고 /dev/sdc가 새 드라이브라고 가정합니다. 적절한 장치 이름으로 교체해야 합니다. 그렇지 않으면 전체 시스템이 망가질 수도 있습니다!

dd if=/dev/sdc bs=512 count=1 of=/dev/sdb

"(Rozcietrzewiacz의 솔루션)

이 두 단계는 디스크 재할당 후 Grub을 다시 작동시키는 데 필요한 전부입니다.

관련 정보