여러 버전의 Linux 커널을 사용하는 것이 좋습니까?


14

일단 커널 패치를 설치하고 수백 개의 클라이언트가있는 라이브 서버에 문제가 발생했습니다. 시스템에는 오직 하나의 커널 만이있었습니다. 그래서 서버가 한동안 다운되었고 라이브 CD를 사용하여 시스템을 가동하고 추가 복구 작업을 수행했습니다.

이제 내 질문 : 커널의 2 버전을 갖는 것이 좋은 생각입니까? 그래서 커널이 손상되면 항상 사용 가능한 다른 커널로 재부팅 할 수 있습니까? 알려주세요.

또한 동일한 커널의 두 가지 버전을 가질 수 있습니까? 커널 손상이있을 때 다른 커널을 선택할 수 있도록?

Edited:
My Server Details:
2.6.32-431.el6.x86_64
CentOS release 6.5 (Final)

커널이 손상 될 때 백업 커널을 시작할 수 있도록이 커널과 동일한 사본을 어떻게 만들 수 있습니까?


4
당신이 당신 자신의 질문에 대답 한 것 같습니다. 시스템에서 작동하는 것으로 알고있는 한 여러 커널을 사용하는 데 따른 단점은 없으며 어떤 이유로 특정 커널에 문제가 발생하는 경우 유용 할 수 있습니다.
Faheem Mitha

고마워, 내가 qns를 올바르게 묻지 않았을지도 모른다. 이 커널의 동일한 사본을 어떻게 가질 수 있습니까? 그래서 커널이 손상되었을 때 백업 커널을 시작할 수 있습니까?
Mani

2
물론 동일한 커널을 가질 수 있습니다. 커널은 디스크의 파일 일뿐입니다. 기존 커널을 ​​약간 다른 이름으로 복사 할 수 있습니다.
Faheem Mitha

내가 상속 한 서버 중 하나에 8 개의 다른 커널에 대한 16 개의 부팅 항목이있었습니다. 정리할 때까지
Canadian Luke

나는 보통 무언가 잘못 될 경우를 대비하여 이전 커널을 유지합니다.
여호수아

답변:


18

사용 새로 설치할 때 레드햇과 데비안 기반 배포 모두 커널의 여러 버전을 유지 yum하거나 apt-get기본적으로합니다. 이것은 좋은 습관으로 간주되며 설명하는 경우와 정확히 일치합니다. 최신 커널에 문제가있는 경우 항상 재부팅 할 수 있으며 GRUB에서는 이전 커널 중 하나를 사용하여 부팅하도록 선택합니다.

레드햇 배포판에서 당신은해야 할 커널의 수를 제어 /etc/yum.confinstallonly_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

고마워요. 그러나 CentOS 6.5에는 "grub2-mkconfig"가 없습니다. 아시다시피, centos 6.5 에서이 작업을 수행하는 방법을 알고 싶습니다 .grub2는 Centos 7에서만 사용할 수 있다고 생각합니다. 이제 인터넷 검색을하고 있습니다.
Mani

아래와 같이 Centos 6.5에 맞게 해당 줄을 수정하고 grub.conf를 업데이트하는 방법에 갇혔습니다. LS -1 | grep "2.6.32-431.el6"| {i를 읽는 동안; \ do cp $ i $ (echo $ i | sed 's / el6 / el6.backup /'); 끝난; } cp /boot/grub/grub.conf cp /boot/grub/grub.conf.backup
Mani

고마워 !!! 그것은 효과가 있었고 ls -1 | grep "2.6.32-431.el6"| {i를 읽는 동안; \ do cp $ i $ (echo $ i | sed 's / el6 / el6.backup /'); 끝난; } cp /boot/grub/grub.conf cp /boot/grub/grub.conf.backup 그리고 grup.conf를 수동으로 편집했습니다. 동일한 디스크 및 파티션에 복사하려는 경우 UUID를 동일하게 유지할 수 있습니다.
Mani

7

예, 가능합니다. 대안을 제공하기 위해 부팅 프로세스를 설정하기 만하면됩니다. 일반적으로 이것은 부트 로더 구성에서 수행됩니다. 일반적으로 존재하는 항목을 복제하고 커널 이미지 파일 이름 및 부팅 메뉴 항목 레이블을 변경할 수 있습니다.

프로덕션 서버에서는 일반적으로 문제가되지 않지만 커널을 업그레이드 할 때마다 백업을하는 것이 좋습니다. 일부 Linux 배포판은 패키지 업데이트에 롤백 (일반적으로 파일 시스템 스냅 샷 기능으로 지원)을 제공하여 프로세스를 최대한 번거롭지 않게하지만 이러한 경우에도 백업을 준비하는 경향이 있습니다.

동일한 커널의 여러 복사본을 갖는 경우도 마찬가지이지만 @goldilocks가 아래 주석에서 지적한 것처럼 커널이 손상되면 하드웨어 교체에 대해 생각해야합니다. 반면에 복제본을 다른 물리적 HDD에두면 문제가 발생할 수 있습니다. 그러나 커널 이미지 파일은 것을 염두에 두어야 부팅시 사용.


qns를 수정했습니다. 백업 커널을 사용하는 방법을 알려주십시오. (바람직하게는 같은 버전)
Mani

3
아무것도 할 필요가 없습니다. 이미 존재하지만 다른 버전입니다. 둘 중 하나를 직접 컴파일하지 않으면 동일한 버전을 두 개 가질 필요가 없습니다. 그렇지 않으면 동일한 사본 일뿐입니다. "손상"문제는 일종의 가짜입니다.이 논리에 따르면 bash바이너리가 손상되었거나 손상 등이있을 경우 전체 시스템의 동일한 사본 두 개가 필요하므로 libc시스템이 쓸모 없게됩니다. 이 파일들은 "손상되지"않아야합니다. 그렇다면 하드웨어를 교체하십시오.
goldilocks

1
@goldilocks 또는 결함이 발생한 위치에 따라 sysadmin을 교체하십시오.
Philip Kendall

@goldilocks는 업데이트 된 답변을 참조하십시오-특정 경우에는 의미가 있습니다. 분명히, 가능할 때마다 결함이있는 하드웨어를 교체하는 것이 좋습니다.
peterph
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.