D.3. Debian GNU/Linux installeren vanuit een Unix/Linux-Systeem

In dit onderdeel wordt beschreven hoe u Debian GNU/Linux installeert vanuit een bestaand Unix- of Linux-systeem zonder gebruik te maken van het menu-georiënteerde installatiesysteem waarover het in de rest van deze handleiding gaat. Om een dergelijke cross-installatie HOWTO werd verzocht door gebruikers die naar Debian GNU/Linux wilden overschakelen vanuit Red Hat, Mandriva, en SUSE. In dit onderdeel wordt ervan uitgegaan dat u tot op zekere hoogte vertrouwd bent met het geven van *nix-commando's en met het laveren door het bestandssysteem. In dit onderdeel symboliseert $ een commando dat uitgevoerd moet worden in het huidige systeem van de gebruiker, terwijl # verwijst naar een commando dat in de Debian chroot uitgevoerd wordt.

Nadat het nieuwe Debian systeem naar uw voorkeur geconfigureerd werd, kunt u de (eventuele) bestaande gebruikersgegevens ernaartoe verplaatsen terwijl het systeem blijft functioneren. Daarom is dit een installatie van Debian GNU/Linux zonder dat het systeem een tijd onbereikbaar is. Het is ook een handige manier om met hardware om te gaan waarmee diverse opstart- en installatiemedia anders moeilijk overweg kunnen.

[Opmerking] Opmerking

Vermits het grootste deel van deze procedure handmatig uitgevoerd moet worden, moet u er rekening mee houden dat u een groot deel van de basisconfiguratie van het systeem zelf zult moeten uitvoeren, wat over het algemeen ook een grondiger kennis van Debian en van Linux vereist dan een gewone installatie. U kunt niet verwachten dat u met deze werkwijze een systeem bekomt dat identiek is aan een systeem dat op een gewone manier geïnstalleerd werd. U moet er ook rekening mee houden dat in de hier beschreven werkwijze enkel de basisstappen voor het opzetten van een systeem beschreven worden. Mogelijk zijn bijkomende stappen op het gebied van installatie en/of configuratie nodig.

D.3.1. Aan de slag

Met het schijfindelingsgereedschap van uw huidig *nix-systeem moet u volgens uw behoeften de harde schijf herindelen en minstens één bestandssysteem en een wisselgeheugenpartitie creëren. U moet minstens ongeveer 613MB beschikbaar hebben voor de installatie van een systeem waarin u enkel aan de console kunt werken, of ongeveer 2133MB als u zinnens bent X te installeren (en meer als u grafische werkomgevingen zoals GNOME of KDE Plasma wilt installeren).

Maak vervolgens bestandssystemen aan op de partities. Om bijvoorbeeld een ext3-bestandssysteem te creëren op partitie /dev/sda6 (dat is de root-partitie in ons voorbeeld), geeft u de opdracht

# mke2fs -j /dev/sda6

Om in de plaats daarvan een ext2-bestandssysteem te creëren, laat u -j weg.

Initialiseer en activeer het wisselgeheugen (swap) (vervang het partitienummer door het nummer van de partitie die u wilt gebruiken als Debian swap-partitie):

# mkswap /dev/sda5
# sync
# swapon /dev/sda5

Koppel een partitie aan als /mnt/debinst (het installatiepunt dat op uw nieuwe systeem het root-bestandssysteem (/) zal zijn). De naam van het aankoppelpunt is puur arbitrair gekozen; hieronder blijven we diezelfde naam ervoor gebruiken.

# mkdir /mnt/debinst
# mount /dev/sda6 /mnt/debinst

[Opmerking] Opmerking

Indien u wilt dat onderdelen van het bestandssysteem (bijv. /usr) aangekoppeld worden op aparte partities, dan moet u deze mappen handmatig creëren en aankoppelen voor u verdergaat met de volgende fase.

D.3.2. debootstrap installeren

Het hulpprogramma dat door het installatiesysteem van Debian gebruikt wordt en dat geldt als de officiële manier voor het installeren van een Debian basissysteem, is debootstrap. Het maakt gebruik van wget en van ar, maar voorts gebruikt het enkel /bin/sh en het basisgereedschap van Unix/Linux[21]. Installeer wget en ar als zij nog niet aanwezig zijn op uw huidige systeem en download en installeer vervolgens debootstrap.

