ďťż
Lemur zaprasza
Oszczędzanie miejsca na dysku twardym (małe JTZ) Guido Gonzato, guido@ibogeo.df.unibo.it v1.0.1, 07 kwietnia 1999 Wersja polska: Tomasz 'tsca' Sienicki, tsca@edb.dk v1.01, 14 grudnia 2001 Dokument zawiera informacje pomagające w największym możliwym stopniu ograniczyć miejsce zajmowane przez Linuksa na twardym dysku. Przyda się szczególnie użytkownikom laptopów. 1. Wstęp Posiadam laptopa, na którym obok fabrycznie dołączonego Windows 95 zainstalowałem Linuksa. Zajmowaną przez Windows przestrzeń dyskową ograniczyłem do 500 MB, co dało mi 240 MB wolnego miejsca. Niby niewiele, a jednak dzięki rozsądnej gospodarce wolną przestrzenią zmieściłem tam w pełni funkcjonalną instalację Linuksa (Red Hat 4.1). Jeśli brakuje ci wolnej przestrzeni na twardym dysku, wykorzystaj informacje zawarte w niniejszym dokumencie -- pomogą ci one znacznie zwiększyć jej ilość. Zanim jednak przejdziemy do rzeczy, muszę cię ostrzec: nie obwiniaj mnie, jeśli coś pójdzie nie tak. Niektóre z wykorzystywanych w procedurze odzyskiwania wolnego miejsca programów mogą być niebezpieczne pomimo, iż sprawdziły się u mnie. 2. Potrzebne oprogramowanie Potrzebować będziesz: w pełni sprawnej dowolnej wersji Linuksa, popularnego programu do kompresji gzip lub jego zamiennika: bzip2. bzip2 kompresuje lepiej, niż gzip, jest jednak nieco powolniejszy i zużywa mnóstwo pamięci. Oba te programy znajdziesz pod adresem ftp://sunsite.unc.edu:/pub/Linux/utils/compress, programu kompresującego pliki wykonywalne upx dostępnego pod adresami http://cdata.tvnet.hu/~ml/upx.html oraz http://wildsau.idv.uni-linz.ac.at/mfx/upx.html, pakietu zlibc dostępnego pod adresem ftp://sunsite.unc.edu:/pub/Linux/libs/compression. Plik nazwany jest zlibc-X.X.tar.gz, gdzie X.X jest numerem najnowszej wersji programu. Istnieją też inne programy do kompresji plików wykonywalnych. Jednym z nich jest gzexe -- najlepiej od razu o nim zapomnij. tcx był niezły, został jednak zdetronizowany przez upx. Kolejny program, tzx, teoretycznie powinien sprawować się nawet lepiej, niż tcx. Niestety, kompletnie zawiódł podczas prób, które przeprowadziłem na zapasowym komputerze; być może z mojej winy. Najlepiej użyj więc upx -- jest to program sprawdzony, wydajny i wygodny. Istnieją łatki umożliwiające jądru obsługę skompresowanych systemów plików "w locie", jednak w momencie pisania tego tekstu żadna z nich nie cieszy się opinią stabilnej i bezpiecznej. Najbezpieczniej jest trzymać się od nich z daleka. 3. Procedura odzyskiwania miejsca 3.1 Usuwanie źródeł jądra Źródła jądra zajmują ponad 20 MB, możesz więc rozważyć ich usunięcie. Jeśli się na to zdecydujesz, proponuję, żebyś najpierw raz a dobrze skompilował jądro odpowiednie dla twojego komputera; potem możesz źródła skasować. Ale uważaj: Nie kasuj źródeł jądra dopóki nie jesteś pewien, że twój system jest prawidłowo skonfigurowany. Pamiętaj również, że kompilacja programów napisanych w C wymaga plików nagłówkowych (#include) jądra. Przemyśl to! Kasując źródła jądra oszczędź katalog include/linux/, chyba, że jesteś pewien, że nigdy niczego nie będziesz na swoim komputerze kompilował. 3.2 Usuwanie zbędnych aplikacji Teraz musisz zadecydować, których programów naprawdę potrzebujesz. Niektóre aplikacje mogą okazać się w twoim przypadku zbędne; na przykład zastanów się, czy naprawdę musisz mieć na dysku emacsa? Zamiast niego możesz używać jeda. Decyzja należy do Ciebie; przed jej podjęciem rozważ następujące fakty: gcc jest bardzo dużym pakietem używanym do kompilowania jądra oraz wszelkich aplikacji, które rozprowadzane są w formie kodów źródłowych. Pakiet ten jest oczywiście również niezbędny, jeśli piszesz własne programy w C lub Fortranie (z f2c lub g77). Zastanów się nad swoimi potrzebami, zanim usuniesz gcc. Alternatywne kompilatory, jak np. lcc też są niezłe, ale ustępują gcc. Podsumowując, proponuję pozostawić ten pakiet na dysku. X Window System zajmuje na olbrzymią ilość miejsca na dysku twardym, czasem jednak szkoda z niego rezygnować. Jeśli czujesz, że nie mógłbyś tego zrobić, spróbuj przynajmniej ograniczyć zajmowaną przez X przestrzeń dyskową. W tym celu pozostaw sobie tylko właściwy dla twojego sprzętu serwer X, jakiegoś niewielkiego Window-Managera, tylko jeden xterm, usuń czcionki 100 dpi, itd. TeX i towarzyszące mu pakiety zajmują naprawdę wiele miejsca. Zrezygnowanie z LaTeXa i ograniczenie się do czystego TeXa znacznie zwiększy ilość dostępnej przestrzeni dyskowej. Dodatkowe miejsce możesz uzyskać rezygnując z działających pod X przeglądarek plików dvi i ps, takich jak xdvi czy ghostview. Zamiast nich użyj programów dvitty, dvivga i podobnych. Przy okazji zastanów się: skoro nie używasz X do przeglądania dvi, może wcale tego pakietu nie potrzebujesz...? gry nigdy nie są ``niezbędne''. 3.3 Usuwanie symboli z plików binarnych ("strip") Rozpoczynamy proces zmniejszania wielkości plików binarnych. Wejdź do katalogu /usr/bin i wydaj w nim polecenie: /usr/bin# strip * Usunie to symbole z plików binarnych. Powtórz ten krok w /usr/X11R6/bin/ i pozostałych zawierających binarne pliki wykonywalne katalogach (nie zapomnij też odnaleźć binariów pakietów TeX i gcc). Jeśli cenisz sobie swój system, nie wykonuj tego polecenia w katalogach /sbin, /bin ani /usr/sbin/ ! 3.4 Kompresowanie plików wykonywalnych Rozpocznij od zainstalowania pakietu upx i przeczytania jego dokumentacji. Następnie wejdź do katalogu /usr/bin i wykonaj w nim polecenie /usr/bin# upx * Skompresuje to wszystkie pliki wykonywalne, w tym te z suid (txc nie poradziłby sobie z tym). Powtórz ten krok w kolejnych katalogach według opisu zawartego w poprzednim podrozdziale. Pamiętaj o kompresowaniu plików wykonywalnych pojawiających się po instalacji nowego oprogramowania! 3.5 Kompresowanie pozostałych plików W systemie znajduje się mnóstwo plików, które możesz raz na zawsze skompresować. Rozpocznij od wejścia do katalogu /usr/doc/ (od tłumacza: w nowszych dystrybucjach jest to /usr/share/doc/) i wydaj w nim polecenie: /usr/doc# find . -type f -exec gzip -9 {} \; 2> /dev/null Pamiętaj o kompresowaniu dokumentów dołączanych do później instalowanych programów! Powtórz ten krok w katalogu zawierających dokumentację systemu TeX (u mnie jest to /usr/lib/texmf/texmf/doc/). Jeśli naprawdę wiesz, co robisz, możesz katalogi z dokumentacją całkowicie skasować. Zainstaluj teraz program zlibc i skompiluj go. Jeśli twój system przypomina mój, podczas kompilacji zobaczysz komunikaty o braku statycznej biblioteki libc. Nie przejmuj się: jest to kwestia odnalezienia pliku uncompress.o, przeniesienia go do /usr/local/lib/ i dodania następującej linii do pliku /etc/profile: export LD_ELF_PRELOAD=/usr/local/lib/uncompress.o Dzięki powyższemu będziesz teraz mógł kompresować gzipem nie tylko dokumentację, ale również pliki z wykorzystywanymi przez różne programy danymi; programy będą nadal mogły ich używać. Teoretycznie sztuczka ta powinna działać z większością aplikacji, praktycznie nie zawsze tak jest -- w moim przypadku sukces nie był oszałamiający. 4. Przykład z życia wzięty Oto co ja osiągnąłem zastosowawszy wyżej opisaną procedurę. Przed rozpoczęciem operacji system wg df zajmował 398.798 bloków 1024. Nie usunąłem źródeł jądra ani plików nagłówkowych, Usunąłem kilka aplikacji i wszystkie gry. Zostawiłem sobie X11, X11-narzędzia, C- i Fortran-narzędzia, Tcl/Tk, programy obsługujące sieć oraz kilka standardowych aplikacji. Zajętych bloków: 244.668, Skompresowałem programem upx pliki znajdujące się katalogach /usr/bin, /usr/X11R6/bin, /usr/lib/texmf/bin/i586-linux oraz /usr/lib/gcc-lib/i386-linux/2.7.2.1. Zajętych bloków: 226.270. Skompresowałem dokumentację w katalogach /usr/doc oraz /usr/lib/texmf/texmf/doc. Zajętych bloków: 198.745. Liczba zajętych bloków przed rozpoczęciem operacji: 398.798, po jej zakończeniu: 198.745. Uzyskałem 200.000 wolnych bloków! A gdybym użył bzip2 zamiast gzipa, wolnych bloków byłoby jeszcze więcej. Jeśli od samego początku działasz świadomie, instalując wyłącznie niezbędne aplikacje i kompresując pliki wykonywalne i dokumentację, oszczędzisz około 20 MB. W przypadku laptopów jest to znacząca liczba. 5. Formalności 5.1 Prawa autorskie O ile nie zaznaczono inaczej dokumenty HOWTO chronione są prawami autorskimi należącymi odpowiednio do ich autorów. Zezwala się na powielanie i dystrybucję tych dokumentów w całości lub w części na jakimkolwiek fizycznym bądź elektronicznym nośniku pod warunkiem pozostawienia na wszystkich kopiach niniejszej informacji o prawach autorskich. Zezwala się i zachęca do redystrybucji komercjalnej; autor jednak życzy sobie być powiadamiany o każdej z takiej dystrybucji. Niniejsze prawa autorskie dotyczą również wszelkich tłumaczeń, prac pochodnych, składających się z, lub zawierających jakiekolwiek dokumenty HOWTO. Oznacza to, że niedozwolone jest stworzenie pracy pochodnej od dokumentu HOWTO i nałożenie dodatkowych ograniczeń na jej dystrybucję. W pewnych szczególnych okolicznościach możliwe są odstąpienia od tych zasad. Po bliższe informacje należy skontaktować się z koordynatorem projektu Linux HOWTO pod adresem podanym poniżej. W skrócie: chcemy promować rozprzestrzenianie się podanych tu informacji poprzez możliwie wiele kanałów. Zatrzymujemy jednak prawa autorskie do dokumentów HOWTO i chcielibyśmy być informowani o jakichkolwiek planach redystrybucji tych dokumentów. W przypadku pytań skontaktuj się z koordynatorem projektu Linux HOWTO Timem Bynymem, tjbinum@sunsite.unc.edu. 5.2 Zastrzeżenia Autorem niniejszego dokumentu jest Guido Gonzato, REMOVE_MEguido@ibogeo.df.unibo.it. Dokument ten jest udostępniony 'jak jest'. Starałem się napisać go jak najlepiej, jednak wszelkich zawartych tu informacji możesz użyć tylko na własne ryzyko. Nie ponoszę odpowiedzialności za żadne szkody wynikłe z zastosowania tych informacji. Ucieszą mnie wszelkie reakcje: prośby, sugestie, wyzwiska, itd. Ciesz się Linuksem i życiem, Guido =8-) 6. Od tłumacza Wersja oryginalna niniejszego dokumentu znajduje się pod adresem http://sunsite.unc.edu/LDP/. Tłumaczenia pozostałych dokumentów HOWTO na język polski: http://www.jtz.org.pl. Copyright for the translation (c) 2001 by Tomasz 'tsca' Sienicki, tsca@edb.dk |