Gentoo

Installeer Gentoo in VirtualBox

Installeer Gentoo in VirtualBox

Gentoo installeren als een VirtualBox VM

Gentoo is een van de meest esoterische distributies die er zijn. Het biedt aanpasbaarheid ten koste van gebruiksvriendelijkheid. Het werpt echter wel licht op de interne werking van een Linux-installatie. Experimenteren met een Gentoo-omgeving in een VM is waarschijnlijk een geweldige manier om te leren over besturingssystemen in het algemeen.

Laten we een stapsgewijs proces doorlopen om het basis-besturingssysteem te installeren, samen met de uitleg achter elke stap.

1. De juiste installatiemedia verkrijgen

De makkelijkste manier om Gentoo te installeren is door gebruik te maken van de Hybrid ISO (LiveDVD). Wat betekent dat de schijfkopie kan worden gebruikt om het besturingssysteem op een andere schijf te installeren of gewoon kan worden gebruikt als een live-omgeving om op te starten voor diagnostische doeleinden.

U kunt het afbeeldingsbestand hier downloaden. Kies degene die bij uw hardwareplatform hoort. Moderne Intel- en AMD-processors bieden meestal AMD64-architectuur.

Vervolgens moet u een VM maken op VirtualBox. Open VirtualBox en klik op de knop met de tekst "Nieuw" nu kun je de naam van de VM invoeren en 'Type' selecteren als Linux en 'Versie' als Gentoo 64-bit.

Stel de geheugengrootte in op 2048 MB en klik vervolgens op "Maken" om door te gaan met het maken van een virtuele harde schijf.

De standaardwaarden zouden in dit geval prima werken (hoewel we gaan werken met 32 ​​GB schijfruimte in plaats van 8 GB) en nu kun je nog een laatste keer op 'Maken' klikken om de details af te ronden.

Selecteer nu de nieuw gemaakte VM van het VirtualBox-dashboard en u wordt gevraagd om een ​​opstartschijf. Klik op het bestandspictogram ernaast en navigeer in de bestandsverkenner die daarna wordt geopend naar het gentoo livecd iso-bestand dat je eerder hebt gedownload.

Zodra u de VM opstart, ziet u het opstartmenu met de volgende opties:

Het selecteren van x86_64 is in dit geval de meest geschikte optie.

Daarna wordt u begroet met een inlogscherm met standaard gentoo-gebruiker, klik op inloggen zonder een wachtwoord in te voeren (zoals aangegeven in de onderstaande schermafbeelding).

Je bevindt je nu technisch gezien in een Gentoo-besturingssysteem. Dit is echter een live-medium, wat betekent dat u het niet kunt gebruiken als een systeem dat op uw (virtuele) harde schijf is geïnstalleerd. Maar je kunt deze omgeving gebruiken om Gentoo op je virtuele harde schijf te installeren.

2. Partitioneren van de virtuele harde schijf

De .vdi-schijf die we eerder hebben gemaakt, is op dit moment slechts een onbewerkte schijf, aangesloten op de virtuele machine en de VM zelf draait de Gentoo live-media. Om nu de Gentoo-omgeving op deze schijf te installeren, zodat deze zichzelf kan opstarten, moeten we verschillende dingen doen.

  1. Maak de schijf opstartbaar.
  2. Formatteer de schijf met een bestandssysteem
  3. Installeer de Gentoo-basisafbeelding op het rootbestandssysteem.

Om de eerste taak te volbrengen, hoeven we alleen maar 4 partities van de volgende grootte te maken en bij voorkeur in de volgende volgorde:.

  1. Bootloader-partitie voor grub: 50 MB groot
  2. Opstartpartitie geformatteerd ext4: 500 MB groot
  3. Wissel partitie voor wisselbestand: 2000 MB groot
  4. Rootpartitie voor hoofdbesturingssysteem en gerelateerde binaire bestanden om te verblijven. Geformatteerd met ext4-bestandssysteem en zal de resterende meerderheid van de ruimte op de virtuele schijf in beslag nemen.

