Sök…


Introduktion

Ändra root (chroot) är en operation som ändrar den uppenbara rotkatalogen för den aktuella körprocessen och deras barn. Ett program som körs i en sådan modifierad miljö kan inte komma åt filer och kommandon utanför det miljökatalogträdet.

Syntax

  • chroot [destinationsväg] [skal eller kommando]

Ändra rot manuellt i en katalog

  1. Se till att du uppfyllt alla krav enligt kraven

  2. Montera de tillfälliga API-filsystemen:

    cd /location/of/new/root
    mount -t proc proc proc/
    mount --rbind /sys sys/
    mount --rbind /dev dev/
    mount --rbind /run run/ (optionally)
    
  1. Om du behöver använda en internetanslutning i chroot-miljön, kopiera över DNS-detaljerna:

    cp /etc/resolv.conf etc/resolv.conf
    
  2. Ändra root till / location / of / new / root, specificera skalet ( /bin/bash i detta exempel):

    chroot /location/of/new/root /bin/bash
    
  3. Efter grovning kan det vara nödvändigt att ladda den lokala bash-konfigurationen:

    source /etc/profile
    source ~/.bashrc
    
  4. Alternativt kan du skapa en unik prompt för att kunna skilja din chroot-miljö:

    export PS1="(chroot) $PS1"
    
  5. När du är klar med chroot kan du lämna den via:

    exit
    
  6. Ta bort de tillfälliga filsystemen:

    cd /
    umount --recursive /location/of/new/root
    

Krav

  • root privilegier
  • en annan fungerande Linux-miljö, till exempel Live CD-start eller en befintlig distribution
  • matchande miljöarkitekturer för chroot och destination (kolla aktuell uname -m med uname -m )
  • kärnmoduler som du kan behöva i chroot måste laddas (till exempel med modprobe )

Skäl att använda chroot

Att byta rot görs vanligtvis för att utföra systemunderhåll på system där start och / eller inloggning inte längre är möjligt.

Vanliga exempel är:

  • installera om startladdaren
  • återuppbygga initramfsbilden
  • uppgradering eller nedgradering av paket
  • återställa ett glömt lösenord
  • bygga programvara i en ren rotmiljö


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow