우분투 서버에 로그인 할 때, 커널, IP, 시스템 사용량 등의 정보를 아래와 같은 형태의 정보를 출력하게 설정해두었다. 그런데 오늘 특이한 사항이 눈에 보였다.
인터넷에서 찾아보니, 우분투 커널을 업데이트 하는 과정이 기존 커널을 업데이트 하는게 아니라, 최신 신규 커널을 추가적으로 설치하는 방식이라고 한다. 그래서 예전 커널이 남아 있어 용량을 차지하게 되는 것이다.
/boot 공간이 부족하게 되면 업데이트가 안되는 문제가 발생할 수 있다고 한다. 그러므로 옛날 커널을 삭제 할 필요가 있다.
설치된 커널 확인하기
최선 커널 확인한다.
하나씩 지정하는 방법
스크립트를 이용해서 삭제하는 방법
/boot 에 공간이 확보 됨을 볼 수 있다. 이전 커널을 다 삭제 해버리면, 현재 사용중인 커널에 문제가 있을 경우, 복구하는데 어려움이 있을 수 있다.
Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.2.0-53-generic x86_64)/boot 파티션의 용량이 90%를 넘은 것이다.
* Documentation: https://help.ubuntu.com/
System information as of Fri Oct 4 13:56:58 KST 2013
System load: 0.0 Processes: 92
Usage of /: 7.4% of 217.13GB Users logged in: 0
Memory usage: 14% IP address for eth0: xxx.xxx.xxx.xxx
Swap usage: 0%
=> /boot is using 90.7% of 227MB
Graph this data and manage this system at https://landscape.canonical.com/
인터넷에서 찾아보니, 우분투 커널을 업데이트 하는 과정이 기존 커널을 업데이트 하는게 아니라, 최신 신규 커널을 추가적으로 설치하는 방식이라고 한다. 그래서 예전 커널이 남아 있어 용량을 차지하게 되는 것이다.
/boot 공간이 부족하게 되면 업데이트가 안되는 문제가 발생할 수 있다고 한다. 그러므로 옛날 커널을 삭제 할 필요가 있다.
설치된 커널 확인하기
$ sudo dpkg --list 'linux-image*'
Desired=Unknown/Install/Remove/Purge/Hold예전에 사용했던 커널이 그대로 남아 있음을 확인할 수 있다. 최신 커널을 확인한 후, 예전 커널을 삭제하도록 하자.
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-===============================================-=======================================================
un linux-image <none> (no description available)
un linux-image-3.0 <none> (no description available)
rc linux-image-3.0.0-12-server 3.0.0-12.20 Linux kernel image for version 3.0.0 on x86_64
ii linux-image-3.0.0-16-server 3.0.0-16.29 Linux kernel image for version 3.0.0 on x86_64
ii linux-image-3.2.0-24-generic 3.2.0-24.39 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii linux-image-3.2.0-29-generic 3.2.0-29.46 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii linux-image-3.2.0-30-generic 3.2.0-30.48 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii linux-image-3.2.0-31-generic 3.2.0-31.50 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii linux-image-3.2.0-33-generic 3.2.0-33.52 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii linux-image-3.2.0-39-generic 3.2.0-39.62 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii linux-image-3.2.0-40-generic 3.2.0-40.64 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii linux-image-3.2.0-53-generic 3.2.0-53.81 Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii linux-image-server 3.2.0.53.63 Linux kernel image on Server Equipment.
최선 커널 확인한다.
$ uname -a최신 커널을 제외하고 삭제하자.
하나씩 지정하는 방법
$ sudo apt-get remove linux-image-3.0.0-12-server linux-image-3.0.0-16-server linux-image-3.2.0-24-generic linux-image-3.2.0-29-generic linux-image-3.2.0-30-generic linux-image-3.2.0-31-generic linux-image-3.2.0-33-generic linux-image-3.2.0-39-generic linux-image-3.2.0-40-generic
스크립트를 이용해서 삭제하는 방법
$ dpkg --get-selections|grep 'linux-image*'|awk '{print $1}'|egrep -v "linux-image-$(uname -r)|linux-image-generic" |while read n;do apt-get -y remove $n;done작업이 끝나면 용량을 확인해 보자.
$ df
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/user_id-root ext4 218G 16G 192G 8% /
udev devtmpfs 989M 12K 989M 1% /dev
tmpfs tmpfs 399M 720K 399M 1% /run
none tmpfs 5.0M 0 5.0M 0% /run/lock
none tmpfs 997M 0 997M 0% /run/shm
/dev/sda1 ext2 228M 27M 189M 13% /boot
/boot 에 공간이 확보 됨을 볼 수 있다. 이전 커널을 다 삭제 해버리면, 현재 사용중인 커널에 문제가 있을 경우, 복구하는데 어려움이 있을 수 있다.