대형 하드 드라이브의 전체 rootfs, 소프트웨어를 설치하거나 업데이트할 수 없음

대형 하드 드라이브의 전체 rootfs, 소프트웨어를 설치하거나 업데이트할 수 없음

누구든지 이 문제를 보고 해결하도록 도와줄 수 있나요? 저는 사전 설치된 서버(Debian GNU/Linux 7.6 (gasp))에 디스크 공간이 정말 형편없이 분할되어 있습니다... :-( 하드 드라이브는 크지만 다음과 같이 분할되어 있습니다:

rootfs                                                     323M  320M     0 100% /
udev                                                        10M     0   10M   0% /dev
tmpfs                                                      406M 1012K  405M   1% /run
/dev/disk/by-uuid/aa26072b-e0f4-4962-ba44-76d5e65346de     323M  320M     0 100% /
tmpfs                                                      5,0M     0  5,0M   0% /run/lock
tmpfs                                                      2,4G     0  2,4G   0% /run/shm
/dev/sda9                                                  531G  6,4G  498G   2% /home
/dev/sda8                                                  368M   11M  339M   3% /tmp
/dev/sda5                                                  8,3G  2,2G  5,8G  28% /usr

TARGET                       SOURCE                                                 FSTYPE      OPTIONS
/                            /dev/disk/by-uuid/aa26072b-e0f4-4962-ba44-76d5e65346de ext4        rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=order
├─/sys                       sysfs                                                  sysfs       rw,nosuid,nodev,noexec,relatime
├─/proc                      proc                                                   proc        rw,nosuid,nodev,noexec,relatime
│ └─/proc/sys/fs/binfmt_misc binfmt_misc                                            binfmt_misc rw,nosuid,nodev,noexec,relatime
├─/dev                       udev                                                   devtmpfs    rw,relatime,size=10240k,nr_inodes=214285,mode=755
│ └─/dev/pts                 devpts                                                 devpts      rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
├─/run                       tmpfs                                                  tmpfs       rw,nosuid,noexec,relatime,size=414996k,mode=755
│ ├─/run/lock                tmpfs                                                  tmpfs       rw,nosuid,nodev,noexec,relatime,size=5120k
│ └─/run/shm                 tmpfs                                                  tmpfs       rw,nosuid,nodev,noexec,relatime,size=2507080k
├─/home                      /dev/sda9                                              ext4        rw,relatime,user_xattr,barrier=1,data=ordered
├─/tmp                       /dev/sda8                                              ext4        rw,relatime,user_xattr,barrier=1,data=ordered
└─/usr                       /dev/sda5                                              ext4        rw,relatime,user_xattr,barrier=1,data=ordered

/opt링크 /home/opt/var링크 /home/var...

opt -> /home/opt
var -> /home/var

하지만 일부 소프트웨어를 실행하거나 설치할 때 항상 실패합니다 apt-get upgrade. 루트 파티션을 확장하거나 일부 moutpoint에 대한 심볼릭 링크를 만들 수 있는 방법이 있습니까? 도움을 주셔서 감사합니다.

답변1

이 설치를 복원하려면 다음을 권장합니다.

  1. 다운로드 및 실행RIP 리눅스(11.7이 내가 선호하는 버전입니다, 비록 거기에13.7도 사용 가능); ISO 부팅에 문제가 있는 경우 RIP Linux의 경우 커널과 rootfs.cgz를 initrd로 부팅하는 것만으로도 충분하며 기존 설치에서 부팅하는 것도 매우 간단합니다.
  2. gparted새 루트 파티션을 위한 공간을 확보하기 위해 /home 파티션의 크기를 조정합니다.
  3. ext4 파일 시스템과 같은 새 루트 파티션을 생성합니다.
  4. rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /mnt/your-old-root/* /mnt/your-new-root/루트 파티션 복제 의 경우
  5. /mnt/your-new-root/etc/fstab/파티션을 올바르게 마운트하려면 파일을 편집하세요./home
  6. root=UUID=xxxxx새 루트 파티션의 새 UUID와 일치하도록 부트로더(예: GRUB/GRUB2) 커널 매개변수( 읽기)를 편집합니다 ( 참조 ls -l /dev/disk/by-uuid/).
  7. 시스템을 재부팅하고 새 루트 파티션을 사용하는지 확인합니다.

노트:수행할 작업의 중요성으로 인해 백업 및 백업 수행을 고려해야 합니다.언제나질문이 있는 경우 공식 문서를 참조하세요. 그렇지 않으면 상황이 깨질 것입니다.

답변2

이 게시물은 약간 오래되었지만 똑같은 문제(Debian도 마찬가지)가 있었고 루트로 다음 명령을 실행하여 해결했습니다.

    apt-get clean

제 경우에는 2G의 rootfs를 확보했습니다(이유는 신이 아실 겁니다).

다음 링크에서 이 팁을 얻었으며 매우 포괄적인 것으로 보입니다.

https://wiki.maemo.org/Free_up_rootfs_space

답변3

du -x /루트 파일 시스템에서 무엇이 공간을 차지하고 있는지 확인하려면 실행하세요 .

320MB는 많지 않지만 단일 커널 패키지가 설치되어 있는 한 괜찮습니다. 재부팅하려는 버전을 제외한 모든 커널 버전을 제거합니다.

dpkg -l 'linux-image-*'어떤 커널 패키지가 설치되어 있는지 확인하려면 실행하세요 . uname -r현재 실행 중인 버전을 표시합니다. 하지만 마지막 재부팅 이후 커널이 업그레이드된 경우 이를 제거하고 최신 버전을 유지해야 합니다. 실행 중인 커널을 언로드할 수 있습니다. 이렇게 하면 모듈을 로드할 수 없으므로 모듈을 로드한 후 새 주변 장치를 연결하거나 새 네트워크 기능을 사용하지 못할 수 있습니다.

업그레이드 중에 두 개의 커널 패키지(실행 중인 커널과 최신 버전, 새 버전이 작동하는지 확인한 후 재부팅 후 이전 커널 제거)를 설치하는 것이 일반적이므로 루트 파티션을 계속 확대해야 합니다.

커널 패키지를 제거하는 것만으로는 충분하지 않은 경우 수행할 작업은 공간을 차지하는 항목에 따라 달라집니다. /bin, , 및 /etc의 상당 부분은 다른 파티션을 마운트하는 데 필요 /lib하므로 /sbin이러한 디렉터리를 다른 파일 시스템으로 이동할 수는 없습니다. 긴급 상황에서는 이동해도 /lib/modules괜찮을 수 있습니다(일반적으로 그렇지 않지만 이동하려는 파일 시스템에 루트 파티션과 다른 드라이버가 필요하지 않은 한 많은 구성에서는 가능합니다).

답변4

그냥 생각입니다. rootfs 파티션에 숨겨진 파일이 있을 수 있습니다. mnt에 rootfs를 다시 마운트하고 /mnt/home, /mnt/var, /mnt/opt, /mnt/usr, /mnt/dev, /mnt/sys/mnt/proc의 크기를 확인합니다 /mnt/run./mnt/tmp

mount --bind / /mnt
du -s /mnt/home /mnt/var /mnt/opt /mnt/usr /mnt/dev /mnt/proc /mnt/sys /mnt/run /mnt/tmp

이러한 디렉터리는 대부분 비어 있어야 합니다(해당 내용은 다른 파일 시스템에 있음). 내 시스템을 검사했는데 /mnt/dev실제로 일부 장치가 있습니다(부팅 시 필요할 수 있음).

문제가 되지 않으면 다음을 실행하세요.

du -s /mnt/*

아주 기본적인 참고로 제 노트북의 값은 다음과 같습니다.

7564    bin
8944    sbin
151284  lib
4       lib64
6928    etc
18288   boot

관련 정보