하는 방법 구조를 부팅이 되지 않 GRUB2 리눅스에서

grub command shell

옛날에 우리가 기존 GRUB Grand Unified Linux Bootloader 버전 0.97. 레거시 GRUB 에는 많은 미덕이 있었지만 오래되었고 개발자는 더 많은 기능을 갈망 했으므로 GRUB2 가 세상에 나왔습니다.

GRUB2 는 몇 가지 중요한 차이점이있는 주요 재 작성입니다. 그것은 이동식 미디어를 부팅하고,시스템 BIOS 를 입력 할 수있는 옵션으로 구성 할 수 있습니다. 그것은 더 복잡한을 구성하는 모든 종류의 스크립트를 통해 웨이드,그리고 대신 좋은 매우 간단/boot/grub/menu.lst/boot/grub/grub.cfg. 당신이 직접 편집하지 않는,오,아니,이것은 단순한 인간이 만지는 것이 아니라 다른 스크립트 일뿐입니다. 우리 lowly 인간은 GRUB 메뉴의 모양을 주로 제어하는/etc/default/grub/etc/grub.d/memtestos_prober/boot/grub/grub.cfg/etc/default/grub/etc/grub.d/*update-grub명령을 실행해야 합니다 모든 시간을 변경합니다.

좋은 소식은update-grub스크립트가 신뢰할 수 있는를 찾는 커널 부팅 파일을 추가하는 모든 운영 체제 GRUB 부팅 메뉴에,당신이하지 않아도 그것을 할 수 있습니다.

우리는 더 일반적인 실패 중 두 가지를 수정하는 방법을 배우려고합니다. 시스템을 부팅하고grub>프롬프트에서 멈 추면 전체 GRUB2 명령 셸입니다. 즉,GRUB2 시작으로드normal.mod/boot/grub//grub.cfggrub rescue>normal.mod를 찾을 수 없으므로 부팅 파일을 찾을 수 없습니다.이것이 어떻게 발생합니까? 커널이 변경되었을 수 있습 드라이브를 지정하거나 이동한 하드 드라이브에,당신은 파티션의 일부를 변경 또는 설치된 새로운 운영 체제와 이동니다. 이러한 시나리오에서는 부팅 파일이 여전히 있지만 GRUB 은 찾을 수 없습니다. 따라서 GRUB 프롬프트에서 부팅 파일을 찾아 위치를 설정 한 다음 시스템을 부팅하고 GRUB 구성을 수정할 수 있습니다.

GRUB2 명령 쉘

GRUB2 명령 쉘은 레거시 GRUB 의 셸만큼 강력합니다. 부팅 이미지,커널 및 루트 파일 시스템을 발견하는 데 사용할 수 있습니다. 사실,권한이나 기타 보호에 관계없이 로컬 시스템의 모든 파일 시스템에 대한 완전한 액세스 권한을 제공합니다. 는 일부를 고려할 수 있습니다 보안,하지만 당신이 알고있는 옛 Unix 의견:누구든지 실제 기계에 대한 액세스를 소유한다.

grub>grub rescue>모드는 더 제한적이며 기록 및 탭 완료가 없습니다.

작동하는 시스템에서 연습하는 경우 GRUB 부팅 메뉴가 나타나면 C 를 눌러 GRUB 명령 셸을 엽니 다. 화살표 키를 사용하여 메뉴 항목을 위아래로 스크롤하여 부팅 카운트 다운을 중지 할 수 있습니다. 당신이 거기 아무것도 영구적이기 때문에 GRUB 명령 줄에서 실험하는 것이 안전합니다. 이미 있다면 쳐다보고 있는grub>grub rescue>프롬프트에 다음 당신은 바위 준비가되어 있습니다.

다음 몇 가지 명령을 모두와 함께grub>grub rescue>. 첫 번째 명령을 실행해야 호출한 페이저,페이징에 오랜 명령 출력:

grub> set pager=1

있어서는 공간의 양쪽에 로그인 같습니다. 이제 약간의 탐험을 해봅시다. 유형ls모든 파티션 GRUB 본다:

grub> ls(hd0) (hd0,msdos2) (hd0,msdos1)

What’s 는 모든이msdos stuff? 즉,이 시스템에는 gpt(shiny new Globally Unique Identifier partition table)가 아닌 이전 스타일의 MS-DOS 파티션 테이블이 있습니다. (리눅스에서 새로운 GUID 파티션 테이블 사용을 참조하십시오(안녕 고대 MBR). GPT 를 실행하면(hd0,gpt1)ls명령을 어떤 파일 시스템에서:

grub> ls (hd0,1)/lost+found/ bin/ boot/ cdrom/ dev/ etc/ home/ lib/lib64/ media/ mnt/ opt/ proc/ root/ run/ sbin/ srv/ sys/ tmp/ usr/ var/ vmlinuz vmlinuz.old initrd.img initrd.img.old

만세,우리가 발견한 루트 파일 시스템으로 넘어갑니다. msdosgptcat명령으로 읽을 수 있습니다:

grub> cat (hd0,1)/etc/issueUbuntu 14.04 LTS n l

/etc/issue도움이 될 수 있 멀티 부팅 시스템에 대한 식별 다양한 Linuxes.

에서 부팅 grub>

이것은 어떻게 설정하는 부트 파일 및 부팅 시스템에서grub>ls(hd0,1)/boot/grub입니다. 다음 명령을 실행,사용하여 자신만의 루트 파티션,커널,그리고 initrd 이미지:

grub> set root=(hd0,1)grub> linux /boot/vmlinuz-3.13.0-29-generic root=/dev/sda1grub> initrd /boot/initrd.img-3.13.0-29-genericgrub> boot

첫 번째 라인을 설정하는 파티션의 루트 파일 시스템입니다. 두 번째 줄은 GRUB 에게 사용하려는 커널의 위치를 알려줍니다. /boot/vmli입력을 시작한 다음 tab-completion 을 사용하여 나머지를 채우십시오. 루트 파일 시스템의 위치를 설정하려면root=/dev/sdX를 입력하십시오. 예,이것은 중복 된 것처럼 보이지만,이것을 벗어나면 커널 패닉을 얻을 수 있습니다. 올바른 파티션을 어떻게 압니까? hd0,1=/dev/sda1. hd1,1=/dev/sdb1. hd3,2=/dev/sdd2. 나는 당신이 나머지를 외삽 할 수 있다고 생각합니다.

세 번째 라인을 설정하는initrd파일해야합니다 같은 버전 숫자로 커널이다.

네 번째 줄은 시스템을 부팅합니다.

에서 일부는 리눅스 시스템은 현재 알갱이와 initrds 는 symlinked 으로는 최고 수준의 루트 파일 시스템:

$ ls -l /vmlinuz -> boot/vmlinuz-3.13.0-29-genericinitrd.img -> boot/initrd.img-3.13.0-29-generic

할 수 있도록에서 부팅grub>이:

grub> set root=(hd0,1)grub> linux /vmlinuz root=/dev/sda1grub> initrd /initrd.imggrub> boot

에서 부팅 grub-구조>

경우에 GRUB 구조 쉘이 명령은 다른,당신을 로드하는 데 필요normal.mod linux.mod 모듈:

grub rescue> set prefix=(hd0,1)/boot/grubgrub rescue> set root=(hd0,1)grub rescue> insmod normalgrub rescue> normalgrub rescue> insmod linuxgrub rescue> linux /boot/vmlinuz-3.13.0-29-generic root=/dev/sda1grub rescue> initrd /boot/initrd.img-3.13.0-29-genericgrub rescue> boot

탭 완료해야한 후 작업을 시작을 로드하 모두 모듈을 사용합니다.

영구 수리하기

시스템을 성공적으로 부팅 한 경우 다음 명령을 실행하여 GRUB 를 영구적으로 수정하십시오:

# update-grubGenerating grub configuration file ...Found background: /usr/share/images/grub/Apollo_17_The_Last_Moon_Shot_Edit1.tgaFound background image: /usr/share/images/grub/Apollo_17_The_Last_Moon_Shot_Edit1.tgaFound linux image: /boot/vmlinuz-3.13.0-29-genericFound initrd image: /boot/initrd.img-3.13.0-29-genericFound linux image: /boot/vmlinuz-3.13.0-27-genericFound initrd image: /boot/initrd.img-3.13.0-27-genericFound linux image: /boot/vmlinuz-3.13.0-24-genericFound initrd image: /boot/initrd.img-3.13.0-24-genericFound memtest86+ image: /boot/memtest86+.elfFound memtest86+ image: /boot/memtest86+.bindone# grub-install /dev/sdaInstalling for i386-pc platform.Installation finished. No error reported.

실행할 때는grub-install/dev/sda1.

그러나 그것은 여전히 작동하지 않

경우 시스템입니다 그래서 엉망이 없는 이 작품을 시도하는 슈퍼 GRUB2 라이브 구조는 디스크에 있습니다. 공식 GNU GRUB 매뉴얼 2.00 도 도움이 될 것입니다.

Related Posts

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다