Tengo Linux A en la partición A y Linux B en la partición B del mismo disco duro. Ahora cuando entro en linux A.
¿Es posible desde la terminal en Linux A eliminar e instalar algunos controladores en Linux B?
Respuesta1
Sí, puedes hacer esto aplicando dos enfoques:
Primero:
Si su controlador se entrega mediante un repositorio o algún script de instalación (como los controladores NVidia), puede montar la partición B de Linux B y montar 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
Luego chroot
a /mount/point/partition/B
:
# chroot /mount/point/partition/B/
Ahora está trabajando en Linux B como si estuviera arrancando en Linux B. Puede usar comandos de repositorio ( yum
, apt
...) y otros.
!!!Pero hay que recordar!!!
El kernel cargado de Linux A puede ser diferente del kernel de Linux B, por lo que todas las utilidades que usan la versión del kernel como parámetro de forma predeterminada ( dkms
, herramientas initramfs ( dracut
, mkinitrd
...), algunos scripts de instalación) fallarán. ¡Por lo tanto, debe especificar la versión del kernel de Linux B como parámetro para estas utilidades!
Segundo:
Monte la partición B de Linux B y elimine los controladores (módulos) en esta partición manualmente haciendo rm /mount/point/partition/B/lib/modules/needed_kernel_version_of_linux_B/module/path/module.ko
. También es posible que desees limpiarsonda modo yudevnormas. Este enfoque no es limpio ni adecuado si realmente sabes lo que estás haciendo (cómo está organizado tu controlador y cómo influye en Linux B).
Pequeño ejemplo:
En Linux, escriba el lsblk
comando. Esto le permite imaginar las particiones que se utilizan y montan en Linux A y las particiones con un punto de montaje vacío. Si no ha conectado dispositivos extraíbles, entonces todas las particiones con un punto de montaje vacío se relacionan con Linux B. Cree directorios en los que montará particiones de Linux B y móntelo:
Caso simple sin LVM y otros:
# 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
El dispositivo sda3
no está montado, por lo que se transmite a Linux B.
Cree /mnt/sda3
el directorio y monte la raíz de Linux B:
# mkdir /mnt/sda3
# mount /dev/sda3 /mnt/sda3
Prepararse para 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
¡Ahora estás en Linux B!