
Jeg er en af de lykkelige ejere af en amd64 maskine. Da der er flere programmer som endnu ikke er porteret til amd64 endnu, har jeg haft mine problemer med at få det til virke som jeg gerne ville. Det kan godt lade sig gøre at have både 32bit og 64bit programmer installeret på det samme system, men det kræver at man har alle nødvendige libs som af et 32bit program kræver installeret i en 32bit version ud over at man højest sandsynligt også har de samme libs til sine 64bit programmer. Dette kan godt volde lidt problemer så jeg har kigget mig lidt om efter en løsning hvor jeg ikke skal rode med disse problemer hver gang jeg støder ind i et 32bit program jeg gerne vil have til at køre på mit system. Løsningen jeg har valgt er at lave et helt komplet 32bit system i en mappe hvori der kan installeres 32bit programmer.
Vigtigt inden du går i gang.
Jeg har gjort dette under Ubuntu Hoary x86_64 og brugt en 32 bit Debian sarge i386. I princippet skulle der ikke være noget i vejen for at bruge to helt andre systemer, men her i guiden er det installation af Debian sarge under Ubuntu jeg tager udgangspunkt i. Ønsker du at følge guiden på en anden distribution skal du finde debootstrap og dchroot til din distribution. Bruger du Debian burde du kunne følge guiden helt og holdent.
Jeg går ud fra at du kender kommandoprompten til husbehov og har et basalt kendskab til Debian.
Hvis ikke kan disse links være til god gavn.
http://www.debian.org/support
http://debianguiden.dk/
http://www.linuxbog.dk/unix/bog/index.html.php
Jeg bruger gennem guiden nano som editor da den kendes af de fleste og er med på Debianbasissystemet. Jeg vil ikke komme nærmere ind på hvordan du bruger en flad teksteditor da jeg går ud fra at du har gjort det før, og hvis du ikke har, bør du nok overveje en ekstra gang om dette er et klogt projekt at kaste dig ud i.
Bruger du ikke Ubuntu og ikke har sat sudo op, skal du se bort fra sudo og køre de kommandoer hvor jeg bruger sudo som root, men husk at du naturligvis ikke kan hente debootstrap og dchroot med apt-get hvis du fx. bruger en standart SuSE.
For ikke at bringe tvivl om hvilke kommandoer som skal køres på hvilket system bruger jeg fire forskællige måder at vise prompten på. Det er ikke en fejl at din ikke kommer til at vise det samme.
user@system:~$ Dit normale system som normal user
root@system:~$ Dit normale system som root
user@sarge-i386:~$ Dit nye Debiansystem som normal user
root@sarge-i386:~$ Dit nye Debiansystem som root
Installation af grundsystem
Først skal debootstrap installeres.
debootstrap er et program som kan hente og installere et Debian grundsystem i en mappe som man selv angiver.
user@system:~$ sudo apt-get install debootstrap
Opret nu den mappe hvori du vil have dit Debiansystem til at ligge.
Jeg har valgt at ligge mit i /chroot/sarge-i386 og vil derfor referere til denne placering resten af guiden. Det kan være en god ide at have sit Debian system på en anden partition end hovedsystemet så man ikke skal starte forfra hvis man geninstallere sit 64bit system. Jeg vil dog kraftigt fraråde at du ligger det på en fat32 partition da systemet ligesom et normalt system arbejder med rettigheder til hver enkelt fil.
user@system:~$ sudo mkdir /chroot
user@system:~$ sudo mkdir /chroot/sarge-i386
Nu skal du have hentet dit Debian i386 grundsystem ned i den ønskede mappe i mit tilfælde er det "/chroot/sarge-i386". Til det bruger du debootstrap. Læg mærke til at jeg angiver arkitektur og den ønskede Debian version. Jeg har ikke prøvet med woody eller sid, men det burde at være det samme.
user@system:~$ sudo debootstrap --arch i386 sarge /chroot/sarge-i386
Til at starte med vil der højest sandsynligt komme følgende beskeder fra konsollen, hvilket du ikke skal gå i panik over.
I: Retrieving debootstrap.invalid_dists_sarge_Release
I: Retrieving debootstrap.invalid_dists_sarge_main_binary-i386_Packages
Det kan godt tage lidt tid før den bliver færdig, så vær tålmodig.
Nu har du et Debian basissystem. Du kan godt bruge chroot på normal vis til at bruge systemet, men da du sikkert gerne vil bruge systemet ofte og senere skal have det til at arbejde sammen med den lokale xserver og bruge lydkortet gøres det det hele lidt nemmere ved at bruge dchroot i stedet. Hvis du ikke har dchroot installeret skal du installere den nu.
user@system:~$ sudo apt-get install dchroot
Før du kan bruge dchroot skal du have tilføjet dit nye Debiansystem system til dchroot's konfiguration fil.
user@system:~$ sudo nano /etc/dchroot.conf
Filen skal ende med at så således ud. Har du dit system et andet sted skal du naturligvis angive den korrekte sti dertil.
# /etc/dchroot.conf
#
# This file configures the chroots that users can access with the 'dchroot'
# command. Input lines consist of a description and a path separated by
# whitespace. If more than one input line is present the first will be the
# default chroot.
# Example : the following line enables a chroot called 'stable'
# located at /chroot/stable
sarge-i386 /chroot/sarge-i386
Du kan nu komme ind i dit nye system ved at skrive:
user@system:~$ sudo dchroot
Får du nu følgende meddelelse er du inde og du skulle meget gerne være inde som root.
Executing shell in 'sarge-i386' chroot.
Da dit basis system ind til videre kun har en root user kan du kun køre dchroot med sudo eller som root.
Før du kan bruge apt-get til at hente pakker med skal du først oprette en sources.list i dit nye debian system. Husk at du skal køre dette i dit nye Debiansystem.
root@sarge-i386:~$ nano -w /etc/apt/sources.list
Rediger filen så den kommer til at se således ud.
deb ftp://mirrors.sunsite.dk/mirrors/debian/ testing main non-free contrib
deb-src ftp://mirrors.sunsite.dk/mirrors/debian/ testing main non-free contrib
deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free
deb-src http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free
Opdater nu apt-get.
root@sarge-i386:~$ apt-get update
Læg mærke til at der står non-free. Dette giver adgang til flash og andre gode sager som IKKE er udgivet under GPL. Jeg er klar over at der er folk som ikke ønsker at støtte disse projekter. Jeg gør derfor opmærksom herpå nu. Ønsker du at fravælge disse pakker skal du slette non-free. Jeg frabeder mig på forhånd at deltage i en evt. følgende diskussion om FSF, OSI og Stallmanns ideologier. Jeg deltager gerne i disse diskussioner i de tråde som relateret til emnet. Jeg håber at dette respekteres så vi ikke får forplumret den eventuelle hjælp som måtte følge i tråden fra mig eller andre. På forhånd tak.
Du har nu et Debian sarge basis system til at ligge i /chroot/sarge-i386.
Det følgende afsnit er ikke nødvendige hvis du blot ønsker et system uden support for grafiske programmer, lyd og fælles brugerdata. Hvis du stopper her vil jeg dog anbefale dig at du opretter en user i dit Debiansystem så du ikke kun kan bruge det som root.
Integration
Ind til videre har du kun et system som du kan tilgå som root og som ikke deler hverken Xserver eller users med resten af dit system. For at få dette til at virke så du kan bruge grafiske programmer og bruge systemet med din(e) eksisterende bruger(e) er der nogle ting som skal gøres.
Først starter du med at logge ud af dit nye sarge system ved at skrive exit eller lukke den terminal som det køre i.
Istedet for at oprette synkrone brugere i systemet kan vi kopiere informationerne direkte over fra vores eksisterende system. Dette kan gøres ved at kopiere passwd, shadow og group direkte ind.
user@system:~$ sudo cp /etc/passwd /chroot/sarge-i386/etc/passwd
user@system:~$ sudo cp /etc/shadow /chroot/sarge-i386/etc/shadow
user@system:~$ sudo cp /etc/group /chroot/sarge-i386/group
Du skal nu redigere din fstab for at dele proc, tmp og home. Har du andre mapper du ønsker at at tilgå kan de tilføjes til på samme måde som home. Husk at eventuelle genveje du har til dine film osv. naturligvis ikke virker hvis stien er forskellig i de to systemer eller er utilgængelig i det ene.
Rediger nu på dit hovedsystem (ikke dit nye Debian system). /etc/fstab
user@system:~$ sudo nano /etc/fstab
Tilføj følgende linier.
#Chroot system /chroot/sarge-i386
proc /chroot/sarge-i386/proc proc defaults 0 0
/tmp /chroot/sarge-i386/tmp none bind 0 1
/home /chroot/sarge-i386/home none bind 0 1
Mount der efter de nye mountpoints.
user@system:~$ sudo mount -a
Bruger du ligesom mig Ubuntu har du ikke mulighed for at bruge su da din useropsætning er den samme som i Ubuntu. Da grundsystemet ikke har sudo logger vi nu ind i systemet som root og opretter et rootpassword. Alternativt kan du også installere sudo og kopiere din /etc/soduers over i dit Debian system, men her beskriver jeg hvordan du fixer din root konto.
user@system:~$ sudo dchroot
root@sarge-i386:~$ passwd
Skriv dit nye password og log ud igen.
root@sarge-i386:~$ exit
Du kan nu bruge su til at skifte fra din normale user til root.
Er du logget ind på dit nye Debian system skal du logge ud ved at skrive exit eller lukke den terminal som det køre i.
For at køre grafiske programmer fra dit sarge-i386 system i dit hovedsystems xserver skal du have installeret libx11-6 på dit sarge-i386 system.
user@system:~$ dchroot -d
user@sarge-i386:~$ su
root@sarge-i386:~$ apt-get install libx11-6
Læg mærke til at jeg bruger -d og nu kan bruge su til at blive root. -d er nødvendigt for at der kan køres programmer som kræver X og det bevare dele af det originale system som fx /dev hvilket også kan være meget praktisk hvis du vil have lyd.
For at komme eventuelle problemer med manglene lyd og andet i forkøbet vil jeg lige minde om at man i Debian skal være medlem af flere grupper for at få ønskede rettigheder til forskellige services. Dette gøres nemt. Skift user ud med dit eget username og kør de af de følgende kommandoer som er nødvendige til dit brug.
root@sarge-i386:~$ adduser user audio
root@sarge-i386:~$ adduser user floppy
root@sarge-i386:~$ adduser user video
root@sarge-i386:~$ adduser user games
root@sarge-i386:~$ adduser user users
root@sarge-i386:~$ adduser user cdrom
En af grundene til at man laver et system som dette, ud over at det er sjovt, er bla. at få en 32bit browser som kan bruge tilhørende 32bit plugins. Lad os derfor nu installere firefox med tilhørende flashplugin. Kør i dit nye Debiansystem som root.
root@sarge-i386:~$ apt-get install mozilla-firefox flashplugin-nonfree
Efter den er færdig luk alle eventuelle firefox vinduer for at ungå bare at få et nyt 64bit vindue åbnet og kør nu firefox fra din dit sarge-i386 system.
Tillykke du køre nu firefox 32bit med flash.
Det smarte ved dchroot er at du ikke behøver at logge ind for at køre et program fra dit chroot'ede system. Prøv at køre følgende kommando i dit normale ubuntusystem. Enten i en konsol eller hvis du bruger gnome "Alt + F2"
user@system:~$ dchroot -d -c sarge-i386 firefox
Som du kan se starter det firefox fra dit nye debiansystem uden at du behøvede at logge ind.
Du kan selvfølgelig integrere firefox med dit hovedsystem.
I en konsol på dit hovedsystem opretter du nu firefox-32bit i /usr/local/bin
user@system:~$ sudo nano -w /usr/local/bin/firefox-32bit
filen skal indeholde følgende linie:
exec dchroot -d -c sarge-i386 firefox
Før at det virker skal filen lige gøres eksekverbar.
user@system:~$ sudo chmod 755 /usr/local/bin/firefox-32bit
Nu kan firefox startes ved at du skriver firefox-32bit I en konsol eller hvad du nu bruger til at starte dine programmer uden at du først skal til at logge ind på dit Debiansystem. Man kan naturligvis også tilføje sine 32bit programmer til sine menuer, paneler eller skrivebord, så du i praktisk brug overhovedet ikke mærker at de køres fra dit Debiansystem.
Du kan bruge dette system til at installere stort set alle de pakker som du ikke kan få til at virke under 64bit. Java vil jeg dog anbefale dig at du installere både under dit 32bit og dit 64bit system og lader være med at integrere på tværs mellem systemerne så du bruger 64bit java til dine javaprogrammer og 32bit java til dit browserplugin i firefox. Et lille tip er at hvis du får sat din fstap op så dine data "film musik osv." har samme sti på dine to systemer kan du fint bruge drag and drop mellem 64bit og 32bit programmer. Det er kun fantasien som sætter grænsen.
Jeg håber at der er andre end mig som kan have lidt glæde af denne metode.
Lit:
/usr/share/doc/dchroot/README
/usr/share/doc/debootstrap/README.Debian
japp