D.3. Installera Debian GNU/Linux från ett Unix/Linux-system

Det här avsnittet förklarar hur man installerar Debian GNU/Linux från ett befintligt Unix- eller Linux-system, utan att använda det menystyrda installationsprogrammet som förklaras i resten av handboken. Den här HOWTO:n för cross-installation har efterfrågats av användare som byter till Debian GNU/Linux från Red Hat, Mandriva och SUSE. I detta avsnitt antas att viss erfarenhet av *nix-kommandon och navigering i filsystemet. I detta avsnitt symboliserar $ ett kommando som ska anges i användarens aktuella system, medan # refererar till ett kommando som ska anges i Debians chroot-miljö.

När du har fått det nya Debian-systemet konfigurerat enligt din smak, kan du migrera din befintliga användardata (om den finns) till det, och fortsätta köra. Det här är alltså en installation av Debian GNU/Linux utan nedtid. Det är också ett klurigt sätt att hantera maskinvara som annars inte fungerar snällt med olika uppstarts- eller installationsmedia.

[Notera] Notera

Eftersom det här till största del är en manuell procedur bör du tänka på att du kommer att behöva göra en hel del grundläggande konfiguration av själva systemet själv, vilket även kräver mer kunskaper om Debian och speciellt Linux i allmänhet än att genomföra en vanlig installation. Du kan inte förvänta dig att denna procedur resulterar i ett system som är identiskt med ett system från en vanlig installation. Du bör även tänka på att denna procedur endast ger de grundläggande stegen för att konfigurera ett system. Ytterligare installation och/eller konfigurationssteg kan behövas.

D.3.1. Påbörja arbetet

Partitionera om hårddisken efter behov med dina aktuella *nix-partitioneringsverktyg. Skapa åtminstone ett filsystem plus växlingsutrymme. Du behöver ungefär 769 MB tillgängligt diskutrymme för en installation för endast konsoll, eller ungefär 2271 MB om du planerar att installera X (mer om du tänker installera skrivbordsmiljöer som GNOME eller KDE Plasma).

Skapa sedan filsystem på dina partitioner. För att till exempel skapa ett ext3-filsystem på partitionen /dev/sda6 (det är vår rotpartition i exemplet):

# mke2fs -j /dev/sda6

För att istället skapa ett ext2-filsystem, uteslut -j.

Initialisera och aktivera växlingsutrymmet (ersätt partitionsnumret med din tilltänkta Debian-partition för växlingsutrymme):

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

Montera en partition som /mnt/debinst (installationspunkten, som ska vara rotfilsystemet (/) på ditt nya system). Namnet på monteringspunkten är strikt godtyckligt, det refereras till senare här nedan.

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

[Notera] Notera

Om du vill ha delar av filsystemet (exempelvis, /usr) monterat på separata partitioner, behöver du skapa och montera dessa kataloger manuellt innan du fortsätter till nästa steg.

D.3.2. Installera debootstrap

Verktyget som Debian Installer använder, som är känt som det officiella sättet att installera Debians grundsystem, är debootstrap. Det använder wget och ar, men är annars endast beroende av /bin/sh och grundläggande Unix/Linux-verktyg[21]. Installera wget och ar om de inte redan finns på ditt aktuella system, hämta och installera sedan debootstrap.

Eller så kan du använda följande procedur för att installera det manuellt. Skapa en arbetskatalog för att extrahera .deb-filen till:

# mkdir arbetskatalog
# cd arbetskatalog

Binärfilen debootstrap finns i Debian-arkivet (se till att välja den lämpliga filen för din arkitektur). Hämta .deb-filen för debootstrap från pool, kopiera paketet till arbetskatalogen, och extrahera filerna från det. Du kommer att behöva root-privilegier för att installera filerna.

# ar -x debootstrap_0.X.X_all.deb
# cd /
# zcat /fullständig-sökväg-till-arbetskatalog/arbetskatalog/data.tar.gz | tar xv

D.3.3. Kör debootstrap

debootstrap kan hämta de nödvändiga filerna direkt från arkivet när du kör det. Du kan ersätta ftp.se.debian.org/debian med vilken Debian-arkivspegel som du vill i kommandoexemplet nedan, föredragsvis en spegel som är så nära ditt nätverk som möjligt. Speglarna finns listade på http://www.debian.org/mirror/list.

