grub이 디스크에 설치되어 있는지, 어떤 설정이 있는지 (특히 루트 매개 변수에 대해) 어떻게 알 수 있습니까?
소프트웨어 RAID1 어레이에서 많은 디스크를 검사하여 두 디스크 모두에 GRUB이 설치되어 있고 각 디스크에 GRUB이 적절한 루트 값을 가지고 있는지 확인해야합니다.
답변
최신 정보:
이 답변은 2009 년부터 작성되었으며 grub2가 아닌 grub-legacy에 적용됩니다.
file
MBR에서 GRUB을 식별하는 데 사용할 수 있습니다 . 예 :
# file -s /dev/sda
/dev/sda: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3
, stage2 address 0x2000, stage2 segment 0x200; partition 1:
ID=0xfd, starthead 1, startsector 63, 1044162 sectors; partition
2: ID=0x82, starthead 0, startsector 1044225, 1028160 sectors;
partition 3: ID=0xfd, starthead 0, startsector 2072385,
1951447680 sectors, code offset 0x48
root=
paramater는 GRUB의 저장 년대 MBR에 저장되지 않은 menu.lst
파일 시스템 (에 저장된 파일 일반적으로 루트 파일의 / boot / grub 디렉토리 또는 / 부팅 파일 시스템의 GRUB 디렉토리에 – 항상은 아니지만, 그것을 어디에나있을 수 있습니다).
위의 파일 출력을 구문 분석하고, menu.lst
파일이 있는 디스크 / 파티션을 결정 하고, 마운트 한 후 읽고 파싱해야합니다. 또한 grub / default 파일을 읽어서 어떤 grub 메뉴 항목이 기본값인지 알아 내고 싶을 것입니다. 왜냐하면 가장 관심있는 root = 매개 변수를 가지고 있기 때문일 것입니다.
답변
다른 방법
file -s
내 파일 명령의 마법 파일이 오래 되어 Ubuntu Lucid에서 작동하지 않았습니다 . 매직 파일이 GRUB 변경 사항을 따라 잡지 않은 경우이를 수행하는 다른 방법은 다음 dd
과 같은 명령을 사용하여 장치의 처음 512 바이트를 검사하는 것입니다.
user@host:~$ sudo dd bs=512 count=1 if=/dev/sda 2>/dev/null | strings
ZRr=
`|f
\|f1
GRUB
Geom
Hard Disk
Read
Error
dd
명령을 통해 명령 의 출력을 전송하여 strings
인쇄 할 수없는 문자를 제거합니다 (전송 통계는에 버려짐 /dev/null
).
GRUB에 오류가 발생했을 때 표시 될 메시지가 표시되면 GRUB이 설치되어있는 것입니다.
이 암호로 보호 된 게시물에 답하기 위해 ubuntuforums.org에서 louib의 모자 팁 : http://ubuntuforums.org/showthread.php?t=363372
궁금한 점은 이것이 내가 얻은 것입니다 file -s
.
user@host:~$ sudo file -s /dev/sda
/dev/sda: x86 boot sector; partition 1: ID=0x83, active, starthead 32, startsector 20
48, 337211392 sectors; partition 2: ID=0x5, starthead 254, startsector 337215486, 1434214
6 sectors, code offset 0x63
GRUB에 대해서는 특별히 아무것도 없습니다.
답변
grub-emu
다음에 컴퓨터를 재부팅 할 때 grub에 표시되는 메뉴를 볼 수 있습니다 .
$ sudo apt-get install grub-emu
$ sudo grub-emu
데스크탑 컴퓨터에서 메뉴가 예상대로 표시되었지만 실제로 커널을 부팅하는 경우 “장치 없음”오류가 발생했습니다. 나는 그것이 예상되는 행동이라고 생각합니다.
내 DigitalOcean VPS에서 서버가 실제로 제대로 재부팅되었지만 grub 메뉴에 항목이 표시되지 않았습니다. (2013 VPS이므로 마일리지가 다를 수 있습니다.)
실행할 때 참고 사항 grub-emu
:
- 당신이 애벌레와 상호 작용하려면 X-Windows에서, 당신은 당신의 필요 키보드 포커스를 수 단말기에 팝업 창에 당신이 애벌레 – 에뮤를 실행 한에서, 그리고.
- 를 누른
c
다음을 입력 하여 에뮬레이터를 종료 할 수 있습니다exit
. - 종료 후 터미널 에뮬레이터의 상태가 좋지 않을 수 있습니다 (예 : Enter는 새 줄에 표시되지 않음). 을 입력하여 수정하십시오
reset
. (컴퓨터를 다시 시작하지 않아도 걱정하지 마십시오. 터미널을 정리하기 만하면됩니다.)