Om de partities te maken, moeten we eerst de naam krijgen van de virtuele schijf die aan het systeem is gekoppeld. Open terminal (konsole) en start sudo -i om root-gebruiker te worden en vervolgens uit te voeren lsblk om alle apparaten voor blokopslag weer te geven.De apparaatnaam in ons geval is sda is sda en het heeft een grootte van 32 GB. Vervolgens moeten we het parted-hulpprogramma invoeren om deze schijf te partitioneren. Voer hiervoor als root uit:

$ parted -a optimale /dev/sda

Nu zijn we in het gescheiden hulpprogramma CLI, laten we beginnen met het opsommen van alle partities door print te typen:

En we krijgen een foutmelding dat de schijf niet wordt herkend. Dit is te verwachten aangezien het installatieproces met Gentoo niet geautomatiseerd is, je mag elk klein detail handmatig configureren, inclusief de partitioneringsdetails voor je basissysteem. Laten we eerst onze schijf een goed label geven.

(gescheiden) mklabel gpt

GPT-labels zijn essentieel voor het uniek identificeren van een apparaat, zelfs nadat bijvoorbeeld het systeem opnieuw is opgestart en het apparaat is aangesloten op een andere poort. Dit label is verantwoordelijk voor het vertellen aan het besturingssysteem dat de schijf zojuist SATA-poorten heeft gewijzigd, maar dat het nog steeds dezelfde gegevens zijn en formatteer zoals voorheen.

Partitioneer de schijf door de volgende commando's uit te voeren (regels die beginnen met het '#'-symbool zijn opmerkingen om het bovenstaande commando uit te leggen):

(deel)eenheid MB
#Stelt het apparaat in op MegaBytes
(parted)mkpart primair 1 20
#Maakt een primaire partitie vanaf 1 MegaByte tot #20th voor bios
(parted)mkpart primaire 21 500
#Partition /boot bestandssysteem
(parted)mkpart primair 501 2500
#Partitie van grootte 2000MB gemaakt voor swap
(parted)mkpart primair 2501 -1
#Partition voor het /(root) bestandssysteem. -1 geeft aan dat
#deze partitie gaat tot aan het einde van de schijf.

Je kunt zien dat elke partitie een nummer heeft en van het type primair is. Ze zijn echter niet geformatteerd met een bepaald bestandssysteem of hebben geen gebruiksnamen of vlaggen ingesteld. Laten we dat doen.

(gescheiden)naam 1 grub
(uit elkaar) zet 1 bios_grub aan
#De partitie nummer 1 heeft zijn bios_grub vlag ingesteld op één
#en krijgt een toepasselijke naam.
(parted)name 2 boot
(gescheiden)naam 3 swap
(parted)name 4 root
(uit elkaar) stoppen

Na het instellen van de juiste namen voor alle 4 partities en 1 bios_grub-vlag voor de eerste partitie, sluiten we het gescheiden hulpprogramma af. Nu gaan we verder met het formatteren van de partities met een geschikt bestandssysteem in onze gebruikelijke bash-shell (nog steeds als root-gebruiker) door eerst de volgende opdracht uit te voeren:

$lsblk
#Om alle partities weer te geven en hun apparaatknooppuntnamen te controleren

U kunt zien dat het partitioneringsschema de eerste partitie heeft gelabeld sda1 wat overeenkomt met de grub-partitie enzovoort, enzovoort, totdat sda4. De apparaten zijn aanwezig in /dev directory als /dev/sda1 , /dev/sda2 enzovoort.

Voer de opdrachten uit om ze dienovereenkomstig te formatteren:

$mkfs.ext4 /dev/sda2
$mkfs.ext4 /dev/sda4
$mkswap /dev/sda3
$swapon /dev/sda3

Nu kunnen we deze partities in de huidige live-omgeving mounten, zodat alle noodzakelijke bewerkingen, zoals het bouwen van de kernel, daar kunnen worden uitgevoerd en permanent kunnen worden opgeslagen.

$mount /dev/sda4 /mnt/gentoo
$mkdir /mnt/gentoo/boot
$mount /dev/sda2 /mnt/gentoo/boot

Onze root-partitie is gemount op /mnt/gentoo van de huidige livecd-omgeving en op dezelfde manier is onze boot-partitie gemount op /mnt/gentoo/boot.

3. Tarball downloaden en chroot gebruiken