Om du har en bullseye Debian GNU/Linux installationsavbildning monterad på /cdrom, kan du ersätta en fil-URL istället för en http-URL: file:/cdrom/debian/

Ersätt en av följande för ARCH i kommandot debootstrap: amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x.

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

Om målarkitekturen skiljer sig från värden bör du lägga till alternativet --foreign.

D.3.4. Konfigurera grundsystemet

Nu är du har ett riktigt Debian-system, även om det är ganska minimalt, på disk. Kör chroot in i det:

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

Om målarkitekturen skiljer sig från värden måste du först kopiera qemu-user-static till den nya värden:

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

Efter chroot kan du behöva ställa in terminaldefinitionen så att den är kompatibel med Debian bassystemet, till exempel:

# export TERM=xterm-color

Beroende på värdet av TERM, kan du behöva installera ncurses-term paketet för att få stöd för det.

Om målarkitekturen skiljer sig från värden måste du avsluta flerstegets startband:

/debootstrap/debootstrap --second-stage

D.3.4.1. Skapa enhetsfiler

Vid det här tillfället innehåller /dev/ endast mycket grundläggande enhetsfiler. För nästkommande steg av installationen kan ytterligare enhetsfiler behövas. Det finns olika sätt att göra detta på och vilken metod som du väljer beror på värdsystemet som du använder för installationen, om du tänker använda en modulär kärna eller inte och om du tänker använda dynamisk (t.ex. använda udev) eller statiska enhetsfiler för det nya systemet.

Ett par av de tillgängliga alternativen är:

  • installera makedev-paketet och skapa en standarduppsättning med statiska enhetsfiler (efter chroot)

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

  • skapa manuellt endast specifika enhetsfiler med MAKEDEV

  • bindmontera /dev från ditt värdsystem på toppen av /dev i målsystemet; observera att postinst-skripten för vissa paket kan försöka att skapa enhetsfiler, så detta alternativ ska endast användas med försiktighet

D.3.4.2. Montera partitioner

Du måste skapa /etc/fstab.

# editor /etc/fstab

Här är ett exempel som du kan ändra på för att passa in:

# /etc/fstab: statisk filsystemsinformation.
#
# filsystem      monteringsp.  typ     flaggor                  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/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

Använd mount -a för att montera alla filsystem som du har angivna i din /etc/fstab, eller använd följande kommando för att montera filsystem individuellt:

# mount /path   # exempelvis: mount /usr

Nuvarande Debian-system har monteringspunkter för flyttbara media under /media, men innehåller symboliska länkar / för att vara kompatibla. Skapa dessa efter behov, till exempel:

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

Du kan montera proc-filsystemet flera gånger till godtyckliga platser, även om /proc är vanligast. Om du inte använde mount -a, tänk på att montera proc innan du fortsätter:

# mount -t proc proc /proc

Kommandot ls /proc bör nu visa en icke-tom katalog. Om det här skulle misslyckas, kan du kanske montera proc utanför chroot:

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

D.3.4.3. Ställ in tidszon

Att ställa in den tredje raden i filen /etc/adjtime till UTC eller LOCAL avgör om systemet kommer att tolka hårdvaruklockan som inställd på UTC respektive lokal tid. Följande kommando låter dig ställa in det.

# editor /etc/adjtime

Här är ett exempel:

0.0 0 0.0
0
UTC

Följande kommando låter dig välja din tidszon.

# dpkg-reconfigure tzdata

D.3.4.4. Konfigurera nätverket

För att konfigurera nätverket, redigera /etc/network/interfaces, /etc/resolv.conf, /etc/hostname och /etc/hosts.

# editor /etc/network/interfaces

Här är några enkla exempel från /usr/share/doc/ifupdown/examples:

######################################################################
# /etc/network/interfaces -- konfigurationsfil för ifup(8), ifdown(8)
# Se manualsidan interfaces(5) för information om vilka flaggor som
# finns tillgängliga.
######################################################################

# loopback-gränssnittet behövs egentligen inte längre, men kan användas
# om det behövs.
#
# auto lo
# iface lo inet loopback

# För att använda dhcp:
#
# auto eth0
# iface eth0 inet dhcp

