내 기계 중 하나는2GB EeePC 서핑, 리소스가 매우 제한된 간단한 넷북입니다. 지금은 너무 제한적이에요22MB여유 공간이 남아 있습니다.
그러기 위해 난 달리고 있어아키텍처Linux그리고언박싱DE와 모바일 PC로서의 광범위한 애플리케이션.
불필요한 공간 사용을 제거할 수 있는 방법이 있습니까?
답변1
다음 사항부터 시작할 수 있습니다.
시스템에 설치된 패키지를 검토
pacman -Q
하고 불필요한 패키지를 제거하십시오.-t
스위치를 추가하는 것이 좋은 시작일 수 있습니다 .현재 설치된 패키지에 필요하지 않은 패키지로 출력을 제한하거나 필터링합니다.
팩맨 패키지 캐시 정리
pacman -Sc
pacman -Rs
사용하지 않는 패키지 종속성을 제거하는 데 항상 사용됩니다 .디스크의 대부분을 사용하는 "대용량 파일"과 폴더를 찾는 데 유용한 추가 기능은
du
이xdiskusage
작은 도구를 사용하여 파일 시스템을 빠르게 탐색하고 폴더의 디스크 사용량을 그래픽으로 표시하는 것입니다.
답변2
경고: 이 아이디어는 일반적인 Linux와 Arch Linux에 능숙한 사용자에게만 해당됩니다.
위험한 영역으로 들어가고 싶다면 기본 Arch 설치를 500MB 미만으로 줄일 수 있습니다. 이를 위해서는 매우 위험한 작업을 수행해야 합니다.
- 불필요한 로케일 모두 제거(포함)
- 시스템을 실행하는 데 필요하지 않은 펌웨어 파일을 제거합니다(에서
/usr/lib/firmware
). - 시스템을 실행하는 데 필요하지 않은 커널 모듈을 제거합니다(에서
/usr/lib/modules/...
). - 그 안의 모든
.a
파일을 삭제합니다/usr/lib
(소프트웨어를 컴파일하기 위해 시스템을 사용한 적이 없는 경우에만 해당됩니다. 참고: 여기에는 를 사용하는 것도 포함됩니다makepkg
). - 모든 것을 제거합니다
/usr/include
(소프트웨어를 컴파일하기 위해 시스템을 사용하지 않는 경우에만). /usr/share/doc
원하지 않는 문서를 제거하세요./usr/share/info
- (서버를 제외하고는 매우 나쁜 생각입니다.) 맨 페이지를 다음에서 제거하십시오.
/usr/share/man
- (또한 나쁜 생각) 불필요한 터미널 설명자
/usr/share/terminfo
와 불필요한 시간대 파일을 다음에서 제거하십시오./usr/share/zoneinfo
- (위험) 실행 가능한 바이너리가 포함된
strip *
모든 폴더에서 실행합니다 ./usr/bin
/usr/sbin
- (극단적인 경우) 더 큰 바이너리 압축과 같은 도구를 사용하십시오.
upx
(Samba 바이너리는 일반적으로 정적으로 컴파일되므로 크기가 매우 커지는 경향이 있기 때문에 이에 적합합니다.) 또한 사용한다는 것은upx
압축된 바이너리 전체가 RAM에 맞아야 함을 의미합니다. 실행 중에는 RAM이 부족한 시스템에 주의하세요.
작업을 수행하기 전에 시스템을 완전히 백업하십시오. 다행히도 Linux에서는 이 작업이 상대적으로 쉽습니다. 외부 볼륨(예: USB 드라이브)을 연결하고 마운트할 수 있으면 cd / && tar -cf /mnt/usb/mySystem.tar /
전체 시스템을 백업하는 등의 작업을 수행할 수 있습니다.
다시 한 번 말씀드리지만, 위의 작업(특히 7~9단계)은 실제로 권장하지 않습니다.Linux 내부 및 Arch Linux에 대한 심층적인 지식, 경험 및 이해. 내가 나열한 거의 모든 파일을 사용하면 시스템이 끔찍한 방식으로 손상될 수 있으므로 경고를 받았습니다. 시스템에 특정 펌웨어 파일, 모듈 등이 필요한지 모르는 경우, 문제를 일으키기 전에 조사해 보십시오. (시스템에 필요한 커널 모듈을 제거하면 시스템이 부팅되지 않거나 시스템이 키보드/네트워크 카드/사운드/모니터/등을 지원하지 않거나 기타 설명할 수 없는 다양한 동작이 발생할 수 있습니다.)
또한 모든 패키지 업그레이드는 위에서 삭제한 많은 파일을 복원할 수 있으며 복원된다는 점에 유의하세요. 이 방법을 사용하기로 결정했다면 불필요한 파일을 제거하는 스크립트를 작성하고 모든 주요 패키지 업그레이드 후에 스크립트를 실행하는 것이 좋습니다. (예: 커널을 업그레이드하면 모든 커널 모듈이 복구되고, 종속성을 통해 linux-firmware 패키지를 업그레이드하면 그 안에 있는 모든 펌웨어가 복구됩니다 /usr/lib/firmware
.)
/var/log
마지막으로, 시간이 지남에 따라 로그 파일이 늘어나는 것을 주시하십시오 . 과거 저널을 삭제할 수 있지만 rm *\@*.journal
저널 폴더에서 비슷한 작업을 수행하여 현재 저널을 유지할 수 있습니다.
저는 이러한 기술을 사용하여 몇 달 동안 512MB 디스크 모듈 장치에서 NAS 서버를 성공적으로 실행해 왔지만 여전히 마음이 약하지는 않습니다. (저도 단 128MB의 저장 공간에서 LinuxFromScratch를 사용하여 유사한 프로젝트를 구축했지만 이는 또 다른 이야기입니다...)
편집/추가:
추가 공간을 확보할 수 있는 몇 가지 다른 방법은 다음과 같습니다.
을 제거하십시오
libgo
. 이libgo
라이브러리는gcc-libs
Go 언어로 작성된 애플리케이션과 함께 제공되고 사용됩니다. 이 라이브러리가 필요한 응용 프로그램을 사용할 수 없습니다. 내 시스템의 크기는 40MB입니다. 체중 감량을 시도할 때 여유 공간이 너무 많습니다. 나는 내가 하는 어떤 일에도 아무런 악영향을 주지 않고 "미니" 설치에서 그것을 제거했습니다. (그러나 다시 말하지만, 그것은 바로 나입니다, YMMV!)줄어들고 있습니다
libicudata.so
. 내 시스템에서는 27MB입니다. 기본적으로 라이브러리 개체로 압축된 유니코드/로케일 데이터 묶음입니다. 이 파일의 더 작은 버전을 만드는 온라인 도구가 있지만 현재 버전에 대해 업데이트되지 않았습니다. (그리고 새 버전에서는 이전 파일을 사용할 수 없습니다.) 수동으로 시도한 적이 없습니다. 하지만 어떻게 해야 할지 알 수 있다면 파일을 약 20-22MB 정도 줄일 수 있습니다.Python을 사용하는 경우
test
python2:에서 라이브러리를 제거하면 약 37MB를 절약 할 수 있고rm -r /usr/lib/python2.7/test
python3:에서 라이브러리를 제거하면 약 66MB를 절약할 수 있습니다rm -r /usr/lib/python3.6/test
..pyo
또한 Python을 사용하면 파일 과 파일을 제거할 수 있습니다.py
. 이러한.pyo
파일은 "최적화된" 파일이지만 Python은 실제로 이를 사용하지 않습니다. 이.py
파일은 표준 라이브러리의 원본 소스 코드입니다. Python 코드를 실행할 때 Python이 일반적으로 읽는 유일한 파일은.pyc
(파이썬 컴파일된) 파일입니다.cd /usr/lib/python2.7 && find . -name "*.pyo" -exec rm -v {} \;
그리고cd /usr/lib/python3.6 && find . -name "*.pyo" -exec rm -v {} \;
불필요한 로캘 데이터를 제거합니다. 이 작업을 자동으로 수행하는 AUR이라는 패키지가 있습니다
localepurge
. 그렇지 않으면 실내에서 놀아야 합니다/usr/share/locale
. 로케일과 를 유지해야 합니다locale.alias
. 미국에서는 다른 모든 것을 유지en_US
하고locale.alias
삭제하면 약 80MB가 절약됩니다.
이제 제가 보고 싶은 것은 시스템을 분석하고 필요한 커널 모듈과 필요한 펌웨어 파일을 결정할 수 있는 도구입니다. 이는 이러한 폴더를 "안전하게" 정리하는 좋은 방법이 될 것입니다...
uClibc
아니면 누군가가 비슷한 것을 사용하는 아치 "배포판"을 만들어야 할 수도 있습니다 diet-libc
. 이것은 재미있는 여름 프로젝트가 될 수 있습니다. :-)
답변3
총 길이 DR
journalctl --vacuum-size=100M #remove all logs, only retain 100mb
pacman -Scc #remove all package installation files (obsolete and current)
pacman -S bleachbit
bleachbit -c system.*
1. 시스템에 무슨 일이 일어나고 있나요?
du -d1 -h / 2>/dev/null | sort -h
/
다음은 두 수준 아래로 이동할 수 있는 가장 큰 디렉터리의 정렬된 목록을 보여줍니다.
du -d2 -h / 2>/dev/null | sort -h
내 결과는 다음과 같습니다
0 /proc
0 /sys
0 /tmp
12K /dev
12K /srv
16K /lost+found
632K /run
4.3M /boot
13M /opt
15M /etc
75M /root
93M /home
2.4G /var
3.2G /usr
221G /mnt
227G /
/mnt
(외부 드라이브이기 때문에) 두 개의 디렉토리를 무시하고 있습니다 : var
및 usr
. 내부 내용을 살펴보겠습니다.
du -d1 -h /var /usr 2>/dev/null | sort -h
그런 다음 좀 더 자세히 살펴보겠습니다.
du -d1 -h /var/log /usr/share /usr/lib /var/cache 2>/dev/null | sort -h
로그부터 시작해보자
나는 717MB를 가지고 있습니다 /var/log
.
나는 무작위로 디렉토리를 삭제하는 것을 좋아하지 않으므로 깔끔한 방법으로 삭제해 보겠습니다.
$ journalctl --disk-usage
Archived and active journals take up 728.7M on disk.
로그는 100MB만 남깁니다.
journalctl --vacuum-size=100M
...
Deleted archived journal /var/log/journal/ba5391...b.journal (8.0M).
...
Vacuuming done, freed 616.6M of archived journals on disk.
Journalctl 구성 방법에 대한 자세한 내용은 여기에서 확인할 수 있습니다.여기.
콤보
나는 가지고있다 660M /var/cache/pacman
. 1.8GB이지만 pacman -Sc
사용하지 않는 패키지를 제거하기 위해 실행했습니다. 나머지를 제거해 보겠습니다.
pacman -Scc
/usr/share/locale
많은 사용자가 해당 항목을 삭제했거나 최소한 정리했습니다. 하지만 나도 그럴 수도 있어질문. 하지만 블리치비트(다음 단락)를 확인해 보세요.
표백 비트
자동세척기. 많은 항목이 제거되지만 대부분 로캘이 제거됩니다.
$ pacman -S bleachbit
$ bleachbit -p system.*
Disk space to be recovered: 488.8MB
$ bleachbit -c system.*
삭제할 콘텐츠를 더 찾을 수 있습니다.
bleachbit --list
bleachbit -p thunderbird.*
답변4
매우 오래된 파일을 자동으로 살펴보고 필요한지 확인하고 삭제하는 것이 좋습니다. 이는 두 가지 방법으로 수행할 수 있습니다. find
아주 오래된 파일을 찾는 명령을 작성하세요 . 그리고 이 출력(아마도 파이프라인)을 사용하여 lograte
3개월이 지난 파일을 보관하고 3개월이 지난 파일을 보관함에서 삭제하고 삭제 1일 전에 메일을 보내는 스크립트를 작성합니다. 이렇게 하면 중요한 파일을 잃지 않았는지 확인할 수 있습니다. 따라서 결국 위 작업을 완료하려면 다음 명령이 필요합니다.
find , | , logrotate , mail, crontab
나는 당신에게 숟가락으로 먹이를주지 않을 것입니다. 예전에 해본 적이 있어서 아주 성공적이었지만, nagios
회사 서버에서 이런 일을 하는 것이 더 적합해서 모니터링을 하기로 결정했기 때문에 나중에 포기했습니다. mail
명령이 구성되지 않은 경우 가장 어려울 수 있는 나머지 부분은 간단해야 한다고 생각합니다 . 이 모든 작업은 bash 스크립트를 통해 수행되어야 하며 cron 작업에 넣고 x일마다 실행되어야 합니다. Bash 스크립팅을 배우십시오. 이는 유용할 뿐만 아니라 *nix 생활을 더 쉽게 만들어 줄 것입니다. 따라서 선호하는 인터넷 검색 엔진을 사용하여 위의 명령과 bash 스크립트를 읽어보세요. 그리고 묶어서 테스트해 보세요. 만족하시면 정상적으로 사용하실 수 있습니다. 나는 이것을 하는 것이 재미있을 것이라고 약속한다. 이전에 이런 일을 해본 적이 없다면 많은 것을 배울 것입니다.
- 도움이 되길 바랍니다