Доступ к терминалу и выполнение операций на другой установке Linux и разделе того же жесткого диска

Доступ к терминалу и выполнение операций на другой установке Linux и разделе того же жесткого диска

У меня есть linux A на разделе A и linux B на разделе B того же жесткого диска. Теперь, когда я вхожу в linux A.

Можно ли из терминала на Linux A удалить и установить некоторые драйверы на Linux B?

решение1

Да, это можно сделать, применив два подхода:

Первый:

Если ваш драйвер поставляется с репозиторием или каким-либо установочным скриптом (например, драйверы NVidia), вы можете смонтировать раздел B Linux B и смонтировать proc, sys, dev:

# 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

Затем :chroot/mount/point/partition/B

# chroot /mount/point/partition/B/

Теперь вы работаете в Linux B так, как будто вы загрузились в Linux B. Вы можете использовать команды репозитория ( yum, apt...) и другие.

!!!Но нужно помнить!!!

Загруженное ядро ​​Linux A может отличаться от ядра Linux B, поэтому все утилиты, которые используют версию ядра в качестве параметра по умолчанию ( dkms, инструменты initramfs ( dracut, mkinitrd...), некоторые скрипты установки), не будут работать. Поэтому вам необходимо указать версию ядра Linux B в качестве параметра для этих утилит!

Второй:

Смонтируйте раздел B linux B и удалите драйверы (модули) в этом разделе вручную, выполнив rm /mount/point/partition/B/lib/modules/needed_kernel_version_of_linux_B/module/path/module.ko. Также вы можете захотеть очиститьмодпробили/иудевправила. Этот подход не является чистым и не подходит, если вы действительно знаете, что делаете (как организован ваш драйвер и как он влияет на linux B).


Небольшой пример:

В linux A введите lsblkкоманду. Это даст вам представление о разделах, которые используются и монтируются в linux A, и разделах с пустой точкой монтирования. Если вы не подключали съемные устройства, то все разделы с пустой точкой монтирования относятся к linux B. Создайте каталоги, в которые вы будете монтировать разделы linux B, и смонтируйте их:

Простой случай без LVM и прочего:

# 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

Устройство sda3не смонтировано, поэтому оно ретранслируется на Linux B.

Создайте /mnt/sda3каталог и смонтируйте корень Linux B:

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

Подготовиться к 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

Теперь вы в Linux B!

Связанный контент