/boot 부분 메모리부족

처음 우분투 설치할 때 어떤 파티션으로 했는지는 기억이 나지 않습니다. ㅠㅠ
그런데 지금 시스템 업그레이드를 하는 중간에 boot부분에 메모리가 부족하다는 메세지가 뜹니다.
부트 부분의 메모리를 더 할당할 수 있는 방법이 있나요?
아니면 다시 처음부터 설치를 다시 해야하는 건가요??

/boot이면 보통 디스크 파티션입니다.

해당 파티션의 용량을 확인해 보시기 바랍니다.

용량이 부족하면 사용하지 않는 커널 들을 삭제하셔서 용량을 확보하시기 바랍니다.

[quote="mheego":2dyxj0tx]처음 우분투 설치할 때 어떤 파티션으로 했는지는 기억이 나지 않습니다. ㅠㅠ
그런데 지금 시스템 업그레이드를 하는 중간에 boot부분에 메모리가 부족하다는 메세지가 뜹니다.
부트 부분의 메모리를 더 할당할 수 있는 방법이 있나요?
아니면 다시 처음부터 설치를 다시 해야하는 건가요??[/quote:2dyxj0tx]

죄송하지만 조금만 자세히 설명해주실수 있으신가요?
제가 지금 이해한 바로는 지금 사용하고 있지 않은 디스크의 일부분을 /boot로 배정할 수 있다는 것 같은데요,
그 방법은 무엇인가요?

일단 /boot 파티션은 메모리와는 상관 없는 하드 파티션입니다.

/boot 파티션을 따로 주셨다는 의미는 홈 또는 루트의 파티션의 파일 시스템이 다를 수 있습니다.
즉 /boot는 ext4, 루트와 홈은 btrfs 또는 xfs등의 각기 다른 파일 시스템일 확률이 90% 이상 일 겁니다.

따라서 이 의미는 하드에 빈 공간이 없는 한 /boot 파티션의 용량 만을 늘릴 수 없다는 의미입니다.

만약 LVM과 같은 논리 볼륨 관리자와 같은 파티션을 이용 하여 설치하셨다면 사이즈를 늘려줄 수 있습니다.
그리고 홈과 루트의 파티션이 같은 ext4라면 둘 둥 하나의 크기를 줄인 후 /boot의 용량을 늘려 줄 수 있습니다.

저는 초보자라서 다른 방법이 있는 지는 알 수 없으나(아마 없을 겁니다.)
/boot 파티션의 사이즈가 최소 300MB, 최대 500MB 정도면 이상 없이 이용 가능하며
용량을 늘려 줄 수 없다면 설치된 커널 이미지 중 오래된 이미지를 삭제해 주는 방법으로 임시 변통할 수 있습니다.

아래의 코드를 참조 하십시오.

