Multiboot en configuratiebestanden

Ik heb recent de boel flink in de soep laten lopen. Het installeren van meer besturingssystemen op 1 pc kan heel goed maar je moet het wel netjes doen. Omdat ik graag verschillende dingen uitprobeer heb ik hier in het verleden al rekening mee gehouden.

Het loopt alleen blijkbaar vast als je Kubuntu Hardy Heron, Kubuntu Hardy Heron KDE4 remix en Debian Lenny met KDE naast elkaar installeerd waarbij je dezelfde home directory en gebruikersnaam aanhoudt. De configuratiebestanden worden namelijk op dezelfde plek opgeslagen. Als je dan verschillende versies van programma’s gebruikt dan loopt er wat door elkaar.

Op IRC heb ik een heel eind in de rondte gevraagd, niemand had echter een bevredigend antwoord. We zullen het dus zelf op moeten lossen. Het idee ervoor heeft zich in de afgelopen week al gevormd, nu de uitvoering nog. Wat ik ga doen is de huidige home partitie unmounten en op een andere plek weer terugzetten. Om dit te doen moet ik inloggen, onder Kubuntu gaat dit niet tegelijk met het verplaatsen want dan zijn er ineens bestanden in gebruik. Ik ga dus een keer opnieuw opstarten omdat ik toch onder Kubuntu momenteel het meeste doe.

Als eerste het aanpassen van de fstab. Onder Kubuntu KDE 3.5.9 ziet die er nu als volgt uit:

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc /proc proc defaults 0 0
# /dev/sda1
UUID=83bafee3-1e13-4f6d-a520-a6b522950b7e / ext3 nouser,relatime,errors=remount-ro,atime,auto,rw,dev,exec,suid 0 1
# /dev/sda7
# UUID=a0627947-327e-4369-bfba-48cafc3c8aeb /home ext3 nouser,relatime,atime,auto,rw,dev,exec,suid 0 2
UUID=a0627947-327e-4369-bfba-48cafc3c8aeb /media/home ext3 nouser,relatime,atime,auto,rw,dev,exec,suid 0 2
# /dev/sda8
UUID=c182bf79-ac71-4558-a2d4-f6d202410a39 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,utf8,atime,noauto,rw,dev,exec,suid 0 0
/dev/fd0 /media/floppy0 auto user,utf8,atime,noauto,rw,dev,exec,suid 0 0
none /proc/bus/usb usbfs devgid=120,devmode=664 0 0
/dev/sdc1 /media/windata auto users,noauto,atime,rw,nodev,noexec,nosuid 0 0
/dev/sdc2 /media/data auto users,noauto,atime,rw,nodev,noexec,nosuid 0 0

Zoals je ziet heb ik de UUID die eerst als /home gemount werd gekopieerd en een comment geplaatst bij de 1e. De 2e instantie heb ik aangepast naar het nieuwe mountpunt /media/home.

Vervolgens heb ik opnieuw opgestart en vanuit /etc/skel/ opnieuw de basisbestanden gekopieerd. Nu de oude data nog verplaatsen, meteen een opschoning die gedaan kan worden. Onder /media/home maak ik een directory data aan en die chown ik naar mezelf (tecumseh met uid 1000 en guid 1000). Ik mag namelijk blijkbaar niet rechtstreeks naar die partitie schrijven.

