누구든지 이 문제를 보고 해결하도록 도와줄 수 있나요? 저는 사전 설치된 서버(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
이 설치를 복원하려면 다음을 권장합니다.
- 다운로드 및 실행RIP 리눅스(11.7이 내가 선호하는 버전입니다, 비록 거기에13.7도 사용 가능); ISO 부팅에 문제가 있는 경우 RIP Linux의 경우 커널과 rootfs.cgz를 initrd로 부팅하는 것만으로도 충분하며 기존 설치에서 부팅하는 것도 매우 간단합니다.
gparted
새 루트 파티션을 위한 공간을 확보하기 위해 /home 파티션의 크기를 조정합니다.- ext4 파일 시스템과 같은 새 루트 파티션을 생성합니다.
rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /mnt/your-old-root/* /mnt/your-new-root/
루트 파티션 복제 의 경우/mnt/your-new-root/etc/fstab
새/
파티션을 올바르게 마운트하려면 파일을 편집하세요./home
root=UUID=xxxxx
새 루트 파티션의 새 UUID와 일치하도록 부트로더(예: GRUB/GRUB2) 커널 매개변수( 읽기)를 편집합니다 ( 참조ls -l /dev/disk/by-uuid/
).- 시스템을 재부팅하고 새 루트 파티션을 사용하는지 확인합니다.
노트:수행할 작업의 중요성으로 인해 백업 및 백업 수행을 고려해야 합니다.언제나질문이 있는 경우 공식 문서를 참조하세요. 그렇지 않으면 상황이 깨질 것입니다.
답변2
이 게시물은 약간 오래되었지만 똑같은 문제(Debian도 마찬가지)가 있었고 루트로 다음 명령을 실행하여 해결했습니다.
apt-get clean
제 경우에는 2G의 rootfs를 확보했습니다(이유는 신이 아실 겁니다).
다음 링크에서 이 팁을 얻었으며 매우 포괄적인 것으로 보입니다.
답변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