Nu we onze schijf voor ons hebben klaargemaakt, is het tijd voor ons om de tarball van de gentoo-broncode te krijgen en deze daarin te plaatsen. Open in de live-cd-omgeving de browser, open deze link en klik op de Stage3-archieven onder het amd64-gedeelte bovenaan de pagina.

Zodra de download is voltooid, kopieert u de tarball naar de / mnt/gentoo directory en pak de inhoud daar uit.

$cp /home/gentoo/Downloads /mnt/gentoo
$tar xpf stage3-*.teer.xz --xattrs-include='*.*'
--numerieke eigenaar

In het tweede commando wordt het tar-hulpprogramma gebruikt om de tarball te decomprimeren. xpf  vertelt het tar-commando dat we willen X extract, p rechten behouden voor de bestanden en f om te impliceren dat we bestanden uitpakken en niet standaardinvoer.

De bestandsextensie is mogelijk niet: teer.xz in jouw geval. Let op de naam van uw tarball-bestand en typ dienovereenkomstig in.

De --xattrs-inclusief een deel van de opdracht behoudt de attributen (lezen, schrijven en uitvoeren) van individuele bestanden

En de --numerieke eigenaar zorgt voor een groeps- en gebruikers-ID-nummer zoals goedgekeurd door de Gentoo-conventie voor een typische installatie.

Als u de inhoud ziet die zou worden geëxtraheerd in uw / mnt/gentoo directory ze zouden lijken op een typische Unix-rootomgeving met directory zoals /etc /sbin, enz. Het idee hierachter is dat, zodra alle bestanden die nodig zijn voor een werkende Gentoo-omgeving zijn uitgepakt, we onze hoofdmap zullen veranderen in / mnt/gentoogebruik tools en pakketbeheerders om het te configureren. De pakketbeheerder zou wijzigingen aanbrengen in de / directory, maar het zou worden bedrogen om wijzigingen aan te brengen in / mnt/gentoo map in plaats daarvan.

Aangezien onze rootpartitie in deze map is gemount, zouden alle wijzigingen daar worden aangebracht en dan zouden we deze nieuwe omgeving opstarten zodra we klaar zijn.

Maar laten we eerst een paar wijzigingen aanbrengen in de configuratiebestanden:

$nano /gentoo/mnt/etc/portage/make.conf

Na de CFLAGS regel zou je de volgende regels moeten toevoegen die portage in staat zouden stellen om c++-bestanden op dezelfde manier te behandelen als c-bestanden. Portage is gentoo's pakketbeheerder, losjes gesproken. Het wordt gebruikt om de broncode van programma's op te halen, zodat je ze allemaal (automatisch) op je eigen systeem kunt compileren.

$CXXFLAGS="$CFLAGS"

Kopieer ook de resolutie.conf-bestand van uw livec-omgeving naar de nieuwe root.

$cp -L /etc/resolv.conf /mnt/gentoo/etc/

Nu zorgen we ervoor dat alle bestandssystemen die de Linux-kernel nodig heeft om informatie over het systeem te verzamelen, beschikbaar zijn wanneer het probeert op te starten. Dus we nemen de informatie die is verzameld door de livecd-afbeelding over onze virtuele machine en zijn hardware en we binden die aan ons nieuwe rootbestandssysteem.

$mount -t proc /proc /mnt/gentoo/proc
$mount --rbind /sys /mnt/gentoo/sys
$mount --rbind /dev /mnt/gentoo/dev

Het is tijd voor ons om te chrooten (root veranderen) naar / mnt/gentoo.

$chroot /mnt/gentoo /bin/bash
$bron /etc/profile
$export PS1="(chroot) $PS1"

4. De Linux-kernel compileren

Laten we onze portage tree (software repository) synchroniseren met de officiële versie. Dit is vergelijkbaar met geschikte update in Ubuntu.

$emerge-webrsync

Zodra dat is voltooid, kunnen we een profiel voor ons systeem selecteren. Wat het systeem in wezen afstemt op een specifieke use-case (server, werkstation, enz.).). We gaan voor een KDE-plasma-omgeving die op nummer zes staat vermeld.

$eselect profiellijst
$eselect profielset 6

Tijdzone- en landinstellingen zijn de volgende:

$ls /usr/share/zoneinfo

Zoek uw locatie in deze map. In dit geval was het Azië/Dili

