오래된 커널을 삭제하는 것이 왜 안전하지 않습니까?


36

부팅 드라이브에 공간이 부족하여 이전 커널을 제거하기로 결정했습니다. : 나는 무엇을해야 정확하게 설명하는이 페이지를 찾을 수 루 분투 문서 : 제거 오래된 커널을 .

가장 오래된 커널을 수동으로 삭제했지만 이제는 괜찮습니다.이 기사의 끝에는 이전 커널 버전을 모두 삭제할 수있는 코드가 있지만 고급 사용자 전용으로 표시되어 있습니다.

나는 여기에 어떤 위험이 있는지 이해하지 못한다. 어리석게 들리지만 특정 머신에서 동시에 사용되는 커널이 두 개 이상있을 수 있다고합니다.

내 우분투 컴퓨터의 다른 응용 프로그램이 다른 커널을 동시에 사용할 수 있습니까? 이전 커널을 모두 삭제하면 자동으로 위험한 것으로 간주되는 이유는 무엇입니까?


8
실제로 기사에는 "위험"및 "안전하지 않은"이라는 단어가 없습니다. 어떻게 그렇게 과장된 결론을 얻었습니까?
mikewhatever

2
몇 번이나 최신 커널로 업그레이드하고 재부팅하기 전에 이전 커널을 제거했습니다. 특정 시스템에서 커널이 작동하지 않고 시스템이 부팅되지 않는 것을 확인했습니다. 이제 먼저 재부팅 한 다음 모든 것이 정상이면 이전 커널을 제거하십시오.
Matthew 읽기

답변:


50

오래된 커널을 제거하는 것이 본질적으로 안전하지는 않지만 모든 커널 을 제거 하고 재부팅하면 화끈한 Grub 화면이 나타납니다. 그 고정하는 것이 필요 상당한 노하우를 (같은 것을 그러나와 apt-get install linux-generic끝).

이 작업을 처음 수행하는 것은 매우 스릴이 있지만 Grub 메뉴를 정리하거나 일부 디스크 공간을 복구하려는 사람들은 스릴을 찾지 않습니다.

위험은 사용자가 코드 블록을-붙여 복사에서 오는 그들과 적용되지 않는 risks-을 인정하지 않고 -unbeknownst 그. 오래된 커널을 탐지하는 많은 예가 있으며 완벽하지는 않습니다. 나의 최신 노력 조차도 여전히 함정이 있습니다. 우리는 고칠 수있는 문제에 대해 이야기하고 있습니다. Ask Ubuntu의 많은 게시물은 잘못 사용하면 영구적 인 데이터 손실로 이어질 수 있습니다.

우리는 사용자에게 잠재적 인 문제를 의식하게하는 위험을 표시함으로써 피해를 막기 위해 노력합니다 . 최상의 시나리오에서 사용자는 문제를 처리 할 준비가되어 있고 최악의 경우 적어도 경고를받지 않았다고 불평 할 수 없습니다.


11
업데이트 된 커널을 설치했지만 아직 재부팅하지 않은 경우 모든 커널을 제거하지 말고 현재 실행중인 커널도 제거하지 마십시오. 왜? 업데이트 된 커널에서 문제가 발생하면 언제든지 Grub에서 이전 커널을 선택하고 다시 작동 할 수 있습니다. 그렇지 않으면 부팅 할 수없는 시스템으로 인해 "LiveCD 게임"(재미있는 게임이 아닌 BTW)을 플레이해야합니다.
Nathan Osman

1
거의 재미있다 dd if=/dev/zero of=/dev/sda bs=512 count=1. 나는 내가 뭘했는지 기억이 안납니다 (여러 부트 관리자가 인생을 귀찮게 만듭니다). LiveCD를 사용하여 파티션 테이블을 복구하는 데 약 7 시간이 걸렸습니다.
phyrfox

1
테스트되고 확실히 작동하는 하나의 커널을 유지하는 것이 쉽습니다. @NathanOsman-누군가가 실제로 추측 한 단어로 입력해야했습니다. 두 번째로 중요한 교훈은 여기서 얻은 결과를 모르는 일을하지 마십시오.
Nicolai

1
나는 "스릴"이라는 단어를 사용하지 않았지만 그 느낌은 강렬했습니다.
MDeBusk

과거에 커널 문제가 해결되었으므로 세 개의 커널을 남겨 두는 것이 훨씬 더 행복합니다. 나는 일반적으로 현재 실행중인 커널, 최신 커널 및 현재 커널 직전의 커널을 사용합니다. 이것은 나에게 재부팅시 최신 버전을 제공합니다. 아마도 과잉이지만 CYA 승인을 받았습니다.
flickerfly

4

이전 커널은 패키지의 일부입니다. 방금 제거 /boot/vmlinuz-3.13.0-44-generic하면 포장 부스러기가 온통 떠납니다.

먼저, 어떤 커널을 실행하고 있는지 확인하십시오. 이 값을 가진 이름은 삭제하지 마십시오.

$ uname -r  
3.13.0-49-generic  

YMMV. 그런 다음 dpkg무엇을 알고 있는지 물어보십시오 .

$ dpkg -l linux-*

이러한 패키지 중 일부는 제거 할 수 있지만 다른 패키지는 무엇입니까? 의 출력에서 ​​(내 시스템에서) 추출 한 줄 사용 dpkg -l linux-*:

 ii  linux-image-3.13.0-44-generic       3.13.0-44.73           amd64                  Linux kernel image for version 3.13.0 on 64 bit x86 SMP

이제 다른 패키지 -3.13.0-44의 이름 이 무엇인지 살펴 보겠습니다 .

$ dpkg -l *-3.13.0-44*

현재 커널 ( uname -r)이 패키지 목록에 없는지 마지막으로 확인하면 선택한 패키지 관리 시스템을 통해 제거 할 수 있습니다.


0

마지막으로 오래된 커널을 제거했을 때 오래된 코드 스 니펫을 빌 렸습니다. 글쎄,이 코드 조각은 새 커널을 설치 한 후 재부팅해야했기 때문에 커널이 없어졌습니다. 운 좋게도 다시 부팅하기 전에이 문제가 발생했지만 다른 사람들이 말했듯이 "angry grub screen"이 남아있을 수 있습니다.

간단히 말해 간단하게 엉망이되어 복구하기 어려운 브릭 시스템을 만듭니다.


0

안전하지 않습니다. Linux를 사용하면 올바른 명령을 알고 있으면 원하는 것을 정확하게 수행 할 수 있습니다.

에서 /boot디렉토리, 당신은 간단한 작업을 수행 할 수 있습니다 ls -laA가 긴 같은 숨겨진 파일이나 디렉토리를 찾을뿐만 아니라 목록을 가지고 (어떤이있는 경우가 안된다!).

이 정보에서 날짜 및 이전 버전의 파일을 평가할 수 있습니다. 모든 파일을 제거하지 말고 동일한 버전에 해당하는 가장 오래된 파일을 제거하십시오.

언젠가 소스에서 커널을 컴파일 한 경우 새로운 커널을 수정해야 할 수도 있다고 생각했습니다. .config나는 당신의 설명에 따라 경우라고 생각하지 않습니다 파일, 거기에 남아있을 것입니다.

따라서 단일 버전에 해당하는 이전 파일을 삭제 한 후 시스템을 재부팅 한 후 커널 패닉이 발생할 수 있습니다.

간단한 해결책은 라이브 USB 또는 CD / DVD Linux로 시스템을 부팅하는 것입니다. chroot여기에 같은 툴을 사용하여 커널을 다시 빌드하십시오 dracut.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.