[code:38kadk1c]#!/bin/sh
prev=readlink /vmlinuz.old && prev=linux-image-${prev#*-}+
exec sudo apt-get -y purge ‘^linux-image-[0-9]’ linux-image-uname -r+ $prev[/code:38kadk1c]
적당한 이름으로 저장하시고 실행 권한을 주신 후 터미널에서 실행하시면
오래된 커널의 부트 이미지를 삭제 하게 됩니다.

이렇게 해서 /boot 파티션의 용량을 확보하게 됩니다.
다른 방법으로 현재 이용하고 있는 커널을 제외한 사용하지 않는 커널을
시넵틱을 이용하여 수동으로 삭제하는 방법도 있습니다.

하드에 빈 공간이 있거나 홈, 루트의 파티션 크기를 줄일 수 있다면 gparted와 같은 프로그램을 이용하시면 사이즈 조절이 가능 합니다.
단 마운트된 상태에서 조절 하시면 큰일 나므로 Live usb로 부팅하셔서 gparted로 조절하시기 바랍니다.

참고하시기 바랍니다.

제가 GUI 툴에 익숙하지 않아서 터미널 커맨드를 사용해서 설명드리겠습니다.

  1. /boot 디렉토리 혹은 파티션 용량 확인

[code:3m0axmft]$ df -h # 디스크의 파티션별 전체 크기와 사용량 보기
$ du -sh /boot # /boot 디렉토리 사용량 보기
67M /boot
[/code:3m0axmft]

  1. /boot 디렉토리 파일별 용량 확인하기

[code:3m0axmft]$ ls -alhS /boot
합계 57M
-rw-r–r-- 1 root root 19M Apr 15 15:38 initrd.img-3.13.0-24-generic
-rw-r–r-- 1 root root 19M Apr 12 03:46 initrd.img-3.13.0-18-generic
-rw------- 1 root root 5.6M Apr 11 05:11 vmlinuz-3.13.0-24-generic
-rw------- 1 root root 5.5M Mar 18 07:39 vmlinuz-3.13.0-18-generic
-rw------- 1 root root 3.3M Apr 11 05:11 System.map-3.13.0-24-generic
-rw------- 1 root root 3.3M Mar 18 07:39 System.map-3.13.0-18-generic
-rw-r–r-- 1 root root 1.2M Mar 18 07:39 abi-3.13.0-18-generic
-rw-r–r-- 1 root root 1.2M Apr 11 05:11 abi-3.13.0-24-generic
-rw-r–r-- 1 root root 175K Mar 12 21:31 memtest86+_multiboot.bin
-rw-r–r-- 1 root root 174K Mar 12 21:31 memtest86+.elf
-rw-r–r-- 1 root root 173K Mar 12 21:31 memtest86+.bin
-rw-r–r-- 1 root root 162K Apr 11 05:11 config-3.13.0-24-generic
-rw-r–r-- 1 root root 162K Mar 18 07:39 config-3.13.0-18-generic[/code:3m0axmft]

  1. 삭제할 커널 선택 및 삭제하기
    저는 현재 커널 버전 3.13.0-24와 3.13.0-18를 설치해서 사용중입니다.
    현재 동작 중인 커널 버전은 3.13.0-24 버전이지만 전통적으로 그 이전에 사용한 커널 버전도 남겨 둡니다.

[code:3m0axmft]$ uname -r
3.13.0-24-generic[/code:3m0axmft]

만약 커널을 계속 설치만하고 삭제하지 않으시면 위에서 보신대로 커널 하나 설치할때마다 대략 30MB 정도 공간을 차지합니다.

여기서 테스트로 3.13.0-18 커널 버전을 삭제해 보겠습니다.

[code:3m0axmft]$ dpkg -S /boot/vmlinuz-3.13.0-18-generic # 해당 파일이 속한 패키지명 확인
linux-image-3.13.0-18-generic: /boot/vmlinuz-3.13.0-18-generic

$ dpkg -l "3.13.0-18" | grep ^ii # 3.13.0-18 문자열이 들어가는 패키지들 확인
ii linux-headers-3.13.0-18
ii linux-headers-3.13.0-18-generic
ii linux-image-3.13.0-18-generic
ii linux-image-extra-3.13.0-18-generic[/code:3m0axmft]

위의 검색 결과대로 커널을 설치할때 제가 커널 헤더와 extra module 부분도 설치했나봅니다.

해당 커널을 삭제할때 같이 삭제하도록 하겠습니다.

[code:3m0axmft]$ sudo apt-get purge linux-headers-3.13.0-18 linux-headers-3.13.0-18-generic linux-image-3.13.0-18-generic linux-image-extra-3.13.0-18-generic
$ du -sh /boot
39M /boot[/code:3m0axmft]

자세히 설명한다고 했는데 부족한 부분이 있으면 다시 댓글 남겨주세요.

[quote="mheego":3m0axmft]죄송하지만 조금만 자세히 설명해주실수 있으신가요?
제가 지금 이해한 바로는 지금 사용하고 있지 않은 디스크의 일부분을 /boot로 배정할 수 있다는 것 같은데요,
그 방법은 무엇인가요?[/quote:3m0axmft]

두 분 모두 감사합니다. 덕분에 해결할 수 있는 실마리를 찾은 것 같네요.

그런데 제가 우분투를 뼛속까지 이해하고 있지는 못해서 추가 질문을 몇개 더 드리겠습니다. ㅠㅠ

우선, workman729님
알려주신 코드를 실행시켜보았습니다. 그런데 /boot의 남은 용량이 크게 달라지지 않았습니다. ㅠ

ihavnoth님
$uname -r
3.2.0-58-generic-pae
저는 위와 같은 결과가 나왔습니다.
$ls -alhS /boot
위의 명령어를 이용해서 확인해봤더나 3.2.0-**의 커널들이 설치되어 있더라구요.
그럼 **이 58이 아닌 모든 파일을 삭제해도 되는 건가요??

현재 xxxx-58 버전을 사용중이시고 부팅에 아무런 문제가 없고 앞으로 이 버전을 사용하실 거라면

나머진 모두 삭제하셔도 됩니다.

하지만 보통 전통적으로(???) 새로운 버전의 커널이 나오면

커널을 업데이트한 후 기존에 정상적으로 동작하던 커널 버전 한개 정도는 남겨둡니다.

혹시 새로운 커널를 사용하다 문제가 발생했을때 이전에 사용하던 안정적인 버전으로 부팅해서

문제를 해결해야할 경우가 생길 수도 있기 때문입니다.

[quote="mheego":3ru4m47z]두 분 모두 감사합니다. 덕분에 해결할 수 있는 실마리를 찾은 것 같네요.

그런데 제가 우분투를 뼛속까지 이해하고 있지는 못해서 추가 질문을 몇개 더 드리겠습니다. ㅠㅠ

우선, workman729님
알려주신 코드를 실행시켜보았습니다. 그런데 /boot의 남은 용량이 크게 달라지지 않았습니다. ㅠ

ihavnoth님
$uname -r
3.2.0-58-generic-pae
저는 위와 같은 결과가 나왔습니다.
$ls -alhS /boot
위의 명령어를 이용해서 확인해봤더나 3.2.0-**의 커널들이 설치되어 있더라구요.
그럼 **이 58이 아닌 모든 파일을 삭제해도 되는 건가요??[/quote:3ru4m47z]

구문에 에러가 있군요! 죄송합니다.(옛날거라서…^^)

뭐 수동으로 하셔도 상관 없습니다만 아래 처럼 하셔도 됩니다.
터미널에서 실행하시면 됩니다.

[code:1af8m1cb]dpkg -l ‘linux-’ | sed ‘/^ii/!d;/’"$(uname -r | sed "s/(.)-([^0-9]+)/\1/")"’/d;s/^[^ ]* [^ ]* ([^ ])./\1/;/[0-9]/!d’ | xargs -p sudo apt-get -y purge[/code:1af8m1cb]

/boot/ 가 90% 이상 차 있어서 찾다가 이 글 보고
큰도움이 되었습니다.
저는 Ubuntu 12.04.4 LTS (GNU/Linux 3.2.0-38-generic x86_64) 쓰고 있습니다

[code:3s5vlvl2]
$ uname -r
3.2.0-38-generic
[/code:3s5vlvl2]
그리고 /boot/를 보니

[code:3s5vlvl2]
-rw------- 1 root root 4965968 5월 22 2012 vmlinuz-3.2.0-24-generic
-rw------- 1 root root 4968592 2월 19 2013 vmlinuz-3.2.0-38-generic
-rw------- 1 root root 4981616 2월 19 13:33 vmlinuz-3.2.0-60-generic
[/code:3s5vlvl2]
관련 이미지들이 이렇게 나열됩니다.
원래는 /boot/vmlinuz-3.0.0-12-server 도 있었는데 답변대로 삭제했습니다.
저같은 경우에는 3.2.0-24 이 바로 하위 버젼같은데요.
3.2.0-60 이것도 지워도 되나 싶어서 질문드립니다.
생성시간도 3.2.0-60 은 시간으로 나오는것 같아서 지워도 되나 혼돈이 되네요.

[code:3s5vlvl2]
-rw------- 1 root root 4981616 2월 19 13:33 vmlinuz-3.2.0-60-generic
[/code:3s5vlvl2]

좋은 정보 얻어갑니다. 감사합니다. (_ _)

[quote="ihavnoth":3s5vlvl2]제가 GUI 툴에 익숙하지 않아서 터미널 커맨드를 사용해서 설명드리겠습니다.

  1. 삭제할 커널 선택 및 삭제하기
    저는 현재 커널 버전 3.13.0-24와 3.13.0-18를 설치해서 사용중입니다.
    현재 동작 중인 커널 버전은 3.13.0-24 버전이지만 전통적으로 그 이전에 사용한 커널 버전도 남겨 둡니다.

[code:3s5vlvl2]$ uname -r
3.13.0-24-generic[/code:3s5vlvl2]
[/quote:3s5vlvl2]

저 또한 고맙고 감사합니다!
명문이요 명필이요
아름다운 cmd작업입니다 ㅠㅠ

[quote="developkim":127hv2x3]저같은 경우에는 3.2.0-24 이 바로 하위 버젼같은데요.
3.2.0-60 이것도 지워도 되나 싶어서 질문드립니다.
생성시간도 3.2.0-60 은 시간으로 나오는것 같아서 지워도 되나 혼돈이 되네요.[/quote:127hv2x3]

Version number로 보아 3.2.0-60이 최신 버젼이므로 별 문제가 없다면 이것을 사용하시는 것이 바람직해 보입니다. 이 kernel로 부팅하셔서 문제가 없는지 점검해 보시고 문제가 없다면 이것을 사용하세요. 보안 업데이트도 있을 수 있으므로 최신 버젼을 사용하는 것이 바람직합니다.

/boot 영역이 충분하다면, 모두 그래도 두시고, 스페이스가 더 필요하시다면, 3.2.0-60은 사용하니 암겨두고, 3.2.0-38은 만약을 위하여 남겨두시고, 3.2.0-24를 없애는 것이 바람직해 보입니다.

그리고, 지우고 나면, update-grub을 해 주세요.

[attachment=0:156lq5ja]ubuntu-tweak.png[/attachment:156lq5ja]

14.04 desktop에서는 cmd 작업이 불편하시면, GUI 에서도 할 수 있습니다. 서버에서는 안되겠지만요.
위 그림을 보세요. 앱 이름은 [url=http://blog.ubuntu-tweak.com/2014/04/21/ubuntu-tweak-0-8-7-released-14-04-ready.html:156lq5ja]Ubuntu Tweak[/url:156lq5ja]입니다. 12.04 LTS에서도 똑같이 할 수 있습니다. Ubuntu Tweak의 설치는 다음과 같이 합니다.

[code:156lq5ja]
sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak
[/code:156lq5ja]