У меня есть 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!