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 |
---|---|
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. |
With your current *nix partitioning tools, repartition the hard drive as needed, creating at least one filesystem plus swap. You need around 701MB of space available for a console only install, or about 2486MB if you plan to install X (more if you intend to install desktop environments like GNOME or 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 |
---|---|
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. |
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[25]. 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
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 buster Debian GNU/Linux cd monterad på /cdrom
, kan du ersätta en fil-url istället för en http-URL: file:/cdrom/debian/
Substitute one of the following for ARCH
in the debootstrap command: amd64
, arm64
, armel
, armhf
, i386
, mips
, mips64el
, mipsel
, powerpc
, ppc64el
, or s390x
.
# /usr/sbin/debootstrap --arch ARCH buster \ /mnt/debinst http://ftp.us.debian.org/debian
If the target architecture is different than the host, you should add the --foreign
option.
Now you've got a real Debian system, though rather lean, on disk. chroot into it:
# LANG=C.UTF-8 chroot /mnt/debinst /bin/bash
If the target architecture is different from the host, you will need to first copy qemu-user-static to the new host:
# cp /usr/bin/qemu-ARCH-static /mnt/debinst/usr/bin # LANG=C.UTF-8 chroot /mnt/debinst qemu-ARCH-static /bin/bash
After chrooting you may need to set the terminal definition to be compatible with the Debian base system, for example:
# export TERM=xterm-color
Depending on the value of TERM, you may have to install the ncurses-term
package to get support for it.
If the target architecture is different from the host, you need to finish the multi-stage boot strap:
/debootstrap/debootstrap --second-stage
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
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/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
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
Setting the third line of the file /etc/adjtime
to ”UTC” or ”LOCAL” determines whether the system will interpret the hardware clock as being set to UTC respective local time. The following command allows you to set that.
# editor /etc/adjtime
Here is a sample:
0.0 0 0.0 0 UTC
The following command allows you to choose your timezone.
# dpkg-reconfigure tzdata
To configure networking, edit /etc/network/interfaces
, /etc/resolv.conf
, /etc/hostname
and /etc/hosts
.
# editor /etc/network/interfaces
Here are some simple examples from /usr/share/doc/ifupdown/examples
:
###################################################################### # /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) # See the interfaces(5) manpage for information on what options are # available. ###################################################################### # The loopback interface isn't really required any longer, but can be used # if needed. # # auto lo # iface lo inet loopback # To use dhcp: # # auto eth0 # iface eth0 inet dhcp # An example static IP setup: (network, broadcast and gateway are optional) # # 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
Enter your nameserver(s) and search directives in /etc/resolv.conf
:
# editor /etc/resolv.conf
A simple example /etc/resolv.conf
:
search example.com nameserver 10.1.1.36 nameserver 192.168.9.100
Enter your system's host name (2 to 63 characters):
# echo DebianHostName > /etc/hostname
And a basic /etc/hosts
with IPv6 support:
127.0.0.1 localhost 127.0.1.1 DebianHostName # The following lines are desirable for IPv6 capable hosts ::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
If you have multiple network cards, you should arrange the names of driver modules in the /etc/modules
file into the desired order. Then during boot, each card will be associated with the interface name (eth0, eth1, etc.) that you expect.
Debootstrap will have created a very basic /etc/apt/sources.list
that will allow installing additional packages. However, you may want to add some additional sources, for example for source packages and security updates:
deb-src http://ftp.us.debian.org/debian buster main deb http://security.debian.org/ buster/updates main deb-src http://security.debian.org/ buster/updates main
Make sure to run apt update
after you have made changes to the sources list.
To configure your locale settings to use a language other than English, install the locales
support package and configure it. Currently the use of UTF-8 locales is recommended.
# apt install locales # dpkg-reconfigure locales
To configure your keyboard (if needed):
# 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.
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
To make your Debian GNU/Linux system bootable, set up your boot loader to load the installed kernel with your new root partition. Note that debootstrap does not install a boot loader, but you can use apt inside your Debian chroot to do so.
Se info grub
eller man lilo.conf
för instruktioner om hur man ställer in starthanteraren. Om du behåller systemet du använde för att installera Debian, lägg bara till en post för Debian-installationen till din befintliga grub2 grub.cfg
eller lilo.conf
. När det gäller lilo.conf
kan du även kopiera den till det nya systemet och redigera den där. Efter att du är klar med redigeringen, anropa lilo (kom ihåg att den använder lilo.conf
relativt till systemet du anropar det från).
Installing and setting up grub2
is as easy as:
# apt install grub-pc
# grub-install /dev/sda
# update-grub
The second command will install grub2 (in this case in the MBR of sda
). The last command will create a sane and working /boot/grub/grub.cfg
.
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.
Här är ett enkelt exempel på en /etc/lilo.conf
:
boot=/dev/sda6
root=/dev/sda6
install=menu delay=20 lba32 image=/vmlinuz initrd=/initrd.img label=Debian
In case you can login to the system via console, you can skip this section. If the system should be accessible via the network later on, you need to install SSH and set up access.
# apt install ssh
Root login with password is disabled by default, so setting up access can be done by setting a password and re-enable root login with password:
# passwd # editor /etc/ssh/sshd_config
This is the option to be enabled:
PermitRootLogin yes
Access can also be set up by adding an ssh key to the root account:
# mkdir /root/.ssh # cat << EOF > /root/.ssh/authorized_keys ssh-rsa .... EOF
Lastly, access can be set up by adding a non-root user and setting a password:
# adduser joe # passwd joe
As mentioned earlier, the installed system will be very basic. If you would like to make the system a bit more mature, there is an easy method to install all packages with ”standard” priority:
# tasksel install standard
Of course, you can also just use apt to install packages individually.
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