Auf das Terminal zugreifen und Vorgänge auf einer anderen Linux-Installation und Partition derselben Festplatte ausführen

Auf das Terminal zugreifen und Vorgänge auf einer anderen Linux-Installation und Partition derselben Festplatte ausführen

Ich habe Linux A auf Partition A und Linux B auf Partition B derselben Festplatte. Wenn ich jetzt Linux A eingebe.

Ist es möglich, vom Terminal unter Linux A aus einige Treiber unter Linux B zu entfernen und zu installieren?

Antwort1

Ja, Sie können dies tun, indem Sie zwei Ansätze anwenden:

Erste:

Wenn Ihr Treiber aus einem Repository oder über ein Installationsskript (z. B. NVidia-Treiber) bereitgestellt wird, können Sie Partition B von Linux B mounten und proc, sys, dev: mounten.

# mount -t proc proc /mount/point/partition/B/proc
# mount -t sysfs sysfs /mount/point/partition/B/sys
# mount -t devtmpfs devtmpfs /mount/point/partition/B/dev

Dann chrootzu /mount/point/partition/B:

# chroot /mount/point/partition/B/

Jetzt arbeiten Sie in Linux B, als ob Sie in Linux B gebootet hätten. Sie können Repository-Befehle ( yum, apt...) und andere verwenden.

!!!Aber du musst daran denken!!!

Der geladene Kernel von Linux A kann sich vom Kernel von Linux B unterscheiden, sodass alle Dienstprogramme, die standardmäßig die Kernelversion als Parameter verwenden ( dkms, Initramfs-Tools ( dracut, mkinitrd...), einige Installationsskripte), fehlschlagen. Sie müssen daher für diese Dienstprogramme die Kernelversion von Linux B als Parameter angeben!

Zweite:

Mounten Sie Partition B von Linux B und entfernen Sie Treiber (Module) in dieser Partition manuell rm /mount/point/partition/B/lib/modules/needed_kernel_version_of_linux_B/module/path/module.ko. Sie können auch Folgendes bereinigen:Modprobeoder undudevRegeln. Dieser Ansatz ist nicht sauber und geeignet, wenn Sie wirklich wissen, was Sie tun (wie Ihr Treiber organisiert ist und welchen Einfluss er auf Linux B hat).


Kleines Beispiel:

Geben Sie in Linux A lsblkden Befehl ein. Dadurch erhalten Sie eine Vorstellung von Partitionen, die in Linux A verwendet und gemountet werden, sowie von Partitionen mit leerem Mountpoint. Wenn Sie keine Wechseldatenträger angeschlossen haben, beziehen sich alle Partitionen mit leerem Mountpoint auf Linux B. Erstellen Sie Verzeichnisse, in denen Sie Partitionen von Linux B mounten, und mounten Sie sie:

Einfacher Fall ohne LVM und andere:

# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 223.6G  0 disk
├─sda1   8:1    0    12G  0 part  [SWAP]
├─sda2   8:2    0   150G  0 part  /
└─sda3   8:3    0  61.6G  0 part

Das Gerät sda3ist nicht gemountet, daher wird es an Linux B weitergeleitet.

Verzeichnis erstellen /mnt/sda3und Stammverzeichnis von Linux B mounten:

# mkdir /mnt/sda3
# mount /dev/sda3 /mnt/sda3

Bereiten Sie sich vor auf chroot:

# mount -t proc proc /mnt/sda3/proc
# mount -t sysfs sysfs /mnt/sda3/sys
# mount -t devtmpfs devtmpfs /mnt/sda3/dev

chroot:

# chroot /dev/sda3

Jetzt sind Sie in Linux B!

verwandte Informationen