| grub에서 커널 패닉 대처하는 부팅 설정 | 작성일 : 2010/01/21 00:08 |
| 조회수 : 16908 |
|
제 목 : grub에서 커널 패닉 대처하는 부팅 설정 작성자 : 좋은진호(truefeel, http://coffeenix.net/ ) 작성일 : 2010.1.20(수) 새로운 커널을 업그레이드 한 후, 리부팅시 커널 패닉(kernel panic)이 발생할 수도 있다. 콘솔에서 직접 부팅하는 것이라면 패닉시 이전 커널로 부팅하는 것은 쉽게할 수 있다. 그러나 원격에서 리부팅시 패닉이 발생했다면 더이상의 조치는 취하기 어렵다. 하지만 패닉이 발생할 때 안전하게 이전 커널로 부팅하도록 GRUB에서 설정할 수 있다. CentOS와 Ubuntu간에 GRUB 설정에 차이가 있어서, 2가지 방법으로 설명하겠다. 다음은 /boot/grub/grub.conf의 설정 예이다. default=0 으로 설정되어 있으므로 첫번째에 있는 2.6.18-old의 커널로 부팅된다. 새로 설치한 2.6.18-new로 안전하게 부팅하려면 어떻게 해야할까?
1. 방법 1 (CentOS, RHEL의 경우) grub command 쉘에서 다음과 같이 결과가 나올 경우, 이 설정법을 이용하면 된다.
grub.conf에서 panic=3 설정을 추가한다. 커널 패닉시 3초 뒤에 리부팅하라는 것이다.
이제 명령어 한줄이면 끝난다.
--default=1 : 2번째 커널(위에서는 2.6.18-new)로 부팅하라는 뜻이다. 이 때 패닉이 발생하면 grub.conf에 설정된 default=0의 커널로 자동 리부팅을 하게 된다. 즉, 문제가 발생해도 이전버전으로 부팅되니 안전하다. 3번째 커널로 하고 싶다면 --default=2라고 하면 된다. --once : 딱 한번만 2번째 커널로 부팅하라는 뜻이다. 다음 부팅때부터는 원래대로 grub.conf설정을 따른다. 새로운 커널로 정상 부팅이 되었다면 grub.conf에서 default= 설정 등을 변경해서, 부팅할 때마다 새커널로 부팅되도록 수정해주면 될 것이다. 2. 방법 2 (우분투(Ubuntu)의 경우) grub command 쉘에서 다음과 같이 결과가 나올 경우, 이 설정법을 이용하면 된다. 이 때 grub-set-default 실행 파일이 /usr/sbin 등에 존재할 것이다.
grub.conf 설정을 다음과 같이 바꾼다.
default saved로 설정하면 grub은 /boot/grub/default 텍스트 파일에 설정한 커널 번호(entry)를 먼저 실행한다. 이 파일내에 1이라고 되어 있다면 2.6.18-new 커널로 먼저 부팅된다. 2.6.18-new 커널 부분에는 'savedefault 0'설정이 있다. 이는 2.6.18-new로 먼저 부팅을 하고, 다음 부팅할 때는 첫번째(savedefault 0 설정에 따른 것임)에 있는 2.6.18-old로 부팅하라는 것이다. /boot/grub/default 파일은 직접적으로 수정하지 말고, grub-set-default 명령으로 변경하는 것을 권장하고 있다. 다음과 같이 실행해주면 된다.
3. 커널 3개 이상일 때 fallback 설정(방법 2, 우분투(Ubuntu)의 경우) 이 부분은 좀 더 깊이 이해하기 위한 부분으로 모르고 넘어가도 상관없다. 커널이 2개 보다 많을 경우 경우 fallback 설정으로 순차적으로 새로운 커널로 부팅되도록 할 수가 있다. 다음은 GRUB 매뉴얼에 나온 예제이다.
fallback 1 2 설정은 /boot/grub/default 에 설정된 커널 번호로 부팅을 먼저 하고, 그 다음에는 1번, 그 다음에는 2번 커널로 부팅하라는 뜻이다. 따라서 /boot/grub/default 에 0이 들어가 있다면 A -> B -> C 커널 순으로 순차적으로 부팅을 하게 된다. 만약 첫번째 있는 A커널로 정상 부팅이 되었고, 이제 매번 A커널로 부팅을 원한다면 rc.local에 'grub-set-default 0'을 넣어주면 된다. fallback 기능에 대해서는 http://star4u.org/blog/?p=88 에 자세히 설명되어 있다. 4. 참고자료 1) lilo에서 커널 패닉 대처법 - lilo 를 이용한 부팅 실패 대처.... (글 mindline, 2003.11 ) http://coffeenix.net/board_view.php?bd_code=137 2) grub의 savedefault --default=1 --once 명령으로 설정하는 방법 - grub single boot and kernel panic reboot http://www.linux-noob.com/forums/index.php?/topic/2928-grub-single-boot-and-kernel-panic-reboot/ - grub-set-default http://www.centos.org/modules/newbb/viewtopic.php?viewmode=flat&topic_id=3931&forum=27 - GRUB boots의 Fallbacks http://fedora.redhatmagazine.com/magazine/024oct06/features/kickstart/?intcmp=bcm_edmsept_007 3) grub-set-default 명령으로 설정하는 방법 - GRUB 매뉴얼의 '4.3.1 Booting once-only'과 '4.3.2 Booting fallback systems' http://www.gnu.org/software/grub/manual/grub.html#Booting-once_002donly - GRUB의 fallback기능으로 안전하게 커널 업그레이드 하기 http://star4u.org/blog/?p=88 |
|||||||||||||||||||||||||
|
|