업그레이드시 디스크 여유 공간이 부족합니다


142

일일 업데이트를 시도 할 때 소프트웨어 업데이터에 오류가 발생합니다. 그것은 말한다 :

The upgrade needs a total of 25.3 M free space on disk `/boot`.
Please free at least an additional 25.3 M of disk space on `/boot`.
Empty your trash and remove temporary packages of former installations 
using `sudo apt-get clean`.

sudo apt-get clean터미널에 입력을 시도 했지만 여전히 메시지가 나타납니다. 내가 읽은 모든 페이지는 숙련 된 우분투 어를위한 것 같습니다. 우분투 12.10을 실행 중입니다. 13.04로 업그레이드하고 싶지만 먼저 완료해야합니다.

이것은 cat /etc/fstab터미널에 입력 한 결과입니다 .

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/ubuntu-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=fa55c082-112d-4b10-bcf3-e7ffec6cebbc /boot           ext2    defaults        0       2
/dev/mapper/ubuntu-swap_1 none            swap    sw              0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0
matty@matty-G41M-ES2L:~$ 

출력 df -h:

Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/ubuntu-root  915G   27G  842G   4% /
udev                     984M  4.0K  984M   1% /dev
tmpfs                    397M  1.1M  396M   1% /run
none                     5.0M     0  5.0M   0% /run/lock
none                     992M  1.8M  990M   1% /run/shm
none                     100M   52K  100M   1% /run/user
/dev/sda1                228M  222M     0 100% /boot
matty@matty-G41M-ES2L:~$ 

그리고 다음을 dpkg -l | grep linux-image제공합니다.

ii linux-image-3.5.0-17-generic 3.5.0-17.28 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-18-generic 3.5.0-18.29 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-19-generic 3.5.0-19.30 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-21-generic 3.5.0-21.32 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-22-generic 3.5.0-22.34 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-23-generic 3.5.0-23.35 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-24-generic 3.5.0-24.37 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-25-generic 3.5.0-25.39 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-26-generic 3.5.0-26.42 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
iF linux-image-3.5.0-28-generic 3.5.0-28.48 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP

1
또한 / etc / fstab의 내용이 도움이 될 수 있습니다. / boot가 별도의 파티션에 마운트되어있는 것 같습니다.
척 R

1
@Githlar가 말한 것처럼 fstab은 HD 파티션에 대한 정보를 제공 할 수 있습니다.
소토

1
fstab은 컴퓨터를 부팅 할 때 마운트 된 파티션에 대한 정보가 들어있는 파일입니다. 이 파일의 내용을 보려면 cat /etc/fstab터미널에 입력하십시오 . 출력을 복사하여 질문에 추가하십시오 (질문을 편집 할 수 있음). 또한 df -h및 의 출력을 복사하십시오 dpkg -l | grep linux-image.
Alaa Ali

1
문제는 여유 공간을 사용 linux-image...하는 /boot파티션의 모든 추가 파일입니다. 파티션에 6MB의 여유 공간 만 있습니다. sudo dpkg -P purge 'older_linux_image_filename'최신 버전을 제외한 모든 버전을 제거하려면 = 3.5.0-28.48 및 3.5.0-26.42 이렇게하면 업데이트 / 업그레이드 할 수 있습니다.
douggro

2
방금이 sudo apt-get autoremove문제를 해결하기 위해 실행 해야했습니다.
Juampy NR

답변:


192

참고 :이 답변은 오래된 커널을 제거하는 가장 좋고 쉬운 방법을 제공하는 것보다 '설명'입니다. 오래된 커널을 제거하는 가장 좋은 방법은 다른 답변을 검토하십시오.

자, /etc/fstab당신이 게시 한 출력에서 귀하의 /boot파티션이 별도의 파티션에 마운트되어 있고 그 출력 df -h에서 해당 파티션이 가득 찬 것 같습니다. 불필요한 커널이 설치되어 있기 때문입니다. dpkg -l | grep linux-image게시 한 결과를보고 다른 버전의 " linux-image "를 두 개 이상 볼 수 있습니다 . 이전 버전을 제거해야합니다.

먼저 uname -r터미널 에서 명령을 실행하고 싶습니다 . 현재 사용중인 커널 버전이 표시됩니다. 우리는 그 커널 버전을 제거하고 싶지 않습니다. 명령은 다음과 같이 말할 것 입니다. 그 번호를 기록해 두십시오 ! 다음 명령은 이것이 실행중인 커널이라고 가정합니다.3.5.0-26-generic26

이전 커널 버전을 제거하는 명령은 다음과 같습니다.

sudo apt-get purge linux-image-x.x.x-xx-generic

