Crunchbang
Upgrade naar Karmic Koala breekt squashfs
Dit weekend heb ik mijn Crunchbang-installatie op de netbook bijgewerkt naar Karmic Koala. De upgrade zelf ging vlotjes. Ik heb er niet heel de tijd op zitten kijken.
Enkele fragmentjes uit het upgradeproces:
12 pakketten zullen verwijderd worden. 142 nieuwe pakketten zullen geïnstalleerd worden. 741 pakketten zullen een upgrade krijgen.
U moet in totaal 436M downloaden. Deze download duurt met uw verbinding ongeveer 9 minuten.
Het upgraden kan enkele uren in beslag nemen en kan tussentijds niet worden afgebroken.
real 430m39.408s user 16m4.808s sys 8m3.086s
Helaas, na het rebooten bleek dat ik met een onbruikbaar systeem zit.
General error mounting filesystems. A maintenance shell will now be started. CONTROL-D will terminate this shell and re-try.
OK, regel 1: DON'T PANIC. Control+D heeft geen enkele zin, want er wordt naar een root wachtwoord gevraagd en zoals we allemaal weten, heeft Ubuntu geen root wachtwoord.
Stap 2: rebooten, op Escape drukken in het Grub-menu, en 'e' om te bewerken. De regel met de kernel vul ik aan zodat er een init bij staat:
kernel /boot/vmlinuz-2.6.31-14-generic root=LABEL=/ rw init=/bin/bash
bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell bash: groups: command not found root@(none):/#
Ik weet al dat er een probleem is met het mounten van een filesystem, maar welk? Het handmatig proberen mounten van alle filesystems gaf meteen het antwoord:
root@(none):/# mount -a
mount: special device LABEL=/home does not exist
[ 282.714817] squashfs: version 4.0 (2009/01/31) Philip Lougher
[ 282.720623] SQUASHFS error: Major/Minor mismatch, older Squashfs 3.1 filesystems are unsupported
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
mount: unknown filesystem type 'unionfs'root@(none):/ dmesg [ 282.714817] squashfs: version 4.0 (2009/01/31) Philip Lougher [ 282.720623] SQUASHFS error: Major/Minor mismatch, older Squashfs 3.1 filesystems are unsupported
Er zit nu niets anders op dan het gesquashte filesystem te unsquashen met de oude versie, en eventueel daarna opnieuw te squashen met de nieuwe versie. Maar hoe? Ik zit met een gebroken systeem.
Gelukkig komt daar weer mijn trouwe usb-stick de redding brengen. Daar stond nog altijd Crunchbang op, van toen ik het geïnstalleerd heb. Maar in principe kan om het even welke andere 9.04 Ubuntu ISO gedownload worden. Die moet dan op de usb-stick gezet worden met unetbootin.
Wanneer Ubuntu 9.04 geboot is vanaf de usb-stick, geef ik volgende commando's:
sudo -i aptitude install squashfs-tools modprobe squashfs modprobe unionfs mount /dev/sda1 /mnt mkdir /mnt/usr.old mount -t squashfs -o ro,loop,nodev /mnt/.filesystems/usr/usr.sqfs /mnt/usr.old mount -t unionfs -o nodev,noatime,dirs=/mnt/.filesystems/usr/overlay=rw:/mnt/usr.old=ro unionfs /mnt/usr.old time rsync -av /mnt/usr.old/ /mnt/usr
sent 1466696143 bytes received 1438136 bytes 1256426.43 bytes/sec total size is 1461396353 speedup is 1.00 rsync warning: some files vanished before they could be transferred (code 24) at main.c(1058) [sender=3.0.5] real 19m28.192s user 0m51.755s sys 2m10.544s
sending incremental file list file has vanished: "/mnt/usr.old/lib/graphviz/config4" sent 2434876 bytes received 9508 bytes 212555.13 bytes/sec total size is 1461396353 speedup is 597.86 rsync warning: some files vanished before they could be transferred (code 24) at main.c(1058) [sender=3.0.5] real 0m10.500s user 0m2.820s sys 0m9.461s
graphviz. Niets dat een herinstallatie van het pakket niet kan oplossen.
In /mnt/etc/fstab moeten ook nog (tijdelijk) 2 regels in commentaar gezet worden:
#/.filesystems/usr/usr.sqfs /usr squashfs ro,loop,nodev 0 0 #unionfs /usr unionfs nodev,noatime,dirs=/.filesystems/usr/overlay=rw:/usr=ro 0 0
Nu is het tijd voor een reboot. Werkt het nu? Neen... *gil*
Ok, opnieuw: DON'T PANIC. Wat is het probleem?
One or more of the mounts listed in /etc/fstab cannot yet be mounted: (ESC for recovery shell) /: waiting for /dev/disk/by-label/\134x2f /home: waiting for /dev/disk/by-label/\x2fhome
sudo e2label /dev/sda1 root sudo e2label /dev/mmcblk0 home
/etc/fstab moet ook nog overeenkomstig aangepast worden. Let op: de /etc/fstab op /dev/sda1, dus eerst mounten op /mnt en dan /mnt/etc/fstab aanpassen. De nieuwe versie van /etc/fstab is nu:
# <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults LABEL=root / ext4 noatime,errors=remount-ro 1 LABEL=home /home ext4 noatime 2 LABEL=swap none swap sw tmpfs /tmp tmpfs defaults tmpfs /var/tmp tmpfs defaults tmpfs /var/cache/apt/archives tmpfs defaults # /.filesystems/usr/usr.sqfs /usr squashfs ro,loop,nodev # unionfs /usr unionfs nodev,noatime,dirs=/.filesystems/usr/overlay=rw:/usr=ro
/boot/grub/menu.lst moet nog aangepast worden dat het root device nu niet / maar root heet. This is left as an excercise to the reader...
Linux liposuctie: Crunchbang in minder dan 1 gigabyte op de Acer Aspire One
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
/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
$ sudo mkdir -p /.filesystems/usr/overlay
$ sudo mksquashfs /usr /.filesystems/usr/usr.sqfs
/etc/modules:
unionfs squashfs loop
/etc/fstab:
/.filesystems/usr/usr.sqfs /usr squashfs ro,loop,nodev unionfs /usr unionfs nodev,noatime,dirs=/.filesystems/usr/overlay=rw:/usr=ro
/usr-directory opzij:
$ sudo init 1
$ mv /usr /usr.old $ mkdir /usr $ mount -a $ init 3
/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
/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 readaheadMuziek met MPD
De installatie:
$ sudo aptitude install mpd mpc
/etc/mpd.conf moet nu ingesteld worden waar de muziek te vinden is:
######################## REQUIRED PATHS ######################## # You can put symlinks in here, if you like. Make sure that # the user that mpd runs as (see the 'user' config parameter) # can read the files in this directory. #music_directory "/var/lib/mpd/music" music_directory "/home/amedee/music" playlist_directory "/var/lib/mpd/playlists" db_file "/var/lib/mpd/tag_cache" log_file "/var/log/mpd/mpd.log" error_file "/var/log/mpd/errors.log" ################################################################
De volgende stap is om wat muziekbestanden te plaatsen in /home/amedee/music. Ik heb er voorlopig al de mixtapes van Leesa gezet.
Nu nog de muziekdatabase aanmaken en de mpd-server herstarten:
$ sudo mpd --create-db added Leesa/Leesa_July2009_mixtape.mp3 added Leesa/Leesa_April2009_mixtape.mp3 added Leesa/Leesa_-_Here_I_Am.mp3 added Leesa/Leesa_-_Here_I_Go.mp3 $ sudo /etc/init.d/mpd restart * Stopping Music Player Daemon mpd [ OK ] * Starting Music Player Daemon mpd No "audio_output" defined in config file Attempt to detect audio output device Attempting to detect a alsa audio device Successfully detected a alsa audio device [ OK ]
De muziek kan nu afgespeeld worden:
$ mpc play
Het viel me wel op dat Leesa niet vermeld staat als uitvoerder bij 3 van haar 4 mixtapes, omdat bepaalde id3-gegevens ontbreken. Die heb ik dan maar zelf toegevoegd.
$ sudo aptitude install eyed3 $ eyeD3 -a "Leesa" -G 52 -Y 2009 --comment=::"http://www.leesa.be" music/Leesa/Leesa_* $ eyeD3 -t "Here I Am" music/Leesa/Leesa_-_Here_I_Am.mp3 $ eyeD3 -t "Here I Go" music/Leesa/Leesa_-_Here_I_Go.mp3 $ eyeD3 -t "April Mixtape 2009" music/Leesa/Leesa_April2009_mixtape.mp3 $ eyeD3 --to-v2.4 music/Leesa/Leesa_* $ sudo mpd --create-db $ sudo /etc/init.d/mpd restart
Dropbox zonder Nautilus
$ cd ~/downloads $ wget http://www.getdropbox.com/download?plat=lnx.x86 $ tar -xvf dropbox-lnx.x86-0.6.557.tar.gz $ mv .dropbox-dist ~ $ touch ~/bin/nautilus $ chmod +x ~/bin/nautilus $ nano ~/bin/nautilus
~/bin/nautilus:
#!/bin/bash exec pcmanfm $@ exit
~/.config/openbox/autostart.sh:
gconftool-2 -s -t bool /apps/nautilus/preferences/show_desktop false & gconftool-2 -s -t bool /desktop/gnome/background/draw_background false & gconftool-2 -s -t bool /apps/nautilus/preferences/always_use_browser false & gconftool-2 -s -t bool /apps/nautilus/preferences/show_advanced_permissions true & (sleep 60s && ~/.dropbox-dist/dropboxd) &
Deze methode werkt niet goed bij mij: het dropbox-icoontje verschijnt enkele seconden, en dan sluit dropboxd weer af. Er zijn nog verdere stappen nodig.
Een andere manier staat beschreven op http://wiki.getdropbox.com/TipsAndTricks/AlmostText-BasedLinuxInstall
$ cd ~/bin $ wget https://dl.getdropbox.com/u/43645/dbcli.py $ sudo aptitude install tofrodos $ dos2unix dbcli.py $ chmod 755 dbcli.py $ ./dbcli.py install x86
Mocht de applet niet van de eerste keer opstarten, dan werkte dit bij mij wel:
- Netwerkkabel uittrekken
- Dropbox daemon opstarten
- Naar de preferences gaan
- Netwerkkabel terug insteken
- Accountgegevens invoeren
Mocht iemand geïnteresseerd zijn in een gratis Dropbox account (2 GiB), dan bent u welkom via deze link: https://www.getdropbox.com/referrals/NTI4MzUwOQ
Conky
Ik gebruik daar een paar speciale fonts voor, om symbolen te tonen. Zoek daarvoor op Google naar Conky fonts. http://youfont.com is ook een goede plaats om fonts te zoeken.
Voor de installatie, zie http://www.ubuntumini.com/2008/12/install-ttf-font-microsoft-core-fonts....
$ unzip ~/downloads/Conky\ Fonts.zip $ cp ~/downloads/Conky\ Fonts/*.zip ~/.fonts $ sudo fc-cache -f -v
fc-cache wordt de cache met geïnstalleerde lettertypen opnieuw aangemaakt. De Conky fonts zijn lokaal geïnstalleerd in ~/.fonts.
Daarna moet Conky geconfigureerd worden. Dit is de inhoud van mijn ~/.conkyrc:
# set to yes if you want Conky to be forked in the background background no cpu_avg_samples 2 net_avg_samples 2 out_to_console no # X font when Xft is disabled, you can pick one with program xfontsel #font 7x12 #font 6x10 #font 7x13 #font 8x13 #font 7x12 #font *mintsmild.se* #font -*-*-*-*-*-*-34-*-*-*-*-*-*-* #font -artwiz-snap-normal-r-normal-*-*-100-*-*-p-*-iso8859-1 # Use Xft? use_xft yes # Xft font when Xft is enabled xftfont Bitstream Vera Sans Mono:size=8 own_window_transparent no own_window_colour hotpink # Text alpha when using Xft xftalpha 0.8 on_bottom yes # mail spool mail_spool $MAIL # Update interval in seconds update_interval 2 # Create own window instead of using desktop (required in nautilus) own_window no # Use double buffering (reduces flicker, may not work for everyone) double_buffer yes # Minimum size of text area #minimum_size 280 5 #maximum_width 150 # Draw shades? draw_shades no # Draw outlines? draw_outline no # Draw borders around text draw_borders no # Stippled borders? stippled_borders 10 # border margins border_margin 4 # border width border_width 1 # Default colors and also border colors default_color white default_shade_color white default_outline_color white # Text alignment, other possible values are commented alignment top_left #minimum_size 10 10 gap_x 13 gap_y 13 #alignment top_right #alignment bottom_left #alignment bottom_right # Gap between borders of screen and text # Add spaces to keep things from moving about? This only affects certain objects. use_spacer no # Subtract file system buffers from used memory? no_buffers yes # set to yes if you want all text to be in uppercase uppercase no # boinc (seti) dir # seti_dir /opt/seti # Possible variables to be used: # # Variable Arguments Description # acpiacadapter ACPI ac adapter state. # acpifan ACPI fan state # acpitemp ACPI temperature. # adt746xcpu CPU temperature from therm_adt746x # adt746xfan Fan speed from therm_adt746x # battery (num) Remaining capasity in ACPI or APM # battery. ACPI battery number can be # given as argument (default is BAT0). # buffers Amount of memory buffered # cached Amount of memory cached # color (color) Change drawing color to color # cpu CPU usage in percents # cpubar (height) Bar that shows CPU usage, height is # bar's height in pixels # downspeed net Download speed in kilobytes # downspeedf net Download speed in kilobytes with one # decimal # exec shell command Executes a shell command and displays # the output in torsmo. warning: this # takes a lot more resources than other # variables. I'd recommend coding wanted # behaviour in C and posting a patch :-). # execi interval, shell Same as exec but with specific interval. # command Interval can't be less than # update_interval in configuration. # fs_bar (height), (fs) Bar that shows how much space is used on # a file system. height is the height in # pixels. fs is any file on that file # system. # fs_free (fs) Free space on a file system available # for users. # fs_free_perc (fs) Free percentage of space on a file # system available for users. # fs_size (fs) File system size # fs_used (fs) File system used space # hr (height) Horizontal line, height is the height in # pixels # i2c (dev), type, n I2C sensor from sysfs (Linux 2.6). dev # may be omitted if you have only one I2C # device. type is either in (or vol) # meaning voltage, fan meaning fan or temp # meaning temperature. n is number of the # sensor. See /sys/bus/i2c/devices/ on # your local computer. # kernel Kernel version # loadavg (1), (2), (3) System load average, 1 is for past 1 # minute, 2 for past 5 minutes and 3 for # past 15 minutes. # machine Machine, i686 for example # mails Mail count in mail spool. You can use # program like fetchmail to get mails from # some server using your favourite # protocol. See also new_mails. # mem Amount of memory in use # membar (height) Bar that shows amount of memory in use # memmax Total amount of memory # memperc Percentage of memory in use # new_mails Unread mail count in mail spool. # nodename Hostname # outlinecolor (color) Change outline color # pre_exec shell command Executes a shell command one time before # torsmo displays anything and puts output # as text. # processes Total processes (sleeping and running) # running_processes Running processes (not sleeping), # requires Linux 2.6 # shadecolor (color) Change shading color # stippled_hr (space), Stippled (dashed) horizontal line # (height) # swapbar (height) Bar that shows amount of swap in use # swap Amount of swap in use # swapmax Total amount of swap # swapperc Percentage of swap in use # sysname System name, Linux for example # time (format) Local time, see man strftime to get more # information about format # totaldown net Total download, overflows at 4 GB on # Linux with 32-bit arch and there doesn't # seem to be a way to know how many times # it has already done that before torsmo # has started. # totalup net Total upload, this one too, may overflow # updates Number of updates (for debugging) # upspeed net Upload speed in kilobytes # upspeedf net Upload speed in kilobytes with one # decimal # uptime Uptime # uptime_short Uptime in a shorter format # # seti_prog Seti@home current progress # seti_progbar (height) Seti@home current progress bar # seti_credit Seti@hoome total user credit # variable is given either in format $variable or in ${variable}. Latter # allows characters right after the variable and must be used in network # stuff because of an argument #${font Dungeon:style=Bold:pixelsize=10}I can change the font as well #${font Verdana:size=10}as many times as I choose #${font Perry:size=10}Including UTF-8, #${font Luxi Mono:size=10}justo como este texto que o google traduz fêz o português # stuff after 'TEXT' will be formatted on screen #${font Grunge:size=12}${time %a %b %d}${alignr -25}${time %k:%M} TEXT $nodename - $sysname $kernel on $machine $stippled_hr ${color lightgrey}Uptime:$color $uptime ${color lightgrey}- Load:$color $loadavg ${color lightgrey}CPU Usage:${color #5000a0} ${cpu}% ${cpubar} ${color black}${cpugraph 000000 5000a0} ${color lightgrey}RAM Usage:$color $mem/$memmax - $memperc% $membar ${color lightgrey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar} ${color lightgrey}Processes:$color $processes ${color grey}Running:$color $running_processes $color$stippled_hr ${color lightgrey}Networking: ${color lightgrey} eth0 Down:${color #8844ee} ${downspeed eth0} k/s${color lightgrey} ${offset 70}Up:${color #22ccff} ${upspeed eth0} k/s ${color lightgrey} wlan0 Down:${color #8844ee} ${downspeed wlan0} k/s${color lightgrey} ${offset 70}Up:${color #22ccff} ${upspeed wlan0} k/s ${color lightgrey} ppp0 Down:${color #8844ee} ${downspeed ppp0} k/s${color lightgrey} ${offset 70}Up:${color #22ccff} ${upspeed ppp0} k/s ${color black}${downspeedgraph eth0 24,150 ff0000 0000ff} $alignr${color black}${upspeedgraph eth0 24,150 0000ff ff0000} ${color black}${downspeedgraph wlan0 24,150 ff0000 0000ff} $alignr${color black}${upspeedgraph wlan0 24,150 0000ff ff0000} ${color black}${downspeedgraph ppp0 24,150 ff0000 0000ff} $alignr${color black}${upspeedgraph ppp0 24,150 0000ff ff0000} ${color lightgrey}File systems: ${color lightgrey} / $color${fs_used /}/${fs_size /} ${fs_bar /} ${color lightgrey} /home $color${fs_used /home}/${fs_size /home} ${fs_bar /home} ${color lightgrey}Temperatures: CPU:$color ${i2c temp 2}C${color grey} - MB:$color ${i2c temp 1}C ${font Dungeon:style=Bold:pixelsize=12}${color #88aadd}MPD: ${alignc}$mpd_artist - $mpd_title ${color #88aadd}$mpd_bar ${color #88aadd}${alignc}$mpd_status ${color}Name PID CPU% MEM% ${color #ddaa00} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1} ${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2} ${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3} ${color}Mem usage ${color #ddaa00} ${top_mem name 1} ${top_mem pid 1} ${top_mem cpu 1} ${top_mem mem 1} ${color lightgrey} ${top_mem name 2} ${top_mem pid 2} ${top_mem cpu 2} ${top_mem mem 2} ${color lightgrey} ${top_mem name 3} ${top_mem pid 3} ${top_mem cpu 3} ${top_mem mem 3}
Meer uitleg over Conky op http://linuxowns.wordpress.com/2008/04/04/create-a-custum-conky-setup/
Meer configuratievoorbeelden op http://crunchbanglinux.org/forums/topic/59/my-conky-config/
Nederlandstalige interface voor Crunchbang
$ sudo aptitude install language-pack-nl $ sudo aptitude purge language-pack-en
/var/lib/locales/supported.d/local aangepast worden, zodat alleen NL blijft staan (de rest in commentaar). Vervolgens alle locales verwijderen en opnieuw genereren:
$ sudo locale-gen --purge
Kleiner lettertype
/etc/X11/xorg.conf, zie https://help.ubuntu.com/community/AspireOne110L#Fonts
Section "Device" Identifier "Configured Video Device" Option "NoDDC" EndSection Section "Monitor" Identifier "Configured Monitor" DisplaySize 195 113 EndSection
- http://www.firerouter.com/2009/07/28/high-resolution-console-in-linux/
- http://ubuntuforums.org/showpost.php?p=4797563&postcount=13
- http://ubuntuforums.org/showthread.php?t=124036
$ sudo aptitude install hwinfo $ sudo hwinfo --framebuffer | grep "Mode 0x" Mode 0x0312: 640x480 (+2560), 24 bits Mode 0x0314: 800x600 (+1600), 16 bits Mode 0x0315: 800x600 (+3200), 24 bits Mode 0x0301: 640x480 (+640), 8 bits Mode 0x0303: 800x600 (+832), 8 bits Mode 0x0311: 640x480 (+1280), 16 bits
$ sudo aptitude install gbase $ gbase -h 315 | grep Dec Dec: 789
/boot/grub/menu.lst aanpassen:
## additional options to use with the default boot option, but not with the ## alternatives ## e.g. defoptions=vga=791 resume=/dev/hda5 # defoptions=quiet splash vga=789
/etc/usplash.conf (om de splash screen te centreren):
# Usplash configuration file # These parameters will only apply after running update-initramfs. #xres=1024 #yres=600 xres=800 yres=600
$ sudo update-grub $ sudo update-initramfs -k all -u
Netbook partitioneren
Dit is het vervolg op het installeren van Crunchbang. In dit tweede deel leg ik uit hoe ik de netbook gepartitioneerd heb.
Tijdens de installatie
Tijdens de installatie heb ik gekozen voor een aangepaste partitionering:/dev/mmcblk0 /home ext4 7948 MB /dev/sda1 / ext4 6497 MB /dev/sda2 swap 1571 MB
Swap is net iets groter dan het geheugen, om achteraf eventueel suspend-to-disk te kunnen doen.
Voor de reden waarom ik ext4 op SSD kies ipv ext2, zie http://thunk.org/tytso/blog/2009/03/01/ssds-journaling-and-noatimerelatime.
Partities labelen
Alvorens te herstarten, ga ik eerst de partities labelen:crunchbang@crunchbang:~$ sudo e2label /dev/sda1 root crunchbang@crunchbang:~$ sudo e2label /dev/mmcblk0 home crunchbang@crunchbang:~$ sudo swapoff -a crunchbang@crunchbang:~$ sudo mkswap -L swap /dev/sda2 Setting up swapspace version 1, size = 1534200 KiB LABEL=swap, UUID=90bee9f3-aa1f-481f-b336-6682bd29e43c crunchbang@crunchbang:~$ sudo swapon -a
/etc/fstab aanpassen
Nog steeds zonder te herstarten, mount ik eerst het filesystem van de netbook en pas ik /etc/fstab als volgt aan:Mounten:
sudo mount /dev/sda1 /mnt sudo cp /mnt/etc/fstab /mnt/etc/fstab.original sudo nano /mnt/etc/fstab
/etcfstab:
# <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults LABEL=root / ext4 noatime,errors=remount-ro 1 LABEL=home /home ext4 noatime 2 LABEL=swap none swap sw tmpfs /tmp tmpfs defaults tmpfs /var/tmp tmpfs defaults tmpfs /var/cache/apt/archives tmpfs defaults
- Ik hou niet zo van cryptische
UUID's. Waarschijnlijk zijn er héél goede argumenten om ze te gebruiken, maar ik verkiesLABELs in mijn/etc/fstab. Als ik ooit mijn SDHC-kaartje vervang, dan moet ik dat gewoonhomelabelen, en het werkt direct zonder dat/etc/fstabaangepast moet worden. - EDIT: In een eerdere versie van deze blogpost stond dat ik
/en/homegebruikte als labels. Ik heb dit veranderd naarroot> en <code>home(dus zonder slashen) na een vervelende ervaring bij de upgrade naar Karmic Koala (Ubuntu 9.10). Meer informatie in deze blogpost. relatimeis aangepast naarnoatimeom slijtage van de SSD te verminderen./tmp,/var/tmpen/var/cache/apt/archivesworden alstmpfsgemount, ook weer om slijtage van de SSD te verminderen.- Omdat
/var/cache/apt/archivesop eentmpfsstaat, moet/var/cache/apt/archives/partialiedere keer opnieuw aangemaakt worden bij het booten. Daarom zet ik het volgende in(/mnt)/etc/rc.local, vlak bovenexit 0:mkdir -p /var/cache/apt/archives/partial
/boot/grub/menu.lst aanpassen
Ook in grub heb ik liever een label. Daarvoor moet (/mnt)/boot/grub/menu.lst aangepast worden:
## default kernel options ## default kernel options for automagic boot options ## If you want special options for specific kernels use kopt_x_y_z ## where x.y.z is kernel version. Minor versions can be omitted. ## e.g. kopt=root=/dev/hda1 ro ## kopt_2_6_8=root=/dev/hdc1 ro ## kopt_2_6_8_2_686=root=/dev/hdc2 ro ## kopt=root=UUID=c621ef63-d3d4-4eb0-9e0a-d9aec203d36e ro # kopt=root=LABEL=root ro ## default grub root device ## e.g. groot=(hd0,0) ## groot=c621ef63-d3d4-4eb0-9e0a-d9aec203d36e # groot=(hd0,0)
update-grub draaien, maar dan wel binnen de geïnstalleerde omgeving:
$ sudo chroot /mnt /bin/bash $ update-grub $ exit
Crunchbang installeren
-
Crunchbang downloaden
http://crunchbanglinux.org/wiki/downloads
Ik heb de 32bit Lite Edition genomen (.iso van 427MB) Installer op usb-stick zetten
Maak gebruik van UNetbootin: http://crunchbanglinux.org/wiki/howto/aspireone#installation
Opmerking: als je dit doet vanuit een bestaande Ubuntu-installatie, installeer dan UNetbootin via synaptic of aptitude in plaats van handmatig te downloaden.
Opmerking2: het voordeel van UNetbootin, is dat je de usb-stick dan ook nog voor andere zaken kan gebruiken. Zo staan er bij mij bijvoorbeeld ook nog mijn PortableApps op (voor Windows).Crunchbang installeren
Usb-stick insteken, netbook opstarten, F12, usb kiezen om van te booten.
Het installeren op zich duurde ongeveer 11 minuten. Vrij snel, dus.
In een volgende blogpost beschrijf ik het partitioneren.
Ubuntu installeren op lvm
Een harde schijf van 1 TB (1000204886016 bytes), jummie! Helaas heeft Ubuntu default nog altijd geen lvm aan boord. Geen probleem, door de instructies te volgen van deze 2 pagina's is mij dat toch gelukt:
- http://www.debuntu.org/how-to-install-ubuntu-over-lvm-filesystem
- http://polishlinux.org/linux/ubuntu/install-ubuntu-804-on-lvm2
Voor wie interesse heeft, dit heb ik allemaal ingetokkeld in de livecd-sessie, voorafgaand aan de installatie:
$ sudo -i $ fdisk /dev/sda # Alle partities verwijderen: d, 1, d, 2, d # Nieuwe partities aanmaken: n, p, 1, <enter>, +100M n, p, 2, <enter>, <enter> # Partitie 2 het type lvm geven: t, 2, 8e # Wijzigingen opslaan w $ partprobe # Partitietabel opnieuw inlezen $ mke2fs -t ext2 -L /boot /dev/sda1 # /boot $ aptitude update $ aptitude install lvm2 # Staat standaard niet op de livecd $ pvcreate /dev/sda2 # Physical volume aanmaken $ vgcreate lvmvolume /dev/sda2 # Volumegroup aanmaken $ lvcreate -n root -L 50G lvmvolume # Logical volumes aanmaken $ lvcreate -n home -L 500G lvmvolume $ lvcreate -n swap -L 10G lvmvolume $ mke2fs -t ext4 -L / /dev/lvmvolume/root # Filesystems aanmaken $ mke2fs -t ext4 -L /home /dev/lvmvolume/home $ mkswap -L swap /dev/lvmvolume/swap
Nadat de installatie klaar is, nog niet onmiddelijk herstarten. Zoals gezegd, Ubuntu installeert standaard geen lvm. Dat is nu wel in de livecd-sessie geïnstalleerd, maar nog niet in de geïnstalleerde Ubuntu. Dit moet nu eerst gebeuren via chroot voor de pc herstart wordt, anders herkent Ubuntu de lvm-partitie niet.
$ sudo -i $ mount /dev/lvmvolume/root /mnt # Filesystems mounten in /mnt $ mount /dev/sda1 /mnt/boot $ mount -o bind /proc /mnt/proc $ mount -o bind /sys /mnt/sys $ mount -o bind /dev /mnt/dev $ chroot /mnt /bin/bash # chrooten $ aptitude update $ aptitude install lvm2 # lvm installeren
Ook handig om weten: een cd branden is tegenwoordig niet meer nodig. Usb-stick formatteren met FAT32, en dan met Unetbootin (beschikbaar voor Linux én Windows) de inhoud van de installatie-iso naar de usb-stick kopiëren. Unetbootin zet er nog een bootloader bij et voila: bootable sticky! Wat trouwens sneller opstart en installeert dan van cd of dvd.