tecumseh@Athlan:/media/home$ mkdir temp
mkdir: cannot create directory `temp': Permission denied

Nu kan ik de oorzaak hiervan wel uitzoeken maar een aparte data directory heeft ook zijn voordelen. Er zijn meer dingen die ik op die partitie neerzetten wil en die hoeven niet allemaal in mijn homedirectory zichtbaar te worden.

Nu verplaats ik al mijn Documenten, Muziek, Video’s, Foto’s en andere zaken naar deze directory. Hierna verplaats ik de door Kubuntu aangemaakte directory’s die in mijn nog maagdelijke homedirectory staan. Dezelfde directory’s maak ik nu nogmaals aan maar dan als symlink naar de corresponderende directory’s in /media/home/data.

Als laatste nog het verplaatsen van de configuratiebestanden die ik nu behouden wil. Hoofdzakelijk zijn dit de firefox, thunderbird en virtualbox. Met de laatste doe ik nog een vervolgstap. Onder /media/home maak ik een directory Virtualbox/VDI aan en ik verplaats de Virtual Disk Images vanuit de net gekopieerde configuratiedirectory hiernaar toe. Met een symlink maak ik vervolgens ~/.Virtualbox/VDI weer aan.

Operatie voltooid aan deze kant, nu nog een herhaling van dit recept in de andere installatie’s. Ik moet er alleen nog wel op letten dat ik wel dezelfde uid’s en guid’s aanhoud. Een puntje wat nog wel wat lastig is dat is de mail, deze verplaatst hiermee niet dus die gebruik ik maar onder 1 installatie. Met de tijd moet dit nog vervangen worden door de mailserver op Arkon.

XHTML specificaties

Ik kwam op de site van Henk van de Kamer weer wat tegen, iets wat overigens al van een tijd terug is. Het gaat om een controle over correcte HTML. Nu heb ik ook een mooi XHTML 1.0 logo op de site staan maar heb hier na een 1e controle nooit meer naar omgekeken. Tijd dus om hier even verandering in aan te brengen.

Als eerste het bash script maar even aanpassen naar mijn situatie:

#!/bin/bash

let i=1
while [ $i -le 141 ]; do
wget -q -O index.htm "http://validator.w3.org/check?uri=http%3A%2F%2Ftecumseh.homeip.net%2F%3Fp%3D$i"
echo "$i is "`grep -E '^( *)\[(Valid|Invalid)\]$' index.htm | sed -re 's/.*\[(.*)\]$/\1/'` >> checked.txt
rm index.htm
sleep 15
let i=i+1
done

Hieruit volgen een aantal fouten, het merendeel is overigens correct. De meeste fouten zitten tussen de <pre> tags. WordPress negeert hier over het algemeen de opmaak, zoals het hoort overigens.

Hier een opsomming van de aanpassingen:

  • Bericht 6: Het verwijderen van een harde return lost de fout op (<hr />)
  • Bericht 10: Het vervangen van de haakjes < en > door &lt; en &gt; in het fstab stukje
  • Bericht 63: Ik heb in tussen de <pre> tags een stuk staan waarin tekstueel een smiley zit, wordpress vervangt deze maar moet er eigenlijk vanaf blijven. Ik heb er dus een punt achter gezet zodat de smiley niet geconverteerd wordt.
  • Bericht 70: In het commentaar heb ik in een reactie een stuk van mijn fstab staan, hierin moesten de tekens < en > geconverteerd worden naar &lt; en &gt;
  • Bericht 82: WordPress geeft de <img> tag een backslash op het eind, na het toevoegen van een aantal extra parameters (width, heigt en class) vindt de validator dit geen probleem mee
  • Bericht 99: Ook hier weer een aantal < en > tekens die vervangen zijn door &lt; en &gt;

WordPress file uploads

Iets wat ik tot nu toe nog niet gebruikt heb zijn de file-uploads. Nu ben ik gisteravond even bezig geweest om te controleren of mijn berichten wel Xhtml valid zijn. Ik kwam meteen al een 1e post tegen die destijds vanuit blogger overgenomen is. Hierin zat nog de afbeelding vanuit blogger, die heb ik dus maar op deze server gezet. WordPress sputterde echter nogal tegen, de juiste directory kon niet aangemaakt worden.

Het koste uiteindelijk nogal zoeken, eerst de directory rechten aangepast naar 775 en zelfs 777. De eigenaar veranderd in www-data (de gebruiker die de webserver bedient) maar ook dat mocht niet baten. Uiteindelijk heb ik in WordPress een optie gevonden die het aanmaken van subdirectory’s kan uitschakelen. Hiermee krijg ik echter alles op 1 grote hoop. Het werkt wel voorlopig maar ideaal is het dus niet.

Vandaag even verder gezocht op php safe mode, dat zou namelijk de boosdoener zijn. Dit uitschakelen lijkt me niet een goed plan maar na een stukje lezen (onvoorstelbaar hoeveel sites er eigenlijk niets over schrijven) ben ik er eindelijk uit. De safe mode beperking zorgt er namelijk voor dat een script met een bepaald uid en guid enkel bestanden aan mag maken op de webserver onder zijn eigen gebruikersnaam. De webserver maakt ze echter aan en die heeft een ander uid. De oplossing is dus dat ik de scripts (de php bestanden) van eigenaar moet veranderen. Het volstaat al om de groep te veranderen, dus:

Arkon:~/web/tecumseh.homeip.net$ chgrp -R www-data wordpress/

Na het herstellen van de wordpress optie zodat er weer subdirectory’s aangemaakt mogen worden kan ik netjes georganiseerd bestanden toevoegen.

Vervallen email adres in gebruik

Ik kom met het updaten er ook achter dat ik voor deze wordpress installatie een mailadres gebruik wat niet meer bestaat. Het is dan ook vrij rustig in de mailbox. Helaas lijdt het veranderen van het mailadres bij de gebruikersnaam niet tot het updaten van alle instantie’s hiervan. Zo blijft het oude adres bij alle commentaren staan. Dat wordt weer prutsen met SQL in phpmyadmin:

UPDATE `wordpress`.`wp_comments` SET `comment_author_email` = 'mgdijkerman@gmail.nscom' WHERE `wp_comments`.`comment_author` = "Tecumseh";

WordPress update naar 2.6.0

Recent is er een nieuwe versie van WordPress uitgekomen. De update procedure die ik nu gevolgd heb is ietswat anders verlopen. Ik heb deze keer geen patch gemaakt waarmee de verschillen in de 2 versies eruit gehaald kunnen worden. Ik kwam namelijk na de wijziging van 2.3.1 naar 2.5 een paar onhebbelijkheden tegen. Bijvoorbeeld het niet inladen van de afbeeldingen in de editor.

Ik heb dus nu bijna de lelijke manier gebruikt die WordPress zelf voorsteld. Namelijk het volledige vervangen van alle bestanden terwijl de database intact gehouden wordt. Uiteraard heb ik de wijzigingen die ik zelf gedaan heb (slechts enkele kleine dingen) wel weer doorgevoerd. Deze omschakeling heb ik niet live gedaan, ik heb de database eerst gekopieerd om vervolgens de nieuwe versie van WordPress op een ander domein neer te zetten. Deze heb ik vervolgens stukje bij beetje veranderd zodat ik geen missende onderdelen meer heb.

De grootste wijziging is het thema geweest. Niet aan de oppervlakte maar wat betreft de vertaling. Ik heb dit thema namelijk ooit van een site afgehaald wat de boel al volledig vertaald had, te volledig helaas omdat ook de variabelen en dergelijke meevertaald werden. Vervolgens heb ik de vertaalslag in een schoon thema nogmaals gedaan maar dan op de correcte manier. Althans dat dacht ik. Het blijkt namelijk dat dit thema al volledig multi-talig was. Het enige wat nodig is dat is een taalbestand voor het nederlands. Geheel in de stijl van WordPress wordt dit gedaan met gettext. Ik heb hiervoor dus de .mo en .po bestanden aangemaakt. Deze zijn hier te vinden.

De andere wijziging die ik doorgevoerd heb is het verplaatsen van de wordpress bestanden. Ik had deze voorheen in de documentroot van dit domein staan. Ik kwam er echter achter dat dit netter kan. Je kunt namelijk wordpress in een subdirectory zetten en vervolgens het index.php bestand en het configuratiebestand 1 niveau lager zetten. Je moet in index.php wel 1 klein dingetje aanpassen:

/** Loads the WordPress Environment and Template */
require('./wp-blog-header.php');

Moet worden:

/** Loads the WordPress Environment and Template */
require('./wordpress/wp-blog-header.php');

Hiermee is meteen de weg vrij om meerdere blogs vanuit 1 wordpress installatie te bedienen. Hiervoor hoef je dan enkel een symlink te plaatsen naar de algemene wordpress bestanden. Wat er dan nog overblijft is de wp-content directory waarin bijvoorbeeld de uploads geplaatst worden. Die moet ook nog verplaatst kunnen worden maar dat is voor een volgende keer.

Debian installatie op Arkon (3)

Aangezien ik geen fan ben van de browser Konqueror wil ik toch Firefox geinstalleerd hebben. Onder Debian is deze hernoemt naar Iceweasel in verband met schending van een trademark. We installeren dus Iceweasel:

Athlan:~# aptitude install iceweasel
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done
The following NEW packages will be installed:
iceweasel libatk1.0-0{a} libatk1.0-data{a} libcairo2{a} libdatrie0{a}
libgtk2.0-0{a} libgtk2.0-bin{a} libgtk2.0-common{a} libhunspell-1.2-0{a}
libnspr4-0d{a} libnss3-1d{a} libpango1.0-0{a} libpango1.0-common{a}
libsqlite3-0{a} libthai-data{a} libthai0{a} libxp6{a} myspell-en-us{a}
x-ttcidfont-conf{a}
0 packages upgraded, 19 newly installed, 0 to remove and 0 not upgraded.
Need to get 20.3MB of archives. After unpacking 62.4MB will be used.
Do you want to continue? [Y/n/?] y

Nu zien de pagina’s er nog steeds niet geweldig uit, dit komt omdat vele websites truetype fonts gebruiken die door Microsoft zijn uitgegeven. Deze moeten we dus nog installeren:

Athlan:~# aptitude install msttcorefonts
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done
No candidate version found for msttcorefonts
No candidate version found for msttcorefonts
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B of archives. After unpacking 0B will be used.

Helaas is er niets te installeren omdat dit pakket niet gevonden wil worden. Ik moet dus mijn sources.list uitbreiden. Momenteel heb ik enkel de main repository aanstaan, hier voeg ik contrib en non-free aan toe.

deb http://ftp.nl.debian.org/debian lenny main contrib non-free
deb-src http://ftp.nl.debian.org/debian lenny main contrib non-free

Na een aptitude update zijn er wat meer pakketten beschikbaar:

Current status: 12 updates [+12], 21841 new [+612].

Als eerste installeer ik de Truetype fonts:

Athlan:~# aptitude install msttcorefonts
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done
The following NEW packages will be installed:
cabextract{a} msttcorefonts
0 packages upgraded, 2 newly installed, 0 to remove and 12 not upgraded.
Need to get 84.5kB of archives. After unpacking 385kB will be used.
Do you want to continue? [Y/n/?] y

Vervolgens nog een upgrade aangezien het update commando me al aangaf dat er 12 update’s vanuit de toegevoegde pakketbronnen zijn:

Athlan:~# aptitude upgrade
W: The "upgrade" command is deprecated; use "safe-upgrade" instead.
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done
Resolving dependencies...
Resolving dependencies...
The following NEW packages will be installed:
xserver-xorg-video-radeonhd{a}
The following packages will be upgraded:
console-data fontconfig fontconfig-config libfontconfig1 libpaper-utils
libpaper1 login passwd x11-common xserver-xorg xserver-xorg-input-all
xserver-xorg-video-all
12 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 4496kB of archives. After unpacking 631kB will be used.
Do you want to continue? [Y/n/?] y

We zijn nu weer helemaal bij en na een herstart van Iceweasel (moet nog wel wennen aan de naam) zien een aantal site’s er een stuk beter uit. Ik zie ook dat ik toch een keer iets moet doen aan het template van mijn site. Dat moet toch ook kunnen met vrije fonts.

Debian installatie op Arkon (2)

Na het opnieuw opstarten kom ik zoals vanouds terecht in het grub menu van Kubuntu. Hier staat ook de optie Lenny en als ik die kies krijg ik een volgend grub menu. Het chainloaden werkt dus.

Na het toevoegen van een user en het zetten van een wachtwoord op het root account kan ik verder. Eigenlijk had ik dit al moeten doen voor de herstart maar dat is nu dus rechtgezet.

Als eerste maar even kijken of het internet werkt. Wellicht overbodig om hiervoor wederom een aptitude update te doen maar het werkt in elk geval:

Athlan:~# aptitude update
Hit http://ftp.nl.debian.org lenny Release.gpg
Ign http://ftp.nl.debian.org lenny/main Translation-en_US
Hit http://ftp.nl.debian.org lenny Release
Hit http://ftp.nl.debian.org lenny/main Packages/DiffIndex
Hit http://security.debian.org lenny/updates Release.gpg
Ign http://security.debian.org lenny/updates/main Translation-en_US
Hit http://ftp.nl.debian.org lenny/main Sources/DiffIndex
Hit http://security.debian.org lenny/updates Release
Ign http://security.debian.org lenny/updates/main Packages/DiffIndex
Ign http://security.debian.org lenny/updates/main Sources/DiffIndex
Hit http://security.debian.org lenny/updates/main Packages
Hit http://security.debian.org lenny/updates/main Sources
Reading package lists...

Het werken vanaf een prompt kan best interesant lijken maar voor het dagelijkse werk heb ik toch graag een grafische schil. Hiervoor installeer ik kde en daarvoor heb ik 2 pakketten nodig, kde-core en kdm om in te loggen:

Athlan:~# aptitude install kde-core kdm
Reading package lists...
Building dependency tree...
Reading state information...
Reading extended state information...
Initializing package states...
Reading task descriptions...
The following NEW packages will be installed:
  arts{a} aspell{a} aspell-en{a} avahi-daemon{a} bind9-host{a}
  console-common{a} console-data{a} cpp{a} cpp-4.3{a} dbus{a} dbus-x11{a}
  defoma{a} dictionaries-common{a} eject{a} enscript{a} esound-clients{a}
  esound-common{a} fam{a} file{a} fontconfig{a} fontconfig-config{a}
  ghostscript{a} ghostscript-x{a} gs-gpl{a} gsfonts{a} hal{a} hal-info{a}
  hicolor-icon-theme{a} htdig{a} kamera{a} kappfinder{a} kate{a} kbd{a}
  kcontrol{a} kde-core kdebase{a} kdebase-bin{a} kdebase-bin-kde3{a}
  kdebase-data{a} kdebase-kio-plugins{a} kdeeject{a} kdelibs{a}
  kdelibs-data{a} kdelibs4c2a{a} kdemultimedia-kio-plugins{a} kdepasswd{a}
  kdeprint{a} kdesktop{a} kdm kfind{a} khelpcenter{a} kicker{a} klipper{a}
  kmenuedit{a} konqueror{a} konqueror-nsplugins{a} konsole{a} kpager{a}
  kpersonalizer{a} kregexpeditor{a} ksmserver{a} ksplash{a} ksysguard{a}
  ksysguardd{a} ktip{a} kwin{a} libakode2{a} libart-2.0-2{a}
  libarts1-akode{a} libarts1c2a{a} libartsc0{a} libasound2{a}
  libaspell15{a} libaudio2{a} libaudiofile0{a} libavahi-client3{a}
  libavahi-common-data{a} libavahi-common3{a} libavahi-compat-libdnssd1{a}
  libavahi-core5{a} libavahi-qt3-1{a} libavc1394-0{a} libbind9-30{a}
  libcap1{a} libcdparanoia0{a} libcups2{a} libcupsimage2{a} libcupsys2{a}
  libdaemon0{a} libdbus-1-3{a} libdbus-glib-1-2{a} libdbus-qt-1-1c2{a}
  libdirectfb-1.0-0{a} libdirectfb-extra{a} libdns32{a} libdrm2{a}
  libesd0{a} libexif12{a} libexpat1{a} libfam0{a} libflac8{a}
  libfontconfig1{a} libfontenc1{a} libfreebob0{a} libfreetype6{a}
  libgl1-mesa-dri{a} libgl1-mesa-glx{a} libglib2.0-0{a} libglib2.0-data{a}
  libglu1-mesa{a} libgmp3c2{a} libgphoto2-2{a} libgphoto2-port0{a}
  libgs8{a} libhal-storage1{a} libhal1{a} libice6{a} libidn11{a}
  libiec61883-0{a} libilmbase6{a} libisc32{a} libisccc30{a} libisccfg30{a}
  libjack0{a} libjasper1{a} libjpeg62{a} libkcddb1{a} libkeyutils1{a}
  libkonq4{a} libkrb53{a} liblcms1{a} liblockfile1{a} libltdl3{a}
  liblua50{a} liblualib50{a} liblwres30{a} libmad0{a} libmagic1{a}
  libmng1{a} libmpfr1ldbl{a} libnss-mdns{a} libogg0{a} libopenexr6{a}
  libpaper-utils{a} libpaper1{a} libpci3{a} libpcre3{a} libpixman-1-0{a}
  libpng12-0{a} libqt3-mt{a} libraw1394-8{a} libsamplerate0{a}
  libsasl2-modules{a} libsm6{a} libsmbclient{a} libsmbios-bin{a}
  libsmbios1{a} libsmbiosxml1{a} libspeex1{a} libsplashy1{a} libsysfs2{a}
  libtiff4{a} libts-0.0-0{a} libvorbis0a{a} libvorbisenc2{a}
  libvorbisfile3{a} libx11-6{a} libx11-data{a} libx86-1{a} libxau6{a}
  libxaw7{a} libxcb-xlib0{a} libxcb1{a} libxcomposite1{a} libxcursor1{a}
  libxdamage1{a} libxdmcp6{a} libxext6{a} libxfixes3{a} libxfont1{a}
  libxft2{a} libxi6{a} libxinerama1{a} libxkbfile1{a} libxml2{a} libxmu6{a}
  libxmuu1{a} libxpm4{a} libxrandr2{a} libxrender1{a} libxslt1.1{a}
  libxss1{a} libxt6{a} libxtrap6{a} libxtst6{a} libxxf86misc1{a}
  libxxf86vm1{a} lockfile-progs{a} menu{a} menu-xdg{a} oss-compat{a}
  pciutils{a} perl{a} perl-doc{a} perl-modules{a} pm-utils{a} pmount{a}
  portmap{a} poster{a} powermgmt-base{a} psfontmgr{a} psmisc{a} psutils{a}
  radeontool{a} sgml-base{a} ttf-dejavu{a} ttf-dejavu-core{a}
  ttf-dejavu-extra{a} ucf{a} usbutils{a} uswsusp{a} vbetool{a}
  x11-common{a} x11-xkb-utils{a} x11-xserver-utils{a} xauth{a}
  xfonts-base{a} xfonts-encodings{a} xfonts-utils{a} xkb-data{a}
  xml-core{a} xserver-xorg{a} xserver-xorg-core{a}
  xserver-xorg-input-all{a} xserver-xorg-input-evdev{a}
  xserver-xorg-input-kbd{a} xserver-xorg-input-mouse{a}
  xserver-xorg-input-synaptics{a} xserver-xorg-input-wacom{a}
  xserver-xorg-video-all{a} xserver-xorg-video-apm{a}
  xserver-xorg-video-ark{a} xserver-xorg-video-ati{a}
  xserver-xorg-video-chips{a} xserver-xorg-video-cirrus{a}
  xserver-xorg-video-cyrix{a} xserver-xorg-video-dummy{a}
  xserver-xorg-video-fbdev{a} xserver-xorg-video-glint{a}
  xserver-xorg-video-i128{a} xserver-xorg-video-intel{a}
  xserver-xorg-video-mga{a} xserver-xorg-video-neomagic{a}
  xserver-xorg-video-nv{a} xserver-xorg-video-rendition{a}
  xserver-xorg-video-s3{a} xserver-xorg-video-s3virge{a}
  xserver-xorg-video-savage{a} xserver-xorg-video-siliconmotion{a}
  xserver-xorg-video-sis{a} xserver-xorg-video-sisusb{a}
  xserver-xorg-video-tdfx{a} xserver-xorg-video-tga{a}
  xserver-xorg-video-trident{a} xserver-xorg-video-tseng{a}
  xserver-xorg-video-v4l{a} xserver-xorg-video-vesa{a}
  xserver-xorg-video-vga{a} xserver-xorg-video-via{a}
  xserver-xorg-video-vmware{a} xserver-xorg-video-voodoo{a}
0 packages upgraded, 271 newly installed, 0 to remove and 0 not upgraded.
Need to get 148MB of archives. After unpacking 422MB will be used.
Do you want to continue? [Y/n/?]

271 pakketten verder kunnen we met het volgende commando dadelijk gaan inloggen:

Athlan:~# /etc/init.d/kdm start

Na het doen van een aantal instellingen start kde netjes op. Hierna krijg ik echter een aantal foutmeldingen te zien en blijft mijn panel leeg 

Stom natuurlijk, ik heb dezelfde gebruikersnaam gebruikt als in Kubuntu. Ook heb ik dezelfde home partitie aangehouden. Hiermee maak ik dus nu gebruik van de configuratie van Kubuntu en een aantal dingen zullen wel elders staan. Hopelijk gaat dat straks nog goed onder Kubuntu. Dit lossen we dus voorlopig op door een andere user aan te maken en daarmee verder te werken. Hiervoor schakel ik even over naar de commandprompt in terminal 1. Dit doe ik met de sneltoets Alt + F1.

Na het uitloggen en weer inloggen krijg ik dezelfde instellingen te doen maar verloopt de rest voorspoedig en is kde in elk geval compleet tot en met een gevuld panel aan toe.

Tijdens het dichtdoen van de cd-lade krijg ik een volgende foutmelding, de cd is niet te mounten. Na enig speurwerk kom ik erachter dat debian de cdrom niet als /dev/scd0 herkent maar als /dev/hdb. Na deze aanpassing werkt ook dat stukje.

Nu kunnen we langzaam aan de dingen die ik mis gaan toevoegen. Als het goed is werkt is stukje bij beetje een stuk minder onder Kubuntu.

Debian installatie Arkon

Aangezien ik bij Kubuntu tegen steeds meer dingen aanloop die ik zelf moet oplossen kan ik net zo goed Debian installeren. Ik heb dan niet de mix met pakketten die Kubuntu voor me uitkiest maar ook daar kan ik invloed op uitoefenen door bijvoorbeeld de testing branch te gebruiken. Maar eens kijken hoe het werkt in dualboot, ik heb hiervoor tenslotte al een paar extra partities aangemaakt. De installatie ga ik vanuit Kubuntu uitvoeren met behulp van debootstrap.

Als eerste de partitie formateren en mounten:

tecumseh@Athlan:~$ sudo mke2fs -j /dev/sda5
mke2fs 1.40.8 (13-Mar-2008)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
983040 inodes, 3931900 blocks
196595 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4026531840
120 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
tecumseh@Athlan:~$ sudo mkdir /media/sda5/
tecumseh@Athlan:~$ sudo mount /dev/sda5 /media/sda5/

Vervolgens met synaptic package manager debootstrap installeren. Hopelijk kan ik met deze versie ook direct een debian debootstrap doen.

En dat lukt ook:

tecumseh@Athlan:~$ sudo /usr/sbin/debootstrap --arch amd64 lenny /media/sda5/ ftp.nl.debian.org/debian/
I: Retrieving Release
E: unknown location ftp.nl.debian.org/debian/dists/lenny/Release
tecumseh@Athlan:~$ sudo /usr/sbin/debootstrap --arch amd64 lenny /media/sda5/

Er gaat in eerste instantie iets mis met het gebruiken van een lokale mirror, geen idee waarom aangezien ik de Release file op die locatie namelijk wel vinden kan… Maar goed, ook vanuit de USA kan ik pakketten binnenhalen. Straks stel ik apt wel in om de spullen wat dichterbij te halen.

Er wordt een berg binnengehaald en geinstalleerd, enkel het basissysteem uiteraard. Na een tijdje stopt de voortgang bij deze melding:

I: Base system installed successfully.

We kunnen dus verdergaan met de installatie.

tecumseh@Athlan:~$ sudo LANG=C chroot /media/sda5/ /bin/bash
root@Athlan:/#

Vervolgens maken we een fstab aan zodat de partitie’s en overige media gevonden kan worden:

root@Athlan:/# nano /etc/fstab
# /etc/fstab: static file system information.
#
# file system    mount point   type    options                  dump pass
proc              /proc         proc    defaults                 0    0
/dev/sda5         /             ext3    defaults                 0    1
/dev/sda7         /home         ext3    rw,nosuid,nodev          0    2
/dev/sda8         none          swap    sw                       0    0
/dev/fd0          /media/floppy auto    noauto,rw,sync,user,exec 0    0
/dev/scd0         /media/cdrom  iso9660 noauto,ro,user,exec      0    0

Na het mounten van alle mountpunten krijg ik wel een foutmelding:

root@Athlan:/# mount -a
mount: special device /dev/sda7 does not exist

Dit laat ik nog even voor wat het is, als ik straks geboot heb met deze installatie dan kijk ik wel hoe het dan gaat. Er gaat trouwens wel meer mis met het mounten, ook een kijkje wat er in /proc is geeft me een maagdelijk leeg overzicht. Die mount ik dus hier nog even handmatig en dat lukt meteen. Anders had ik deze van buiten de chroot moeten mounten.

Het instellen van de tijdszone gaat in lenny blijkbaar anders dan in etch:

root@Athlan:/# tzconfig
bash: tzconfig: command not found

Een berichtje op irc doet wonderen. Ik ben er nu achter dat er inderdaad vanaf lenny een wijziging is doorgevoerd. Ik moet nu dpkg-reconfigure gebruiken:

root@Athlan:/# dpkg-reconfigure tzdata

Current default timezone: 'Europe/Amsterdam'
Local time is now:      Wed Jul  2 21:29:27 CEST 2008.
Universal Time is now:  Wed Jul  2 19:29:27 UTC 2008.

Netwerk is ook handig om te hebben, hiervoor moeten we een aantal dingen aanpassen. Als eerste de interfaces om de netwerkkaart werkend te krijgen:

root@Athlan:/# nano /etc/network/interfaces

Met de volgende inhoud:

# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or
# /usr/share/doc/ifupdown/examples for more information.

# We always want the loopback interface.
#
auto lo
iface lo inet loopback

# To use dhcp:
#
auto eth0
iface eth0 inet dhcp

Ook de hosts file moet aangemaakt worden:

root@Athlan:/# nano /etc/hosts
127.0.0.1       localhost
127.0.1.1       Athlan

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

De oplettende lezer merkt dat ik 2 bestanden vergeten ben, namelijk resolf.conf en hostname. Nu zijn deze blijkbaar al overgenomen vanuit Kubuntu dus deze laat ik even staan. Mocht ik ze straks missen dan kan ik die alsnog instellen. De hostname verander ik nu ook nog niet aangezien ik daarmee meteen de hostname van de Kubuntu installatie meeverander.

Ook apt moet geconfigureerd worden, anders kunnen we geen pakketten installeren. We beginnen met een redelijk kale configuratie, uitbreiden kan later nog wel:

root@Athlan:/# nano /etc/apt/sources.list
deb http://ftp.nl.debian.org/debian lenny main
deb-src http://ftp.nl.debian.org/debian lenny main

deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main

Hierna kunnen we de locales installeren en instellen:

root@Athlan:/# aptitude install locales
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done
The following NEW packages will be installed:
  locales
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 4431kB of archives. After unpacking 12.0MB will be used.
Writing extended state information... Done
Get:1 http://ftp.nl.debian.org lenny/main locales 2.7-10 [4431kB]
Fetched 4431kB in 30s (148kB/s)
Preconfiguring packages ...
Can not write log, openpty() failed (/dev/pts not mounted?)
Selecting previously deselected package locales.
(Reading database ... 7353 files and directories currently installed.)
Unpacking locales (from .../locales_2.7-10_all.deb) ...
Processing triggers for man-db ...
Can not write log, openpty() failed (/dev/pts not mounted?)
Setting up locales (2.7-10) ...
Generating locales (this might take a while)...
Generation complete.
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Writing extended state information... Done
Reading task descriptions... Done
root@Athlan:/# dpkg-reconfigure locales
Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.

Ik zie hier een foutmelding langskomen over /dev die incompleet zou zijn. Na een tijdje zoeken kom ik erachter dat het installeren met behulp van de etch handleiding wat problemen kan veroorzaken, ik schakel dus over naar de testing handleiding en doe de missende stap nog even over. Er is namelijk slechts een basisgedeelte van /dev gevuld, om deze aan te vullen doe ik:

root@Athlan:/dev# MAKEDEV generic

Aangezien de foutmelding slechts gaat over het niet kunnen vullen van een logbestand ga ik de locales niet nogmaals installeren.

We komen in de buurt, nu is de kernel aan bod. Als eerste maken we een configuratiebestand aan volgens de handleiding:

root@Athlan:/# nano /etc/kernel-img.conf
# Kernel image management overrides
# See kernel-img.conf(5) for details
do_symlinks = yes
relative_links = yes
do_bootloader = yes
do_bootfloppy = no
do_initrd = yes
link_in_boot = no

Hierna installeren we de kernel. Eerst maar eens kijken welke kernels er beschikbaar zijn:

root@Athlan:/# aptitude search linux-image
v   linux-image                     -
v   linux-image-2.6                 -
p   linux-image-2.6-amd64           - Linux 2.6 image on AMD64
p   linux-image-2.6.22-3-amd64      - Linux 2.6.22 image on AMD64
p   linux-image-2.6.22-3-vserver-am - Linux 2.6.22 image on AMD64
p   linux-image-2.6.24-1-amd64      - Linux 2.6.24 image on AMD64
p   linux-image-amd64               - Linux image on AMD64

Ik kies hieruit het metapakket linux-image-2.6-amd64:

root@Athlan:/# aptitude install linux-image-2.6-amd64
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done
The following NEW packages will be installed:
  busybox{a} initramfs-tools{a} klibc-utils{a} libklibc{a} libvolume-id0{a}
  linux-image-2.6-amd64 linux-image-2.6.24-1-amd64{a} udev{a}
0 packages upgraded, 8 newly installed, 0 to remove and 0 not upgraded.
Need to get 20.5MB of archives. After unpacking 80.2MB will be used.
Do you want to continue? [Y/n/?] y

Een 32-bits kernel vindt je hier niet tussen omdat ik als arch amd64 ingegeven heb.

Nu de installatie van de bootloader nog. Ik gebruik vooralsnog de bootloader van Kubuntu nog even. Deze staat namelijk al in de MBR. In een 2e terminal pas ik hiervoor grub van Kubuntu aan. Hier zet ik het volgende erbij in /boot/grub/menu.lst:

title           Debian Lenny op sda5
root            (hd0,4)
chainloader     +1

Vervolgens installeer ik in de chroot debian installatie grub:

root@Athlan:/# aptitude install grub
Reading package lists… Done
Building dependency tree
Reading state information… Done
Reading extended state information
Initializing package states… Done
Reading task descriptions… Done
The following NEW packages will be installed:
grub grub-common{a}
0 packages upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 1115kB of archives. After unpacking 2351kB will be used.
Do you want to continue? [Y/n/?] y

Vervolgens installeer ik grub op /dev/sda5:

root@Athlan:/# grub-install /dev/sda5
Probing devices to guess BIOS drives. This may take a long time.
Searching for GRUB installation directory ... found: /boot/grub
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.

(fd0)   /dev/fd0
(hd0)   /dev/sda
root@Athlan:/# update-grub
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ...

Could not find /boot/grub/menu.lst file. Would you like /boot/grub/menu.lst generated for you? (y/N) y
Searching for splash image ... none found, skipping ...
Found kernel: /boot/vmlinuz-2.6.24-1-amd64
Updating /boot/grub/menu.lst ... done

Vervolgens doen we dadelijk een reboot om te kijken of dit werkt. Daarna is het toch handig om een gui te installeren. Daarover later meer.