... 여기서 x 문자는 숫자입니다. 따라서 귀하의 경우 이전 버전 (17, 18, 19 등)이 많기 때문에 다음과 같이 각 버전에 대해이 명령을 실행해야합니다.

  • sudo apt-get purge linux-image-3.5.0-17-generic
  • sudo apt-get purge linux-image-3.5.0-18-generic
  • sudo apt-get purge linux-image-3.5.0-19-generic

...등등. 그러나이 모든 작업을 하나의 명령으로 수행 할 수있는 방법이 있습니다. 명령은 이것입니다 ( 명령을 아직 실행하지 마십시오! 다음을 읽으십시오 ).

sudo apt-get purge linux-image-3.5.0-{17,18,19,21,22,23,24}-generic

이 명령은 대괄호에 언급 된 버전을 제거합니다. 다음과 같은 이유로 버전 25, 26 및 28을 포함하지 않았습니다.

  • 현재 실행중인 커널 버전이므로 26을 포함하지 않았습니다! 그것은 우리가 명령에서 얻은 버전입니다 uname -r. 기억하십니까? 우리는 그것을 제거하고 싶지 않습니다!
  • 업그레이드를 업그레이드하려고했기 때문에 28을 포함하지 않았습니다 ( iF다음 상태에서 "반 구성됨"을 알 수 있음).
  • 일반적으로 하나 이상의 이전 버전을 남겨 두는 것이 좋습니다. 25를 포함하지 않았습니다. 26을 실행하고 있으므로 25를 유지하므로 위의 명령에 포함시키지 않습니다.

따라서 마지막 숫자 uname -r가 26 (또는 28 또는 25)이면 위 명령을 실행하는 것이 안전합니다. 프롬프트가 표시되면 비밀번호를 입력하고 y요청 시 입력하십시오 . 이것은 많은 줄을 보여줄 것이고 결국에는 matty@matty-G41M-ES2L:~$오류없이 명령 프롬프트 (귀하의 경우 ) 로 돌아갈 것 입니다. 완료 df -h되면로 시작하는 마지막 행을보고 살펴보십시오 /dev/sda1. 이제 더 많은 공간이 있으며 사용 된 백분율이 이전과 같이 100 % 미만임을 알 수 있습니다. 이제 업데이트를 다시 진행할 수 있습니다.


1
작동했습니다 !!! 정말 고마워! 보너스 질문 : Ubuntu를 처음 다운로드 할 때 실수로 홈 영역의 "pictures"폴더를 삭제했습니다. 이 때문에 측면에 "사진"탭이 없습니다. "pictures"라는 폴더를 만들어이 문제를 해결했지만 사이드 바에는 표시되지 않습니다. 그곳에가는 방법을 알고 있습니까? 클릭과 드래그를 시도했지만 아무 소용이 없습니다. @Alaa
carmatt95

3
천만에요! 다른 질문에 대해서는 다른 질문을 작성하고 대답하겠습니다. 이런 식으로 문제를 찾는 사람들이 찾을 수 있습니다.
Alaa Ali

13
나는 그것을 참조하기 위해 돌아올 때마다 이것을 공표 할 수 있기를 바랍니다 ... 지금까지는 많이 있습니다.
sevenseacat

4
,, 다시 여기에 같은 것을 참조하십시오. 당신은 내가 지금까지 그것을 기억할 것이라고 생각할 것입니다.
sevenseacat

2
이전 커널을 모두 제거하는보다 간결한 명령은 다음과 같습니다.sudo apt-get autoremove --purge
ctrueden

42

Ubuntu-Tweak을 설치할 수 있습니다. 설치하려면 다음 단계를 따르십시오.

터미널을 엽니 다. 다음 명령으로 필요한 저장소를 추가하십시오.

sudo add-apt-repository ppa:tualatrix/ppa

다음 명령으로 소프트웨어 목록을 업데이트하십시오.

sudo apt-get update

마지막으로 다음 명령으로 Ubuntu Teak를 설치하십시오.

sudo apt-get install ubuntu-tweak

그런 다음 대시를 열고 "ubuntu tweak"을 입력하십시오.

그리고 이동 janitor탭을 선택 Apps, Personal그리고 System체크 박스를 클릭 clean오른쪽 하단에있는 버튼을 누릅니다.


9
커맨드 라인을 망쳐 놓고 모든 커널을 삭제하려고 시도하지만 다른 버전 (끝에 -32뿐만 아니라)과 -extra 패킷이있을 때 최신 커널을 삭제하지 않는 것이 좋습니다. 우분투 조정으로 5 분만 절약되었습니다. 감사합니다!
POMATu

훨씬 더 편리합니다.
Saeed Amiri

PPA를 추가 할 수는 없지만 .debproyect 웹 사이트 ubuntu-tweak.com
Luigi Siri

우분투 14.04에 PPA를 추가 할 필요가 없습니다
에드워드 토발즈