Of u kunt de volgende werkwijze gebruiken om het handmatig te installeren. Maak een werkmap aan om het .deb-bestand in uit te pakken:

# mkdir werk
# cd werk

Het programma debootstrap bevindt zich in het Debian-archief (zorg ervoor om het bij uw architectuur passende bestand te selecteren). Download het debootstrap.deb-bestand uit de pool, kopieer het pakket naar de werkmap en pak er de bestanden uit. U moet over de rechten van systeembeheerder beschikken om de bestanden te installeren.

# ar -x debootstrap_0.X.X_all.deb
# cd /
# zcat /volledig-pad-naar-werk/werk/data.tar.gz | tar xv

D.3.3. Het programma debootstrap uitvoeren

Als u debootstrap uitvoert, kan het programma de benodigde bestanden rechtstreeks uit het archief ophalen. U kunt in het voorbeeld van het commando hieronder ftp.nl.debian.org/debian vervangen door gelijk welke spiegelserver voor het Debian-archief, bij voorkeur een spiegelserver die vanuit netwerkoogpunt dichtbij is. De spiegelservers worden opgesomd in http://www.debian.org/mirror/list.

Indien u een CD met buster Debian GNU/Linux aangekoppeld heeft op /cdrom, kunt u de http-URL vervangen door de bestands-URL: file:/cdrom/debian/

Vervang in het debootstrap-commando ARCH door een van de volgende architectuurnamen: amd64, arm64, armel, armhf, i386, mips, mips64el, mipsel, powerpc, ppc64el of s390x.

# /usr/sbin/debootstrap --arch ARCH buster \
     /mnt/debinst http://ftp.us.debian.org/debian

Als de doelarchitectuur verschilt van die van de host, moet u de optie --foreign toevoegen.

D.3.4. Het basissysteem configureren

U heeft nu op schijf een echt, hoewel eerder afgeslankt, Debian-systeem. chroot er naartoe:

# LANG=C.UTF-8 chroot /mnt/debinst /bin/bash

Als de doelarchitectuur verschilt van die van de host, moet u eerst qemu-user-static kopiëren naar de nieuwe host:

# cp /usr/bin/qemu-ARCH-static /mnt/debinst/usr/bin
# LANG=C.UTF-8 chroot /mnt/debinst qemu-ARCH-static /bin/bash

Na het chrooten moet u mogelijk de terminaldefinitie instellen om ze compatibel te maken met het Debian basissysteem, bijvoorbeeld:

# export TERM=xterm-color

Afhankelijk van de waarde van TERM, kan het zijn dat om voor de terminal ondersteuning te krijgen, u het pakket ncurses-term moet installeren.

Als de doelarchitectuur verschilt van die van de host, moet u de meerfasige bootstrap afronden:

/debootstrap/debootstrap --second-stage

D.3.4.1. Apparaatbestanden creëren

Op dit punt bevat /dev/ slechts heel basale apparaatbestanden. Mogelijk zijn bijkomende apparaatbestanden nodig voor de volgende stappen van de installatie. Er zijn verschillende manieren om dit aan te pakken. Welke methode u moet gebruiken hangt af van het host-systeem dat u voor de installatie gebruikt, van het feit of u al dan niet een modulaire kernel gaat gebruiken en of u zinnens bent om voor het nieuwe systeem dynamische (bijvoorbeeld door udev te gebruiken) dan wel statische apparaatbestanden te gebruiken.

Enkele van de beschikbare opties zijn:

  • het pakket makedev installeren en (na het chrooten) een standaardset van statische apparaatbestanden creëren met

    # apt install makedev
    # mount none /proc -t proc
    # cd /dev
    # MAKEDEV generic
    

  • enkel specifieke apparaatbestanden handmatig creëren met MAKEDEV

  • de map /dev van uw host-systeem met de optie bind (mount --bind) aankoppelen bovenop /dev van het doelsysteem. Merk op dat de postinstallatiescripts (postinst) van sommige pakketten apparaatbestanden proberen aan te maken. Gebruik deze mogelijkheid dus met zorg.

D.3.4.2. Partities aankoppelen

U moet /etc/fstab creëren.

# editor /etc/fstab

Hier volgt een voorbeeld dat u volgens uw behoeften kunt aanpassen:

