Nach dem Mounten der Partitionen werden immer noch Live CD-Dateien abgerufen

345
user1

Ich möchte meine Systemdatei /etc/pam.d/common-authvon einer Live-CD bearbeiten (raten Sie mal, warum ...).

Ich habe folgende Befehle ausgeführt:

sudo su cd /mnt mkdir os cd os mkdir dev sys lib lib64 bin etc proc home boot mount /dev/sda8 /mnt/os mount /dev/sda9 /mnt/os/home mount /dev/sda1 /mnt/os/boot mount --rbind /sys /mnt/os/sys mount --rbind /proc /mnt/os/proc mount --rbind /dev /mnt/os/dev mount --rbind /bin /mnt/os/bin mount --rbind /lib /mnt/os/lib mount --rbind /lib64 /mnt/os/lib64 mount --rbind /etc /mnt/os/etc chroot /mnt/os 

Danach bekomme ich noch eine Zeile root@kubuntu:/#. Ich dachte, es würde sich kubuntuin meinen Computernamen oder in etwas anderes ändern . Aber ich bin auf meinem Computer, denn wenn ich cd /mntkein osanderes Verzeichnis habe, als andere. /homeist auch richtig eingehängt - ich kann alle meine Dateien sehen. Nachdem ich zu /etc/pam.dund gehe, sehe cat common-authich nicht die Dateien meines Computers, sondern Kubuntus. Warum habe ich falsch gemacht?

Übrigens, wenn ich catdie Datei vor der Chroot-Datei bin, ist es genauso wie danach chroot.

1

1 Antwort auf die Frage

1
Marek Rost

In Ihrem Verfahren sind mehrere Dinge falsch:

  1. Sie müssen keine Ordner /mnt/osmit mkdir neu erstellen. Wenn Sie eine Festplatte in einem Ordner bereitstellen, wird alles, was sich im ursprünglichen Ordner befindet, vorübergehend ausgeblendet und durch den Inhalt der angehängten Festplatte ersetzt. /dev/sda8Diese Ordner sind höchstwahrscheinlich bereits in Ihrem Ordner enthalten. Andernfalls werden sie nicht auf diese Weise erstellt.

  2. Gleiches gilt für mount-bind. Sie können die PAM-Konfiguration auf Ihrem /dev/sdaLaufwerk nicht bearbeiten, da Sie den /etcOrdner von der Festplatte durch den auf der Live-CD vorhandenen ersetzen, bevor Sie chroot aufrufen.

  3. Futhermore Sie brauchen nichts außer zu binden /dev, /procund /sysin der chroot - Umgebung. Diese Ordner enthalten abstrakte Dateien, die Geräte und Teile des Betriebssystems darstellen. Sie werden von Ihrem Kernel beim Booten oder zur Laufzeit generiert und müssen in der Chroot-Umgebung verfügbar sein. Andernfalls funktionieren einige Programme möglicherweise nicht. Wenn Sie diese Ordner nicht bereitstellen, werden sie auf Ihrer /dev/sda8Live-CD leer angezeigt. Sie finden eine kurze Zusammenfassung der Inhalte jedes Ordners im Unix-Dateisystem auf Wikipedia .

  4. Der einzige Grund, warum Sie eine Verbindung herstellen müssten /binoder /libwäre, wenn die Architektur oder der Kernel des Systems auf Live-CDs nicht mit dem Dateisystem auf Ihrer Festplatte kompatibel wäre. Aber in diesem Fall wäre es keine gute Idee, so zu chrootieren - es bringt keine Vorteile.

Wenn Sie nur Konfigurationsdateien bearbeiten, müssen Sie nicht in Ihr Laufwerk chroot. Sie können einfach die Root-Partition einhängen und die Datei direkt vom Live-CD-System mit einem vorinstallierten Editor wie dem nanofolgenden bearbeiten :

mount /dev/sda8 /mnt nano /mnt/etc/pam.d/common-auth