apt-get : 장치에 남은 공간이 없습니다 (12.04)


42

나는 내가 찾을 수있는 모든 스레드를 읽었습니다. 심지어 다른 곳에서 질문에 답변되었다고 말하는 것조차도, 내가 가지고있는 특정 문제를 다루는 것은 없습니다. Update Manager가 충족되지 않은 종속성과 관련된 오류를 실행하고 생성했으며 apt-get install -f 를 사용하여 제안했는데이 메시지와 함께 실패합니다.

Unpacking linux-headers-3.5.0-36 (from .../linux-headers-3.5.0-36_3.5.0-36.57~precise1_all.deb) ...
dpkg: error processing /var/cache/apt/archives/linux-headers-3.5.0-36_3.5.0-36.57~precise1_all.deb (--unpack):
 unable to create `/usr/src/linux-headers-3.5.0-36/arch/arm/mach-iop32x/include/mach/glantank.h.dpkg-new' (while processing `./usr/src/linux-headers-3.5.0-36/arch/arm/mach-iop32x/include/mach/glantank.h'): No space left on device

마지막 5 단어 장치에 남은 공간이 충분하지 않지만 df와 du 모두 적절한 공간을 표시 한다고 생각합니다 . 어떤 기기에 더 많은 공간이 필요한지 궁금합니다.

출발 df -h

Filesystem 
Size Used Avail Use% 
Mounted on /dev/sda1 5.5G 4.4G 786M 86% 
/ udev 996M 4.0K 996M 1% 
/dev tmpfs 402M 880K 401M 1% 
/run none 5.0M 0 5.0M 0% /run/lock none 1004M 156K 1004M 1% 
/run/shm /dev/sdb1 30G 1.4G 27G 5% 
/home /dev/sdc1 299G 31G 268G 11% /media/HD-PCTU2 

루트 파티션에 공간이 있습니까?
don.joey

1
(i) 출력 df -h및 (ii) 출력을 붙여 넣으십시오 mount. dpkg는 작업이 완료된 후 파일을 정리하므로 실제로 그렇지 않은 경우 충분한 공간이있는 것처럼 보일 수 있습니다. apt-get cleandpkg를 시작하기 전에 실행 을 고려하십시오 .
1 월

1
모니터 할 watch -n 1 df -h을하는 동안 터미널에서 apt-get install(이 조금 느려지 며 당신 I / O하지만 당신은 파일 시스템이 너무 작 알 것이다)
엠마뉴엘

3 대 중 1 대의 컴퓨터에서 Ubuntu 14.04 및 커널 버전 3.13.0.108에서도 문제가 발생합니다. askubuntu.com/questions/223143/…으로 시작 했지만 여기에 표시된 답변은 같은 줄에 있습니다.
XavierStuvw

답변:


48

방금이 같은 문제가 발생했습니다. 다른 곳에서 inode에 대해 언급하고 inode 사용을 확인하기 위해 터미널에서 실행했습니다.

  df -i 

이것은 99 %에서 inode 사용을 보여 주었다. 따라서 디스크에 충분한 공간이 남아 있지만 inode 수의 한계로 인해 더 많은 파일을 만들 수 없었습니다. 일부 디스크 정리는 내 문제의 해결책이었습니다.