1
@edwardtorvalds 물론 .deb패키지로 PPA를 14.04 및 14.10에 추가하지 않고도 설치할 수 있지만 가장 바람직하지는 않습니다. PPA를 통해 설치하려는 이유는 업데이트를 보장하기 때문입니다.
αғsнιη

17

@Lekensteyn은 사용하지 않는 모든 커널과 헤더를 제거하는 빠른 방법을 제시 했습니다 . :

sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')") 

업그레이드하기에 충분한 공간이 확보되어야합니다.



3

내 집 우분투 시스템에서 게시 된 것과 비슷한 방법을 따르지만 조금 더 간단하고 더 많은 inc 커널 헤더 등을 지 웁니다.

  1. 방해하지 않는 것이 중요 하므로 사용중인 커널을 확인 합니다.

    uname -a
    
  2. 그런 다음, 실행중인 커널과 직접 관련 되지 않은 모든 커널 관련 파일을 제거하기 위해 / boot를 살펴 봅니다 . 제거하려는 모든 커널 버전의 목록이 표시됩니다 (예 : 3.5.0-17, 3.5.0-18).

    ls -l /boot
    
  3. 이제 퍼지 목록에서 첫 번째 커널 버전을 가져 와서 관련된 모든 패키지를 찾습니다.

    dpkg -l | grep 3.5.0-17
    
  4. 시스템에서 제거

    sudo apt-get purge <list of packages separated by spaces>
    
  5. 3으로 돌아가서 제거 목록에서 다음 커널 버전을 선택하십시오.

  6. 끝난


1

이 오류가 발생 하여이 기사가 도움이되었습니다.

나는 df -h부팅이 uname -r버전 이 가득 찼음을 확인한 purge다음 위에 나열된 문자열 을 사용하여 오래된 커널을 제거했습니다. 단일 커널 제거가 작동했지만 멀티는 그렇지 않았습니다.

나는 Windows에서 파일을 찾았습니다. 나는 그들을 삭제할 수 없었고 터미널을 사용해야했지만 거기에있는 이전 버전을 보여주었습니다.

왜 / boot (sda2)가 전혀 파티션되지 않았으며 왜 그렇게 작은 지 모르겠습니다. 하지만 이제 우분투 업데이터를 다시 사용할 수 있습니다.

나는 몇 가지 작은 성공 있었나요 sudo apt-get update, sudo apt-get upgrade, sudo apt-get clean, 또한 시도 무료 소프트웨어 Bleachbit합니다. 제거 문자열을 사용하지만 현재 버전에서는 사용하지 마십시오. 이것이 누군가를 돕기를 바랍니다.


편집 : 퍼지 문자열에 "일반"을 추가 할 필요가 없다고 생각합니다
Brian P

0

사용하지 않는 오래된 커널 이미지 패키지가 설치되어 있습니까? / boot에서 공간을 차지할 수 있습니다. 다음과 같은 명령으로 설치된 커널 패키지 세트를 검토하는 것이 좋습니다.

dpkg -l "linux-image*" | grep "^i"

설치 한 커널 이미지 패키지 세트에 대한 개요를 제공해야합니다. 사람들을 위해 리눅스 이미지 사용하지 않는 그이 복구를 위해 필요한 될 것으로 예상되지 않는다 패키지 - 예를 들어, 예를 들어, 내가 복구를 위해 설치 활성 버전 뒤에 적어도 하나 개의 커널 버전을 유지하려면 - 그렇지 않으면, 적성과 같은 자주 사용하는 패키징 도구를 사용하여 사용하지 않는 패키지를 제거 할 수 있습니다.

또한 사용하지 않는 linux-image 패키지 와 함께 설치 될 수 있는 관련 inux-headers , linux-image-extras (해당되는 경우), linux-sourcelinux-tools 패키지를 살펴 보는 것이 좋습니다 .


0

많은 사람들이이 문제에 부딪치게 될 것 같지는 않지만, 누군가가 필요로 할 경우를 대비하여 여기에 문서화 할 것입니다.

내 문제는 공간이 부족해질 때까지 다른 사용자 지정 커널을 컴파일하고 있다는 것입니다. 공간을 정리하는 방법은 내가 작업했던 각 커널 디렉토리에 들어가서를 실행하는 것이 었습니다 sudo make clean.

  • $ cd /usr/src 커널 소스가있는 디렉토리
  • $ cd linux-image-custom_kernel_name
  • $ sudo make clean

0

marianoju 의 답변이 실제로 도움 이 되었지만을 사용하여 오류가 발생했습니다 apt purge. 강제 옵션을 찾을 수 없습니다.

더 낮은 레벨의 dpkg를 결합하면 계속 진행할 수있었습니다.

sudo dpkg -r $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' \
               | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")

0

아래 명령을 사용하여 오래된 커널 이미지 패키지를 제거 할 수 있습니다.

sudo apt autoremove

그 후 당신은 업데이트 할 수 있습니다

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