# /etc/fstab: informatie over het statische bestandssysteem.
#
# bestandssysteem    aankoppelpunt   type    opties                  dump pass
/dev/XXX               /             ext3    defaults                 0    1
/dev/XXX               /boot         ext3    ro,nosuid,nodev          0    2

/dev/XXX               none          swap    sw                       0    0
proc                   /proc         proc    defaults                 0    0

/dev/fd0               /media/floppy auto    noauto,rw,sync,user,exec 0    0
/dev/cdrom             /media/cdrom  iso9660 noauto,ro,user,exec      0    0

/dev/XXX               /tmp          ext3    rw,nosuid,nodev          0    2
/dev/XXX               /var          ext3    rw,nosuid,nodev          0    2
/dev/XXX               /usr          ext3    rw,nodev                 0    2
/dev/XXX               /home         ext3    rw,nosuid,nodev          0    2

Gebruik mount -a om alle bestandssystemen die u opgegeven heeft in uw /etc/fstab aan te koppelen. Of gebruik het volgende commando om bestandssystemen apart aan te koppelen:

# mount /pad   # bijv.: mount /usr

De huidige Debian-systemen plaatsen hun aankoppelpunten voor verwijderbare media onder /media, maar behouden uit compatibiliteitsoverwegingen symbolische koppelingen in /. Maak die waar nodig aan, bijvoorbeeld:

# cd /media
# mkdir cdrom0
# ln -s cdrom0 cdrom
# cd /
# ln -s media/cdrom

U kunt het proc-bestandssysteem meerdere keren en op willekeurige plaatsen aankoppelen, hoewel /proc gangbaar is. Indien u niet mount -a gebruikte, moet u voor u verdergaat eerst proc aankoppelen:

# mount -t proc proc /proc

Met het commando ls /proc zou u nu een niet-lege map te zien moeten krijgen. Mocht dit mislukken, dan kunt u mogelijk proc aankoppelen van buiten de chroot:

# mount -t proc proc /mnt/debinst/proc

D.3.4.3. De tijdzone instellen

Door de derde regel van het bestand /etc/adjtime in te stellen op UTC of LOCAL bepaalt u of het systeem de tijd van de hardwareklok zal interpreteren als respectievelijk aangeduid in UTC of in de lokale tijd. Het volgende commando stelt u in staat om dit in te stellen.

# editor /etc/adjtime

Hierna volgt een voorbeeld:

0.0 0 0.0
0
UTC

Het volgende commando laat u toe uw tijdzone te kiezen.

# dpkg-reconfigure tzdata

D.3.4.4. Het netwerk configureren

Om het netwerk te configureren moet u /etc/network/interfaces, /etc/resolv.conf, /etc/hostname en /etc/hosts bewerken.

# editor /etc/network/interfaces

Hier volgen enkele eenvoudige voorbeelden uit /usr/share/doc/ifupdown/examples:

######################################################################
# /etc/network/interfaces -- configuratiebestand voor ifup(8), ifdown(8)
# Zie de manpagina interfaces(5) voor informatie over beschikbare
# opties.
######################################################################

# De interface loopback is niet langer vereist, maar kan zo nodig
# gebruikt worden.
#
# auto lo
# iface lo inet loopback

# Om dhcp te gebruiken:
#
# auto eth0
# iface eth0 inet dhcp

# Een voorbeeld van een configuratie met een statisch IP-adres:
# (network, broadcast en gateway zijn facultatief)
#
# auto eth0
# iface eth0 inet static
#     address 192.168.0.42
#     network 192.168.0.0
#     netmask 255.255.255.0
#     broadcast 192.168.0.255
#     gateway 192.168.0.1

Geef uw naamservers en opzoekingsrichtlijnen op in /etc/resolv.conf:

# editor /etc/resolv.conf

Een eenvoudig voorbeeld van het bestand /etc/resolv.conf:

search example.com
nameserver 10.1.1.36
nameserver 192.168.9.100

Geef de hostnaam van uw systeem op (2 tot 63 lettertekens):

# echo DebianComputerNaam > /etc/hostname

En een basaal bestand /etc/hosts met ondersteuning voor IPv6:

127.0.0.1 localhost
127.0.1.1 DebianComputerNaam

# De volgende regels zijn wenselijk bij IPv6-compatibele computers
::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