6
오래된 커널을 자동으로 제거하지 않는 커널 업데이트로 인해 동일한 문제가 발생했습니다. 모든 커널 업데이트의 Linux 헤더는 상당한 수의 inode를 차지합니다! --- 내 "안전"솔루션은 다른 파일 시스템이 커널 헤더 디렉토리를 이동했다 : cd /usr/src ; cp -a linux-headers-3.2.0-3{2,3}* /home/tmp-hdr ; rm -r linux-headers-3.2.0-3{2,3}*, apt-get-install -f:, 다른 헤더 올바른 방법으로 제거 apt-get purge linux-headers-...에 TMP 뒷면에서 헤더를 이동 : cd /usr/src ; cp -a /home/tmp-hdr/* .. 을 사용하여 이전 커널을 더 제거하십시오 apt-get purge.
pabouk

1
활동이 적은 버그 보고서에 참여하는 것을 고려하십시오 : 버그 # 1089195 리눅스 헤더는 LTS에서 inode를 먹을 것입니다. , Bug # 690911 포맷없이 설치하면 오래된 커널을 제거하지 못함
pabouk

@pabouk dpkg --purge linux-headers-3.2.0-3{2,3}*; apt-get -f install복사가 필요하지 않도록 사용할 수 있었는지 궁금 합니다.
jarno

@jarno 오랜 시간이 지났지 만 dpkg 또는 apt 데이터베이스를 사용하는 모든 명령이 실패했다고 생각합니다. 자동 업그레이드 중에 불충분 한 수의 inode로 인해 종속성이 손상되고 다른 불일치가 원인이라고 생각합니다.
pabouk

스크립트 가 게시 sudo linux-purge --fix되면 필요한 디스크 정리를 수행 할 수 있습니다 .
jarno

37

부트 파티션에 오래된 커널 이미지가 가득 차서 새 파티션 apt-get을 설치할 공간이 없다고 생각합니다 . 입력 할 수 있습니다

dpkg -l linux-headers-\* linux-image-\* | grep ^ii

터미널 창에. 이렇게하면

ii  linux-headers-3.8.0-18                    3.8.0-18.28                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-18-generic            3.8.0-18.28                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-19                    3.8.0-19.30                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-19-generic            3.8.0-19.30                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-21                    3.8.0-21.32                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-21-generic            3.8.0-21.32                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-22                    3.8.0-22.33                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-22-generic            3.8.0-22.33                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-23                    3.8.0-23.34                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-23-generic            3.8.0-23.34                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-25                    3.8.0-25.37                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-25-generic            3.8.0-25.37                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-generic                     3.8.0.25.43                            amd64        Generic Linux kernel headers

나는 꽤 많은 것을 가지고 있기 때문에, 가장 오래된 것 중 일부를 삭제할 수 있습니다.

sudo apt-get remove linux-headers-3.8.0-18

무료 apt-get패키지가 없어서 설치할 수없는 일부 패키지 종속성이 누락되어 실패하는 경우 dpkg직접 대신 사용할 수 있습니다 .

sudo dpkg --remove linux-headers-3.8.0-18

당신의 가장 오래된 몇 번 그것을 linux-headers-*하고 당신은 공간이 있어야합니다.


4
이것은 다른 문제를 밝힙니다. dpkg를 실행할 때마다 충족되지 않은 종속성이 있음을 알려줍니다. 다음 패키지에는 충족되지 않은 종속성이 있습니다. linux-headers-3.5.0-36-generic : 의존합니다 : linux-headers-3.5.0-36 공간이 충분하지 않아 설치되지 않습니다.
Don A

부팅 파티션을 망가 뜨리기 전에 사용자 파일을 백업 한 것일 수도 있습니다. 나는이 일을하는 데 결코 어려움이 없었지만, 그렇게했다면 다시 설치하는 데 필요한 모든 것이 있습니다. 물론, 나는 매일 백업을한다.
Marc

부팅 파티션을 망칠 필요가 없으며 끝없는 의존성 사이클을 벗어날 수있는 방법이 있기를 바랐습니다. 데이터를 백업하고 다시 시작하는 것이 더 쉬울 것입니다. 이제 오래된 아이템을 청소하는 것이 중요하다는 것을 알았으므로 습관을 들일 것입니다. 그들의 도움에 감사드립니다.
Don A

전혀 . . . 백업은 항상 좋은 생각이며 부팅 파티션을 많이 망칠 필요는 없으며 apt-get으로 일부 패키지를 제거하면됩니다. 케이크 조각이어야합니다. 문제가있는 경우 (또는 그렇지 않은 경우에도) 항상 데이터 백업을 제안하기 때문에 데이터 백업을 제안했습니다. 실제로 이러한 명령을 내 시스템에서 실행하여 테스트했습니다. 제거하는 데 3 분이 걸렸습니다 linux-headers-3.8.0-18.
Marc

1
에 대해 다시 실패하면 sudo dpkg --remove linux-headers-3.8.0-18제거 sudo dpkg --remove linux-headers-3.8.0-18-generic하고 다른 헤더를 가져옵니다.
Theson

16

나는 그것을 사용 sudo apt-get autoremove했고 오래된 커널 헤더 패키지를 제거했다. 그 후에 갈 수 있습니다.


필자의 경우 apt-get은 자동 제거를 거부하여 분류 할 깨진 패키지가 있다는 사실을 우선시했습니다. inode 포화로 인해 손상된 패키지가 발생했습니다. 이 AskUbuntu 스레드
XavierStuvw를

글쎄, 이것은 단지 나를 구했다! 업데이트 후 내 x 세션이 시작되지 않았습니다. 다시 로그인하라는 메시지가 표시됩니다. 나는 내 HD를 포맷해야한다고 생각했지만, 당신의 트릭은 저를 구했습니다 :)
user5193682

1
Lol 파일이 너무 많아서 실행할 수 없습니다 ...
Brian Leishman

2

내가 아는 한 Linux ext * 파일 시스템에서 inode의 한계는 약 40 억이지만 그다지 크지 않은 파일입니다. 따라서 문제는 무언가가 많은 파일을 생성한다는 것입니다. 먼저 이것을 확인하도록 제안 할 수 있습니다 : http://blog.scoutapp.com/articles/2014/10/08/understanding-disk-inodes 그래서 당신은 FS의 inode를 채우고있는 것을 찾을 것입니다. apt 캐시를 정리하도록 제안 할 수도 있습니다.

sudo apt-get clean

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