# Ett exempel på statisk IP-konfiguration: (nätverk, broadcast och gateway är valfria)
#
# 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

Ange din namnserver (eller flera) och sökdirektiv i /etc/resolv.conf:

# editor /etc/resolv.conf

En enkelt exempel för /etc/resolv.conf:

search example.com
nameserver 10.1.1.36
nameserver 192.168.9.100

Ange värdnamnet för ditt system (2 till 63 tecken):

# echo DebianVardNamn > /etc/hostname

Och en grundläggande /etc/hosts med IPv6-stöd:

127.0.0.1 localhost
127.0.1.1 DebianVardNamn

# Följande rader är önskvärda för IPv6-kapabla värdar
::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

Om du har flera nätverkskort bör du sortera namnen på drivrutinsmodulerna i filen /etc/modules i önskad ordning. Sedan, under uppstart, kommer varje kort att associeras med gränssnittsnamnet (eth0, eth1, etc.) som du förväntar dig.

D.3.4.5. Konfigurera apt

Debootstrap har skapat en mycket grundläggande /etc/apt/sources.list som tillåter installation av ytterligare paket. Dock kanske du vill lägga till ytterligare källor, till exempel för källkodspaket och säkerhetsuppdateringar:

deb-src http://ftp.se.debian.org/debian bullseye main

deb http://security.debian.org/ bullseye-security main
deb-src http://security.debian.org/ bullseye-security main

Se till att köra apt update efter att du har gjort ändringar i källistan.

D.3.4.6. Konfigurera lokaler och tangentbord

För att konfigurera dina lokalinställningar till att använda ett språk annat än engelska, installera stödpaketet locales och konfigurera det. För närvarande rekommenderas användning av UTF-8-lokaler.

# apt install locales
# dpkg-reconfigure locales

För att konfigurera ditt tangentbord (om det behövs):

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

Observera att tangentbordet inte kan ställas in när chroot används men kommer att konfigureras inför nästa omstart.

D.3.5. Installera en kärna

Om du tänker starta upp det här systemet, vill du antagligen ha en Linux-kärna och en starthanterare. Identifiera tillgängliga förpaketerade kärnor med:

# apt search linux-image

Installera sedan det kärnpaket som du önskar med hjälp av dess paketnamn.

# apt install linux-image-arch-etc

D.3.6. Ställ in starthanteraren

För att göra ditt Debian GNU/Linux-system startbart, ställ in din starthanterare att läsa in den installerade kärnan med din nya rotpartition. Observera att debootstrap inte installerar en starthanterare, men du kan använda apt inne i din Debian chroot-miljö för att göra det.

Observera att detta antar att enhetsfilen /dev/sda har skapats. Det finns alternativa metoder för att installera grub2, men dessa är utanför omfånget för denna bilaga.

D.3.7. Fjärråtkomst: installera SSH och konfigurera åtkomst

Om du kan logga in på systemet via konsolen kan du hoppa över det här avsnittet. Om systemet ska vara tillgängligt via nätverket senare, måste du installera SSH och konfigurera åtkomst.

# apt install ssh

Root login med lösenord är inaktiverat som standard, så att ställa in tillgång kan göras genom att ange ett lösenord och återaktivera root login med lösenord:

# passwd
# editor /etc/ssh/sshd_config

Detta är alternativet som ska aktiveras:

PermitRootLogin yes

Åtkomst kan också ställas in genom att lägga till en SSH-nyckel till root-kontot:

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

Slutligen kan åtkomst ställas in genom att lägga till en icke-root-användare och ange ett lösenord:

# adduser joe
# passwd joe

D.3.8. Slutgiltiga justeringar

Som nämnts tidigare, det installerade systemet kommer att vara mycket minimalt. Om du vill fylla upp systemet lite mer, finns det en enkel metod för att installera alla paket med standardprioritet:

# tasksel install standard

Du kan så klart också använda apt för att installera paket individuellt.

Efter installationen kommer det att finnas en hel del hämtade paket i /var/cache/apt/archives/. Du kan frigöra diskutrymme genom att köra:

# apt clean



[21] Dessa inkluderar GNU-kärnverktyg och kommandon såsom sed, grep, tar och gzip.