You are hereBlogs / Amedee's blog / Linux liposuctie: Crunchbang in minder dan 1 gigabyte op de Acer Aspire One

Linux liposuctie: Crunchbang in minder dan 1 gigabyte op de Acer Aspire One


By Amedee - Posted on 24 Oktober 2009

Deze blogpost is een bewerking van http://po-ru.com/diary/linux-liposuction-or-xubuntu-in-under-a-gig-on-th.... Daar wordt er (X)Ubuntu Intrepid (8.10) gebruikt, terwijl mijn versie gericht is op Jaunty (9.04) en Karmic (9.10), meer bepaald de Crunchbang-variant met OpenBox desktop.

In een vorige blogpost heb ik 180 MiB vrijgemaakt door overbodige software en overbodige locales te verwijderen.

Ik heb di en du gebruikt om te achterhalen waar het meeste schijfruimte wordt verbruikt:

$ di -hm /
Filesystem         Mount               Megs     Used    Avail %Used fs Type
/dev/sda1          /                 6099.6   1887.6   4212.0  31%  ext4  
$ sudo du -cms /* 2>/dev/null | column -tc 2 | grep -v "^0 " | sort -nr | head -n 11
2649  total
1396  /usr
900   /home
192   /var
124   /lib
16    /boot
8     /sbin
8     /etc
6     /bin
1     /tmp
1     /srv
Het meeste plaats wordt ingenomen door /usr: 1396 MiB. Dit kan verkleind worden, met een combinatie van squashfs en unionfs.

squashfs laat je een filesystem comprimeren, maar het is read-only. unionfs laat je toe om er een schrijfbaar filesystem bovenop te leggen, zodat je gegevens kan wijzigen. Uiteraard, hoe meer data je wijzigt, hoe meer schijfruimte er gebruikt wordt, maar het is altijd mogelijk om opnieuw te comprimeren en de schijfruimte te herwinnen.

Eerst moet squashfs geinstalleerd worden. unionfs zit al standaard in de kernel bij Jaunty en Karmic, en moet dus niet meer geïnstalleerd worden.

$ sudo aptitude install squashfs-tools
Dan moet er een plaats voorzien worden voor het gecomprimeerde filesystem en de overlay:
$ sudo mkdir -p /.filesystems/usr/overlay
Comprimeer het filesystem:
$ sudo mksquashfs /usr /.filesystems/usr/usr.sqfs
Voeg deze regels toe aan /etc/modules:
unionfs
squashfs
loop
en deze regels aan /etc/fstab:
/.filesystems/usr/usr.sqfs /usr squashfs ro,loop,nodev
unionfs /usr unionfs nodev,noatime,dirs=/.filesystems/usr/overlay=rw:/usr=ro
Sluit alle programma's af, ga naar runlevel 1 (of reboot en ga in de rescue mode) en zet de oude /usr-directory opzij:
$ sudo init 1
$ mv /usr /usr.old
$ mkdir /usr
$ mount -a
$ init 3
Werkt alles OK, ook na een reboot, dan mag /usr.old verwijderd worden.

Het schijfgebruik is nu:

$ di -hm /
Filesystem         Mount               Megs     Used    Avail %Used fs Type
/dev/sda1          /                 6099.6    954.9   4834.9  21%  ext4  
Er is dus 932,7 MiB vrijgekomen. Dat komt overeen met het verschil in grootte tussen /usr en  :
$ sudo du -ms /usr /.filesystems/usr
1396    /usr
464     /.filesystems/usr

Opmerking: bij mij deed readahead een beetje lastig tijdens het booten. Dit probleem staat ook beschreven in deze forumtopic. Aangezien readahead alleen maar zinvol is bij een harde schijf maar niet bij een SSD, heb ik readahead ineens verwijderd:

$ sudo aptitude purge readahead

Voor wie niet goed vertrouwd is met bash (Linux shell), wil ik (op algemeen verzoek) even een korte uitleg geven van bovenstaande instructie:
$ sudo du -cms /* 2>/dev/null | column -tc 2 | grep -v "^0 " | sort -nr | head -n 11
$
Shell prompt, dit typ je zelf niet in. $ wil zeggen dat je momenteel een gewone user bent, # wil zeggen dat je als root werkt.
sudo
Voer de hierna volgende instructie uit als root. Het root-privilege werkt tot aan het pipe-teken | dus niet voor de volledige regel!
du
Disk Usage - dit programma toont hoeveel schijfruimte er gebruikt wordt
-c
Maak een algemeen totaal
-m
Druk de groottes uit in megabyte
-s
Toon alleen een samenvatting per item (summarize), dus geen details van de onderliggende bestanden en directories.
/*
Alle bestanden en directories in de root
2>/dev/null
Stuur eventuele foutmeldingen naar de vuilbak
|
Stuur de uitvoer van het programma links naar de invoer van het programma rechts
column -tc 2
Zet de uitvoer mooi in 2 kolommen
grep -v "^0 "
Toon alle regels die niet beginnen met "0 ", dus alleen de regels met meer dan 0 megabytes.
sort -nr
Sorteer op numerieke waarden, en in omgekeerde (reverse) volgorde, zodat de grootste bovenaan staan.
head -n 11
Toon de 11 bovenste regels, dit wil zeggen het totaal gevolgd door de 10 grootste items.
Meer informatie over de verschillende commando's vind je op hun respectievelijke manpages.

Nieuwe reactie inzenden

  • Textual smileys will be replaced with graphical ones.
  • Toegelaten HTML-tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <strike> <hr> <table> <tr> <td> <th>
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. The supported tag styles are: <foo>, [foo], [[foo]].
  • Adressen van webpagina's en e-mailadressen worden automatisch naar links omgezet.
  • Each email address will be obfuscated in a human readable fashion or (if JavaScript is enabled) replaced with a spamproof clickable link.
  • You may quote other posts using [quote] tags.
  • Regels en paragrafen worden automatisch gesplitst.

Meer informatie over formaatmogelijkheden

Reclame... ;-)

Met dank aan
  • Jasmina
  • Celine
  • Pieter
  • Jeff
  • Hans
  • Jurgen
  • Jurgen
  • Marijke
  • Amedee
  • Erik
  • Danny
  • Sofie
  • Lars
  • Christophe
  • Peter
  • Jeroen
  • Jurgen
om mij een gratis herlading twv €15 te bezorgen!

Waar ben ik?