PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : chroot



Niniveh
11.01.09, 17:51
Moin

Ich hatte chroot bei meiner Gentooinstallation schon einmal gebraucht und schon öfters davon gehört.
Aber in den Büchern und Webseiten wo ich mich darüber informieren wollte ist die Vorgehensweise anders, als die, die ich für chroot benötigte.
Daher habe ich ein prinzipielles Verständnissproblem die Details betreffend und ich hoffe mit Eurer Hilfe da etwas Licht hinein zu bekommen.

Was chroot macht ist mir einigermaßen klar, aber die Befehle dazu durchschaue ich bislang nur wenig.

Hier ein Beispiel, wie ich chroot nutzen muss, um von einer, in diesem Fall von einer Gentoo Live CD aus, in mein Gentoo-System auf der Festplatte zu wechslen um beispielsweise den MBR neu zu beschreiben:

mount /dev/sda1 /mnt/gentoo
mount -t proc none /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile

Und wieder aussteigen:

exit
cd
umount /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
reboot

Eine andere Beschreibung ist beispielsweise hier (http://linuxwiki.de/chroot), nicht von einer Live-CD aus:

mount /dev/hda5 /mnt/rootplatte
chroot /mnt/rootplatte /bin/bash -i
Auch wenn hier keine Live CD verwendet wird, sieht die Befehlskette doch sehr viel anders aus.
Und in meinen Büchern ist die Beschreibung ähnlich knapp, als wäre das ganze keine große Aktion, so dass ich die Unterschiede auch nicht verstehe.

Ich weiß, dass bei den beiden unterschiedlichen chroot-Befehlen quasi unterschiedliche Rechte/Möglichkeiten gegeben sind.

Beispiel:

mount -t proc none /mnt/gentoo/proc
mount -t damit mountet man i.d.R. eine Partition und gibt den Dateityp an. Aber hier der Verweis auf /proc verstehe ich nicht.
none bedeutet wohl kein Dateisystem?
Was /proc enthält habe ich nachgelesen, aber nicht verstanden warum das so gemountet werden muss?
Und bei den restlichen chroot-Eingaben verstehe ich eigentlich auch nichts?
mount -o bind /dev /mnt/gentoo/dev
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile

Ich kann praktisch kein Englisch, weshalb mir die vielen englische Anleitungen auch nichts bringen.

Ich fände es super, wenn ihr mir hier auf die Sprünge helfen würdet! :)

fork
11.01.09, 22:22
> mount -t damit mountet man i.d.R. eine Partition und gibt den Dateityp an. Aber hier der
> Verweis auf /proc verstehe ich nicht.
> none bedeutet wohl kein Dateisystem?
> Was /proc enthält habe ich nachgelesen, aber nicht verstanden warum das so gemountet
> werden muss?

Der allgemeine Aufruf von mount ist:


mount <Befehlsoptionen> <Gerät> <Mountpoint>

-t ist die Option die den Dateisystemtyp angibt. Hier das sog. Pseudodateisystem "proc". Es gibt noch weitere Pseudodateisysteme wie sysfs, devpts, tmpfs, ...

Diese Pseudodateisysteme haben alle gemein, das kein Gerät Ziel von Ein-/Ausgabeoperationen ist, sondern ein Prozess. Deswegen ist für Gerät hier lediglich der Platzhalter "none" da.

Und bei den restlichen chroot-Eingaben verstehe ich eigentlich auch nichts?


mount -o bind /dev /mnt/gentoo/dev

Stellt das Verzeichnis unter einem zweiten Pfad zur Verfügung. Alles was an Dateien in /dev ist kannst Du anschliessend auch in /mnt/gentoo/dev sehen. Damit hast Du Deine Gerätedateien in der neuen Umgebung verfügbar gemacht.


chroot /mnt/gentoo /bin/bash

Ruft in der neuen Umgebung unterhalb von /mnt/gentoo das Programm /bin/bash auf.

Wenn Du keine Lust hast, zu warten, bis Du hier antworten bekommst, kannst Du das auch in den Manpages nachlesen.

Niniveh
12.01.09, 16:27
Vielen Dank Fork

Deine Erklärungen waren wirklich erhellend.

Aber man chroot ist bei mir zwar deutschsprachig, aber dafür sehr knapp. Das ist allenfalls eine Kurzbeschreibung.


Was ich aber auch nicht begreifen konnte sind die beiden unten stehenden Befehle zu chroot.
Erschwerend kommt dazu, dass ich diese nicht im Zuge eines Howtos bekam, sondern lediglich bei einer Kurzanleitung zur Gentooinstallation dabeistanden und ich habe sie eben so angewandt wie es dortstand.
update
source /etc/profile

Ich habe es nicht eilig und kann warten, mit Unterbrechungen tüfftle ich schon länger an chroot herum, da kommt es auf ein paar Tage mehr nicht an.

Vielen dank nochmals

drcux
12.01.09, 19:25
Die beiden Befehle haben mit chroot nix zu tun, sind wohl eher Gentoo Geschichten um in der chroot weiter installieren zu können.

MiGo
13.01.09, 10:46
env-update
source /etc/profile

Ich habe es nicht eilig und kann warten, mit Unterbrechungen tüfftle ich schon länger an chroot herum, da kommt es auf ein paar Tage mehr nicht an.
env-update stellt dir die Umgebungsvariablen von gentoo zur verfuegung (normalerweise wuerde das beim booten geschehen, aber mit chroot gehst du ja am bootprozess vorbei) und "source /etc/profile" liest dir die Standardeinstellungen der Bash wieder ein (Pfade, aliase etc).
Eine Kurzform davon ist ". /etc/profile" (man beachte den Punkt).

marce
13.01.09, 11:11
Eine Kurzform davon ist ". /etc/profile" (man beachte den Punkt).
und das Leerzeichen zwischen dem "." und dem "/".

Niniveh
13.01.09, 11:51
Vielen Dank Jungs, ihr seid echt spitze!

Ich denke, ich kann dieses Thema als gelöst markieren.

:)

Niniveh
19.04.09, 19:38
Hallo Jungs

Ich habe doch noch eine Frage zum Thema, auf die ich bislang noch keine Antwort fand.

Wenn ich eine Live CD starte, läuft dort natürlich der Kernel der Live-CD.
Und wenn ich via chroot auf der Konsole in das installierte System eintauche, welcher Kernel läuft denn dort?
Weil ich via chroot alles auf dem installierten System von einer Live-CD aus machen kann, vermute ich, dass dort der Kernel des installierten Systems läuft.
Das kann ich mir nur kaum vorstellen?

Welcher Kernel läuft also bei einer Live-CD innerhalb der Konsole, in der via chroot ein installiertes System läuft?

quinte17
19.04.09, 19:46
Welcher Kernel läuft also bei einer Live-CD innerhalb der Konsole, in der via chroot ein installiertes System läuft?
es läuft nur der gebootete kernel der live cd. kein anderer.
dass dein system fast komplett läuft liegt daran, dass sich die userspace-api meist nicht ändert und du das /dev-verzeichnis auch in der chroot zur verfügung hast.
dadurch ist es leider auch möglich innerhalb der chroot die festplatte zu formatieren... (man hat ja rootrechte und zugriff auf die devices)

greetz