Wanneer de standaard boot-van-cd installatie methode niet werkt (of als deze methode je gewoon niet bevalt), dan moet je deze HOWTO zeker lezen. De bedoeling van dit document is om als een soort van vergaarbak te dienen waarin de verschillende wijzes beschreven worden waarop Gentoo Linux geïnstalleerd kan worden. Als je zelf een installatie-methode kent die je erg handig of grappig vindt, twijfel dan niet om deze installatie-wijze te beschrijven, maar stuur het in het engels naar mij.
2. Booten met de LiveCD en de Smart BootManager
Download de Smart BootManager van http://btmgr.sourceforge.net/download.html. Linux broncode of binair formaat alsook windows .exe bestanden zijn beschikbaar tesamen met taalpakketten. Op dit moment raden we je aan om het binair formaat te nemen aangezien de broncode niet zal compileren met nieuwe versies van nasm.
Compileer het pakket van broncode of neem de binaire versie. Er zijn verschillende opties die je kan gebruiken terwijl je je boot floppy aanmaakt zoals hierna vermeld.
Codevoorbeeld 2.1: Smart BootManager Options |
sbminst [-t theme] [-d drv] [-b backup_file] [-u backup_file]
-t theme select the theme to be used, in which the theme could be:
us = English theme de = German theme
hu = Hungarian theme zh = Chinese theme
ru = Russian theme cz = Czech theme
es = Spanish theme fr = French theme
pt = Portuguese theme
-d drv set the drive that you want to install Smart BootManager on;
for Linux:
/dev/fd0 is the first floppy driver,
/dev/hda is the first IDE harddisk driver.
/dev/sda is the first SCSI harddisk driver.
for DOS:
0 is the first floppy drive
128 is the first hard drive;
-c disable CD-ROM booting feature;
-b backup_file backup the data that will be overwrited for future uninstallation;
-u backup_file uninstall Smart BootManager, should be used alone;
-y do not ask any question or warning.
|
Codevoorbeeld 2.2: Gebruik maken van sbminst om de bootfloppy te maken |
# sbminst -t us -d /dev/fd0
|
Nota: Vervang fd0 met je floppy device naam indien dit nodig is. |
Plaats nu simpelweg de floppy in de floppydrive van de computer van welke je de LiveCD wil booten, tesamen met de LiveCD (in de CD-ROM drive dan) en boot de computer.
Je zal begroet worden met de Smart BootManager dialog. Selecteer je CD-ROM en druk op Enter om de LiveCD te booten. Eenmaal geboot ga dan verder met de standaard installatieinstructies.
Voor meer informatie over Smart BootManager, ga naar http://btmgr.sourceforge.net.
Nota: Knoppix is alleen maar beschikbaar voor x86 gebruikers. |
Booten van de Knoppix LiveCD is een manier om een volledig werkend Linux systeem te hebben terwijl je Gentoo aan het installeren bent. TuxRacer zal je helpen de tijd te doden terwijl je op de bootstrap aan het wachten bent.
Waarschuwing: Wees ervan bewust dat je niets kan opsparen in knoppix! Als je iets in je homedirectory zet, kun je er niet meer aan na een reboot (in Gento dus). Spaar belangrijke bestanden op een harde schijf en/of andere computer!. |
Boot van de Knoppix CD. Het doet algemeen gezien een goede hardware detectie. Het kan wel voorkomen dat je wat bootopties zal moeten meegeven.
Standaard boot Knoppix een KDE 3.0 desktop. Het eerste wat je doet is een konsole opstarten en sudo passwd root uitvoeren. Hiermee stel je Knoppix' root paswoord in.
Vervolgens su je naar root en type je usermod -d /root -m root in. Dit stelt de gebruiker haar root homedirectory in op /root in plaats van /home/root (welke Knoppix gebruikt). Indien je dat niet doet zal je foutmeldingen krijgen zoals "/home/root: not found" of iets dergelijks.
Hierna type je exit en su je terug naar root. Hiermee start je de aanpassingen die je met het usermod commando gemaakt hebt. Maak nu het /mnt/gentoo aanknopingspunt door mkdir:
Codevoorbeeld 3.1: Het /mnt/gentoo aanknopingspunt aanmaken |
# mkdir /mnt/gentoo
|
Hier kun je ver der de standaard instalatie documentie verder volgen op de volgende locatie Voorbereiden van de harde schijven. Hoewel, als je gevraagd wordt het proc systeem te mounten, gebruik je best het volgende commando in de plaats van het gebruikte.
Codevoorbeeld 3.2: Het pseudo bestandssysteem proc mounten |
# mount -o bind /proc /mnt/gentoo/proc
|
Weet ook dat sommige van de portage-eigenschappen niet werken knoppix. Kijk zeker uit met userpriv en usersandbox. ALs je errors krijgt, schakel je sommige of alle extra opties best af.
4. Installeren vanaf niveau 1 zonder netwerk toegang
Brand een LiveCD iso.
Download de laatste portage snapshot van http://distro.ibiblio.org/pub/linux/distributions/gentoo/snapshots/ (of van je favoriete mirror). Plaats deze tarball ergens op een bestaande partitie of brand deze op CD.
Volg alle instructies van de Gentoo Installatie Handleiding tot chroot /mnt/gentoo in hoofdstuk 6. Indien je maar 1 CD-ROM hebt, vergeet niet om de bootoptie docache te gebruiken als je boot, want anders kan je de LiveCD niet unmounten om je portage snapshot CD te mounten.
Open een nieuwe console (Alt-F2), in deze console ga je verder met de installatie tot aan het uitvoeren van het bootstrap.sh script.
Waarschuwing: Voor oudere versies van de LiveCD is het nodig om het wachtwoord aan te passen middels het passwd commando, en handmatig in te loggen. |
Ga terug naar de originele console en mount de tweede CD op /mnt/gentoo/mnt/cdrom2. Kopieer de portage tarball van deze cd en pak deze uit in /mnt/gentoo/usr/portage.
Codevoorbeeld 4.1: De snapshot CD mounten en de stappen uitvoeren |
# umount /mnt/cdrom # mkdir /mnt/gentoo/mnt/cdrom2 # mount /dev/cdroms/cdrom0 /mnt/gentoo/mnt/cdrom2 # cp /mnt/gentoo/mnt/cdrom2/portage-$date.tar.bz2 /mnt/gentoo/usr/portage # cd /mnt/gentoo/usr/portage # tar xvjpf portage-$date.tar.bz2 |
Ga nu terug naar de andere console. Indien je nu bootstrap.sh wil uitvoeren zal dit mislukken aangezien je geen bestanden kan downloaden. We zullen deze bestanden ergens anders downloaden en deze in /usr/portage/distfiles plaatsen (via de andere console).
Je moet een lijst van stage1-pakketten hebben: glibc, baselayout, texinfo, gettext, zlib, binutils, gcc, ncurses alsook hun afhankelijke pakketten.
Nota: Je moet er tevens voor zorgen dat je de versie van het pakket gebruikt dat met je Portage structuur overeen komt. |
Codevoorbeeld 4.2: Het download-lijst krijgen |
(Vergeet de 2 die voor de > staat niet;) # emerge -fp glibc baselayout texinfo gettext zlib binutils gcc ncurses 2> stage1.list # dl-list.sh glibc baselayout texinfo gettext zlib binutils gcc ncurses > stage1.list # mount -t vfat /dev/fd0 /mnt/floppy # cp /mnt/gentoo/stage1.list /mnt/floppy # umount /mnt/floppy |
Breng deze floppy naar een machine met een snelle internettoegang en geef deze lijst aan wget:
Breng deze floppy naar een machine met een snelle internettoegang. Als je kijkt naar het stage1.list bestand, zul je zien dat het je enkele url's. Spijtig genoeg, geeft het je ook mogelijke URLs voor elk pakket, wat je dus niet echt nodig hebt. Verwijder alle URLs behalve de eerste.
Codevoorbeeld 4.3: selectief URLs verwijderen |
(Dit script hangt af van het terugkeer-formaat die emerge ons geeft. Deze kan in de toekomst veranderen zonder enige waarschuwing. Gebruik dit script voorzichtig! # cut -f 1 -d ' ' stage1.list > stage1.download |
Gebruik nu wget om alle opgegeven bronnen te downloaden.
Codevoorbeeld 4.4: Wget gebruiken om de bron-pakketten te downloaden |
# wget -N -i stage1.download
|
Als je eenmaal alle bestanden gedownload hebt brand je ze op CD en kopieer je ze naar /mnt/gentoo/usr/portage/distfiles op de PC waar je Gentoo aan het installeren bent. Je kan dan bootstrap.sh uitvoeren. Herhaal deze stappen voor de stage2 en stage3 procedures.
5. Installeren van Gentoo vanaf een bestaande Linux distributie
Om Gentoo vanaf een bestaande Linux distributie te installeren, dien je het chroot commando geïnstalleerd te hebben. Daarnaast moet je een kopie van de Gentoo Linux installatie tarball of ISO hebben. Ook wordt er de voorkeur gegeven aan een internetverbinding zodat je meer op je systeem kunt zetten dan dat in de tarball of ISO zit. Een tarball is overigens een bestand dat eindigt op .tbz of .tar.gz. De schrijver gebruikt RedHat Linux 7.3 als besturingssysteem, maar dat is verder niet erg belangrijk voor deze installatie-methode. Let's get started!
We zullen eerst een partitie aan Gentoo toewijzen door onze bestaande Linux partitie te veranderen in grootte. Dan mounten we deze nieuwe partitie, pakken de tarball uit die gemount is, chrooten in het proto-systeem en beginnen met het compilen. Zodra het bootstrap-proces afgerond is, zullen er nog enkele configuraties toegepast worden zodat we zeker weten dat het systeem wil booten. Zodra we dat gedaan hebben zijn we zover dat we de computer opnieuw kunnen opstarten, en Gentoo Linux kunnen laden.
Hoe zouden we plek kunnen maken voor Gentoo Linux?
De root partitie is het bestandssysteem gemount onder "/". Het mount commando laat zien waar ik het over heb. We zullen ook df (disk free) gebruiken om te zien hoeveel ruimte ik over heb, en hoe ik mijn partitie zal resizen. Merk op dat het niet verplicht is je root partitie in grootte te veranderen! Je kan alles resizen waar onze resizer support aan biedt. Hier komen we zo op terug.
Codevoorbeeld 5.1: Bestandssysteem informatie |
# mount /dev/hdb2 on / type ext3 (rw) none on /proc type proc (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) none on /dev/shm type tmpfs (rw,nodev,nosuid,noexec) # df -h Filesystem Size Used Avail Use% Mounted on /dev/hdb2 4.0G 1.9G 2.4G 82% / none 38M 0 38M 0% /dev/shm |
Zoals we kunnen zien heeft de partitie die gemount is als "/" de naam /dev/hdb2, waarop 2.4 gigabyte ruimte is. In mijn geval denk ik dat ik deze partitie op een manier ga aanpassen, zodat er nog maar 400 megabyte vrije ruimte op is. Er gaan dus 2 gigabyte naar de Gentoo Linux partitie. Niet slecht, daar kan flink wat op geïnstalleerd worden. Voor de meeste gebruikers zal 1 gigabyte al ruim genoeg zijn. Laten we dit ding partitioneren!
Parted installeren om een partitie te resizen
Parted is een programma dat geleverd wordt door de GNU stichting. Dit is een oud, respectvol en enorm project, wiens software je op dit moment gebruikt. Er is een zeker programma dat extreem bruikbaar is op dit moment. De naam is parted, een partitie editor dat verkrijgbaar is op http://www.gnu.org/software/parted/
Nota: Er zijn andere tools om partities te resizen. De schrijver is echter onzeker of niet geïnteresseerd in PartitionMagic(tm) of andere software die hetzelfde doen. Het is de taak van de lezer om dit uit te zoeken. |
Zoek op die pagina het soort bestandssysteem dat je wilt resizen, en kijk of parted dat aankan. Zoniet, pech gehad. Je zal een complete partitie moeten opofferen om ruimte te kunnen maken voor Gentoo Linux. Download de software en installeer het vervolgens. Nu lopen we tegen een probleem aan. We willen de root partitie resizen, en daarom moeten we van een diskette booten dat een minimaal Linux systeem bevat. Ook parted dient op de diskette te staan. Dit opstarten vanaf diskette is nodig om "/" te kunnen resizen. Als je de partitie kunt unmounten terwijl je onder Linux zit, heb je geluk. Je hoeft dan niet te doen wat hieronder beschreven wordt. Compileer simpelweg parted, en start het vanaf een unmounted partitie die je graag wilt resizen. Hieronder wordt beschreven hoe ik het heb gedaan voor mijn systeem.
Belangrijk: Wees er zeker van dat de dingen die je wilt gaan doen ondersteund worden door parted! |
Download mininux boot/root diskette (gratis) van http://mininux.free.fr/uk/ en maak een diskette zoals gesuggereerd wordt in de documentatie die meegeleverd wordt in het bestand dat je zojuist gedownloaded hebt. Zodra je diskette klaar is, kan je je computer herstarten en deze van de diskette laten booten.
Nota: Merk op dat Linux is synoniem is aan "Er zijn meerdere manieren om het te doen". Het uiteindelijke doel is om parted op een unmounted partitie te hebben, zodat het zijn werk kan doen. Misschien gebruik je een andere boot/root diskette dan mininux . Misschien is het zelfs helemaal niet nodig om deze stap uit te voeren als het bestandssysteem al geunmount is. |
Codevoorbeeld 5.2: Utilitydisk formatteren |
# mkfs.minix /dev/fd0
480 inodes
1440 blocks
Firstdatazone=19 (19)
Zonesize=1024
Maxsize=268966912
|
Nota: We gaan nu verder met parted. Als het nog niet gedownloaded en untarred hebt, doe dat dan nu. Zorg dat je in doe juiste directory zit, en voer de volgende commando's in. |
Codevoorbeeld 5.3: Utilityfloppy configureren |
# mkdir /floppy; mount -t minix /dev/fd0 /floppy &&
export CFLAGS="-O2 -pipe -fomit-frame-pointer -static" && ./configure
&& make && cp parted/parted /floppy && umount /floppy
|
Gefeliciteerd, je bent nu klaar om je computer opnieuw op te starten en de partitie te resizen. Kijk nog wel even snel op de GNU website voor extra informatie. Het resizen zou minder dan 30 minuten in beslag moeten nemen voor de grootste harde schijven, dus heb geduld. Herstart je computer met de mininux bootdiskette. Zodra je ingelogd bent stop je de utility diskette in het diskettestation en typ je mount /dev/fd0 /floppy waardoor je parted onder /floppy hebt staan. Daar ga je. Zodra je parted start zul je in staat zijn je partitie te resizen. Zodra dit proces voltooid is zijn we klaar voor het echte werk, door een begin te kunnen maken met het installeren van Gentoo Linux. Start je computer opnieuw op zodat je weer in je oude Linux distributie terechtkomt. Stel dat we /dev/hda3 willen resizen, dat zich op /dev/hda bevindt.
Codevoorbeeld 5.4: Uit te voeren commando's zodra je ingelogd bent in het mininux systeem |
# mount /dev/fd0 /floppy # cd /floppy; ./parted [drive you wish to operate on] (parted) print Disk geometry for /dev/hdb: 0.000-9787.148 megabytes Disk label type: msdos Minor Start End Type Filesystem Flags 1 0.031 2953.125 primary ntfs 3 2953.125 3133.265 primary linux-swap 2 3133.266 5633.085 primary ext3 4 5633.086 9787.148 extended 5 5633.117 6633.210 logical 6 6633.242 9787.148 logical ext3 (parted) help resize resize MINOR START END resize filesystem on partition MINOR MINOR is the partition number used by Linux. On msdos disk labels, the primary partitions number from 1-4, and logical partitions are 5 onwards. START and END are in megabytes (parted) resize 2 3133.266 4000.000 |
Belangrijk: Heb geduld! De computer is bezig! Kijk naar de hardware LED op je computerkast om te zien of hij nog daadwerkelijk bezig is. Dit proces kan tussen de 2 en 30 minuten duren. |
Als je je partitie eenmaal hebt geresized dien je je computer opnieuw op te starten. Ga vervolgens naar Het Gentoo Handboek: Installatie van de Gentoo Installatie bestanden en volg de instructies. Als je gaat chrooten gebruik dan het volgende commando om de omgeving te resetten:
Codevoorbeeld 5.5: Resetten van de chroot omgeving |
# env -i HOME=$HOME TERM=$TERM chroot /mnt/gentoo /bin/bash # /usr/sbin/env-update # source /etc/profile |
Veel plezier!
6. Diskloze installatie via PXE boot
Je moet een netwerkkaart hebben die PXE ondersteunt, zoals verschillende 3com kaarten. Je moet tevens een BIOS hebben die PXE boots ondersteunt.
Allereerst moet je de directories aanmaken waar je je systemen zal opslaan. Maak een directory genaamd /diskless welke directories zal bevatten voor alle diskloze clients. Voor de rest van dit document gaan we werken aan de client 'eta'.
Codevoorbeeld 6.1: Directory installatie |
# mkdir /diskless # mkdir /diskless/eta # mkdir /diskless/eta/boot |
De client zal de bootinformatie via DHCP verkrijgen en alle vereiste bestanden via TFTP downloaden. Installeer DHCP en configureer ze voor een gewoon netwerk. Voeg dan het volgende toe aan je /etc/dhcp/dhcpd.conf.
Nota: In dit voorbeeld leveren we een statisch IP adres aan de client en een pad naar het PXE bootbestand, genaamd pxegrub. Je moet de MAC-adressen in dit voorbeeld vervangen met de werkelijke MAC adressen, alsook met de juiste directories. |
Om DHCPd te starten, voer simpelweg emerge dhcp (of een andere DHCP server naar jouw keuze) in. Controleer dat het correcte interface is geselecteerd in /etc/conf.d/dhcp
Codevoorbeeld 6.2: dhcpd.conf |
option option-150 code 150 = text;
ddns-update-style none ;
host eta {
hardware ethernet 01:23:45:67:89;
fixed address (ip adres);
option option-150 "/etc/boot/grub.lst";
filename "/etc/boot/pxegrub";
}
|
Voor TFTP installeer je app-admin/tftp-hpa. In /etc/conf.d/in.tftpd plaats je het volgende:
Codevoorbeeld 6.3: in.tftpd |
INTFTPD_PATH="/diskless"
INTFTPD_USER="nobody"
INTFTPD_OPTS="-u ${INTFTPD_USER} -I -vvvvvv -p -c -s ${INTFTPD_PATH}"
|
Om PXE booten te ondersteunen gebruiken we GRUB. Je moet deze manueel compileren om PXE bestanden te ondersteunen, maar dat is zeer eenvoudig. Download eerst de laatste versie van de GRUB broncode (emerge -f grub) welke geplaatst wordt in /usr/portage/distfiles). Kopieer de tarball in /diskless en compileer ze om een PXE binair bestand te maken. Eenmaal het bestand aangemaakt is kopieer je ze naar de distloze client bootdirectory. Daarna passen we de grub.lst configuratie aan.
Codevoorbeeld 6.4: GRUB configureren, compileren en klaarstomen |
# tar zxvf grub-0.92.tar.gz # cd grub-0.92 # ./configure --help (In de opties zal je verschillende ondersteunde netwerkinterfaces vinden) (Selecteer de driver compatibel met je kaart. Wij gebruiken $nic als voorbeeld.) # ./configure --enable-diskless --enable-$nic # make # cd stage2 # cp pxegrub /diskless/eta/boot/pxegrub # nano -w /diskless/eta/boot/grub.lst |
Codevoorbeeld 6.5: grub.lst |
default 0 timeout 30 title=Diskloze Gentoo root (nd) kernel /eta/bzImage ip=dhcp root=/dev/nfs nfsroot=(ip adres):/diskless/eta (Voor de nfsroot optie moet je het ip adres van de NFS server geven alsook de directorie waarin de bestanden zitten op de server.) |
NFS configureren is eenvoudig: het enige wat je moet toevoegen is een regel aan /etc/exports:
Codevoorbeeld 6.6: /etc/exports |
# nano -w /etc/exports
/diskless/eta eta(rw,sync,no_root_squash)
|
Update je hosts bestand:
Codevoorbeeld 6.7: /etc/hosts |
127.0.0.1 localhost 192.168.1.10 eta.example.com eta 102.168.1.20 sigma.example.com sigma |
Het systeem op de server aanmaken
Je kan de server herstarten met een Gentoo LiveCD. Maar je kan ook onmiddelijk verdergaan met de gentoo installatieprocedure zoals uitgelegd in de Gentoo Installatie Handleiding, maar met de volgende verschillen: wanneer je het bestandssysteem mount voer je de volgende commandos uit; je moet geen andere partities mounten aangezien alle bestanden in /diskless/eta zullen geplaatst worden.
Codevoorbeeld 6.8: Het bestandssysteem mounten |
# mount /dev/hdaX /mnt/gentoo
|
In het volgende voorbeeld maken we gebruik van een stage3 tarball. Mount /proc in je directory en chroot erin om de installatie te vervolgen. Volg de installatieinstructies tot aan de kernelconfiguratie.
Waarschuwing: Zorg ervoor dat je de tarball op de juiste positie uitpakt |
Codevoorbeeld 6.9: De niveau tarball uitpakken |
# cd /mnt/gentoo/diskless/eta # tar -xvjpf /mnt/cdrom/gentoo/stage3-*.tar.bz2 # mount -t proc /proc /mnt/gentoo/diskless/eta/proc # cp /etc/resolv.conf /mnt/gentoo/diskless/eta/etc/resolv.conf # chroot /mnt/gentoo/diskless/eta /bin/bash # env-update # source /etc/profile |
Wanneer je make menuconfig uitvoert, zorg er dan voor dat de volgende zaken zeker meegecompileerd worden samen met de andere aangeraden opties van de normale installatie handleiding.
Codevoorbeeld 6.10: menuconfig opties |
- Je netwerkkaart ondersteuning
(In de kernel, *niet* als module!)
- Onder "Networking Options":
[*] TCP/IP networking
[*] IP: kernel level autoconfiguration
[*] IP: DHCP support
[*] IP: BOOTP support
- Onder "File systems --> Network File Systems":
<*>* NFS file system support
[*] Provide NFSv3 client support
[*] Root file system on NFS
|
Configureer nu de /etc/fstab:
Codevoorbeeld 6.11: /etc/fstab |
# nano -w /etc/fstab
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
proc /proc proc defaults 0 0
tmpfs /dev/shm tmpfs nodev,nosuid,noexec 0 0
|
Je moet ook tegengaan dat de client het bestandssysteem controleerd:
Codevoorbeeld 6.12: Voorkom dat de client een controle van het bestandssysteem doet |
# touch /fastboot # echo "touch /fastboot" >> /etc/conf.d/local.start |
Installeer nfs-utils ! Je client zal er trouwens van af hangen:
Codevoorbeeld 6.13: Installatie van nfs-utils |
# emerge nfs-utils
|
Installeer geen bootloader! We hebben er al namelijk eentje: pxegrub. Werk gewoonweg de installatie af en herstart de server. Start de services die je nodig hebt om de nieuwe client te booten: DHCP, TFTPD en NFS.
Codevoorbeeld 6.14: Services starten |
# /etc/init.d/dhcp start # /etc/init.d/in.tftpd start # /etc/init.d/nfs start |
Opdat de nieuwe client correct zou booten moet je de BIOS configureren alsook de netwerkkaart zodat beide PXE gebruiken als eerste bootmethode - dus voor de CD-ROM of floppy. Indien je hier hulp voor nodig hebt consulteer je beter je hardware handleidingen of de website van je computerhardware. De netwerkkaart zou een IP moeten krijgen via DHCP en de GRUB PXE downloaden via TFTP. Daarna zal je een mooi zwart/wit GRUB bootmenu moeten zien waarin je de kernel kan selecteren en op enter drukken. Indien alles in orde is zal de kernel booten, de root mounten via NFS en je een login prompt geven.
Geniet van je diskloos systeem!
The contents of this document are licensed under the Creative Commons - Attribution / Share Alike license.