$cp /usr/share/zoneinfo/Continent/City /etc/localtime
$echo "Azië/Dili" > /etc/timezone

Verwijder vervolgens de locatiespecifieke tekenset en taal die u wilt gebruiken uit het bestand /etc/locale.gen. We hebben de regel verwijderd nl VS.UTF-8 UTF-8.

$nano /etc/locale.gen

Pas de wijzigingen toe:

$locale-gen
$env-update && bron /etc/profile

Nu kunnen we Linux-kernelbronnen ophalen en beginnen met het compileren ervan:

$emerge gentoo-sources
$emerge genkernel
$genkernel alles

Het laatste commando zal beginnen met het compileren van de kernel, wat lang zou duren, vooral als je beperkte hardwarebronnen hebt.

5. Afwerking

Na de kernelcompilatie hoeven we alleen nog een paar wijzigingen aan te brengen, zoals het installeren van grub, het toevoegen van een gebruiker en ervoor zorgen dat het besturingssysteem de essentiële bestandssystemen automatisch aankoppelt tijdens het opstartproces.

Om ervoor te zorgen dat het laatste van die dingen gebeurt, bewerkt u het bestand in de chroot-omgeving /etc/fstab waar fstab staat voor bestandssysteemtabel:

$nano /etc/fstab

Voeg onderaan het bestand de volgende regels toe:

/dev/sda2 /boot     ext4    standaardwaarden,noatime     0 2
/dev/sda4 /    ext4    noatime              0 1
/dev/sda3 geen swap  sw                   0 0

Installeer de DHCP-client zodat uw VM een netwerkverbinding heeft.

$emerge dhcpcd

Zorg ervoor dat de DHCP-client start bij het opstartproces:

$rc-update voeg dhcpcd standaard toe

Het instellen van een wachtwoord voor de rootgebruiker is net zo eenvoudig als het onderstaande commando invoeren en je nieuwe wachtwoord invoeren wanneer daarom wordt gevraagd:

$passwd

Een nieuwe gebruiker toevoegen met de naam bob voer de opdracht in:

$useradd -m -G gebruikers,wiel,portage -s /bin/bash bob
$passwd bob ## Dit is om een ​​wachtwoord in te stellen voor gebruiker bob

We hebben ook sudo nodig, dus laten we dat installeren:

$emerge sudo

En laat de leden van de wielgroep vervolgens een willekeurig commando uitvoeren, we moeten het bestand /etc/sudoers bewerken:

$visudo

Ten slotte moeten we de grub-bootloader installeren en configureren:

$emerge grub
$grub-install /dev/sda
$grub-mkconfig -o /boot/grub/grub.cfg

Nu kunnen we de chroot-omgeving verlaten en de bestandssystemen ontkoppelen:

$exit
$umount -l /mnt/gentoo/dev/shm,/pts,
$umount -l /mnt/gentoo/boot,/proc,
$nu afsluiten

Ga naar de instelling van de VM en verwijder in het opslaggedeelte de livevd-afbeelding die aan de VM is gekoppeld.

Bij het opnieuw opstarten van de VM wordt u begroet met een tty-interface naar uw nieuw geïnstalleerde Gentoo-besturingssysteem. Log in met de gebruikersnaam en het wachtwoord die je tijdens de installatie hebt gekozen.

Conclusie

Alleen het installatieproces voor Gentoo onthult veel meer over de interne werking en structuur onder de meeste Unix-omgevingen. Als iemand een diepere kennis van het systeem wil verwerven, zou het Gentoo-handboek een geweldige plek zijn om te beginnen!

Top 5 ergonomische computermuisproducten voor Linux
Veroorzaakt langdurig computergebruik pijn in uw pols of vingers?? Heb je last van stijve gewrichten en moet je constant de hand schudden?? Voelt u ee...
Hoe de muis- en touchpad-instellingen te wijzigen met Xinput in Linux
De meeste Linux-distributies worden standaard geleverd met de bibliotheek "libinput" om invoergebeurtenissen op een systeem af te handelen. Het kan in...
Wijs uw muisknoppen anders toe voor verschillende software met X-Mouse Button Control
Misschien heeft u een tool nodig waarmee u de bediening van uw muis kunt veranderen bij elke applicatie die u gebruikt. Als dit het geval is, kunt u e...