일단 커널 패치를 설치하고 수백 개의 클라이언트가있는 라이브 서버에 문제가 발생했습니다. 시스템에는 오직 하나의 커널 만이있었습니다. 그래서 서버가 한동안 다운되었고 라이브 CD를 사용하여 시스템을 가동하고 추가 복구 작업을 수행했습니다.
이제 내 질문 : 커널의 2 버전을 갖는 것이 좋은 생각입니까? 그래서 커널이 손상되면 항상 사용 가능한 다른 커널로 재부팅 할 수 있습니까? 알려주세요.
또한 동일한 커널의 두 가지 버전을 가질 수 있습니까? 커널 손상이있을 때 다른 커널을 선택할 수 있도록?
Edited:
My Server Details:
2.6.32-431.el6.x86_64
CentOS release 6.5 (Final)
커널이 손상 될 때 백업 커널을 시작할 수 있도록이 커널과 동일한 사본을 어떻게 만들 수 있습니까?
답변
사용 새로 설치할 때 레드햇과 데비안 기반 배포 모두 커널의 여러 버전을 유지 yum
하거나 apt-get
기본적으로합니다. 이것은 좋은 습관으로 간주되며 설명하는 경우와 정확히 일치합니다. 최신 커널에 문제가있는 경우 항상 재부팅 할 수 있으며 GRUB에서는 이전 커널 중 하나를 사용하여 부팅하도록 선택합니다.
레드햇 배포판에서 당신은해야 할 커널의 수를 제어 /etc/yum.conf
로 installonly_limit
설정. 새로운 CentOS 7 설치에서는 기본값이 5입니다.
또한 RedHat에서 RPM 패키지에서 새 커널을 설치하는 경우에는 사용 rpm -ivh
하지 말고 rpm -Uvh
다음을 사용 하십시오.
데비안은 오래된 커널을 유지하지만 자동으로 제거하지는 않습니다. 부팅 파티션을 비워야하는 경우 이전 커널을 수동으로 제거해야합니다 (이전 커널 중 하나 이상을 남겨 두어야 함). 모든 커널 설치 및 커널 헤더 패키지를 나열하려면을 사용하십시오 dpkg -l | egrep "linux-(im|he)"
.
질문에 답하기- 또한 동일한 커널의 2 가지 버전을 사용할 수 있습니까? -가능합니다. 지금 CentOS 6.5에서 확인할 수는 없지만 CentOS 7에서는 커널 관련 /boot
디렉토리 파일을 복제 하고 grub 메뉴를 다시 작성하여 원하는 결과를 얻을 수있었습니다 .
cd /boot
# Duplicate kernel files;
# "3.10.0-123.el7" is a substring in the name of the current kernel
ls -1 | grep "3.10.0-123.el7" | { while read i; \
do cp $i $(echo $i | sed 's/el7/el7.backup/'); done; }
# Backup the grub configuration, just in case
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.backup
# Rebuild grub configuration
grub2-mkconfig -o /boot/grub2/grub.cfg
# At this point you can reboot and see that a new kernel is available
# for you to choose in GRUB menu
답변
예, 가능합니다. 대안을 제공하기 위해 부팅 프로세스를 설정하기 만하면됩니다. 일반적으로 이것은 부트 로더 구성에서 수행됩니다. 일반적으로 존재하는 항목을 복제하고 커널 이미지 파일 이름 및 부팅 메뉴 항목 레이블을 변경할 수 있습니다.
프로덕션 서버에서는 일반적으로 문제가되지 않지만 커널을 업그레이드 할 때마다 백업을하는 것이 좋습니다. 일부 Linux 배포판은 패키지 업데이트에 롤백 (일반적으로 파일 시스템 스냅 샷 기능으로 지원)을 제공하여 프로세스를 최대한 번거롭지 않게하지만 이러한 경우에도 백업을 준비하는 경향이 있습니다.
동일한 커널의 여러 복사본을 갖는 경우도 마찬가지이지만 @goldilocks가 아래 주석에서 지적한 것처럼 커널이 손상되면 하드웨어 교체에 대해 생각해야합니다. 반면에 복제본을 다른 물리적 HDD에두면 문제가 발생할 수 있습니다. 그러나 커널 이미지 파일은 것을 염두에 두어야 적 부팅시 사용.