Indien u verschillende netwerkkaarten heeft, moet u de namen van de stuurprogrammamodules in het bestand /etc/modules in de gewenste volgorde plaatsen. Tijdens het opstarten zal iedere kaart dan geassocieerd worden met de verwachte interfacenaam (eth0, eth1, enz.)

D.3.4.5. Apt configureren

Debootstrap zal een heel basaal bestand /etc/apt/sources.list aangemaakt hebben, waardoor het installeren van bijkomende pakketten mogelijk is. Mogelijk wilt u echter extra pakketbronnen toevoegen, bijvoorbeeld voor broncodepakketten en voor beveiligingsupdates:

deb-src http://ftp.nl.debian.org/debian buster main

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

Denk eraan om het commando apt update uit te voeren nadat u de lijst met pakketbronnen wijzigde.

D.3.4.6. Het taalgebied en het toetsenbord configureren

Om de lokalisatie-instellingen zo te configureren dat een andere taal dan het Engels gebruikt wordt, moet u het pakket dat ondersteuning biedt voor locales installeren en configureren. Tegenwoordig wordt aanbevolen om een lokalisatie van het type UTF-8 te gebruiken.

# apt install locales
# dpkg-reconfigure locales

Om zo nodig uw toetsenbord te configureren:

# apt install console-setup
# dpkg-reconfigure keyboard-configuration 

Merk op dat u het toetsenbord niet kunt instellen terwijl u zich in de chroot bevindt, maar dat het op deze manier geconfigureerd wordt in functie van de volgende herstart van de computer.

D.3.5. Een kernel installeren

Indien u zinnens bent om dit systeem op te starten, zult u wellicht een Linux kernel en een opstartlader willen hebben. Ga na welke voorverpakte kernels beschikbaar zijn met:

# apt search linux-image

Installeer vervolgens het kernelpakket van uw keuze aan de hand van zijn pakketnaam.

# apt install linux-image-arch-enz

D.3.6. Zet de opstartlader op

Om te maken dat uw Debian GNU/Linux-systeem kan opstarten, moet u uw opstartlader instellen om de geïnstalleerde kernel met uw nieuwe root-partitie te laden. Merk op dat debootstrap geen opstartlader installeert, maar dat u apt binnen uw Debian chroot kunt gebruiken om dat te doen.

Merk op dat dit ervan uitgaat dat er een apparaatbestand /dev/sda gecreëerd werd. Er bestaan andere mogelijkheden om grub2 te installeren, maar die vallen buiten het bestek van deze bijlage.

D.3.7. Toegang vanop afstand: SSH installeren en de toegang opzetten

Indien u via de console op het systeem kunt inloggen, kunt u dit onderdeel overslaan. Indien het systeem later toegankelijk moet zijn over het netwerk, dient u SSH te installeren en de toegang op te zetten.

# apt install ssh

Standaard staat voor root (de systeembeheerder) inloggen met een wachtwoord uitgeschakeld. Dus kan het instellen van de toegang gebeuren door een wachtwoord in te stellen en inloggen met een wachtwoord voor root terug mogelijk te maken:

# passwd
# editor /etc/ssh/sshd_config

De volgende optie moet geactiveerd worden:

PermitRootLogin yes

De toegang kan ook mogelijk gemaakt worden door aan het account van root een ssh-sleutel toe te voegen:

# mkdir /root/.ssh
# cat << EOF > /root/.ssh/authorized_keys
ssh-rsa ....
EOF

Tenslotte kan de toegang ook mogelijk gemaakt worden door een gewone gebruiker toe te voegen en voor deze een wachtwoord in te stellen:

# adduser joe
# passwd joe

D.3.8. Afwerking

Zoals reeds eerder vermeld werd, zal het geïnstalleerde systeem erg basaal zijn. Indien u liever heeft dat het systeem wat meer voldragen is, kunt u op een makkelijke manier alle pakketten installeren die een prioriteit standard (standaard) hebben:

# tasksel install standard

U kunt natuurlijk ook gewoon apt gebruiken om individuele pakketten te installeren.

Na de installatie zullen er zich in /var/cache/apt/archives/ een heleboel gedownloade pakketten bevinden. U kunt schijfruimte vrijmaken met de opdracht:

# apt clean



[21] Het betreft hier de belangrijkste GNU hulpprogramma's en commando's zoals sed, grep, tar en gzip.