Tenho linux A na partição A e linux B na partição B do mesmo disco rígido. Agora quando entro no linux A.
É possível do terminal no linux A remover e instalar alguns drivers no linux B?
Responder1
Sim, você pode fazer isso aplicando duas abordagens:
Primeiro:
Se o seu driver for entregue por repositório ou algum script de instalação (como drivers NVidia), você pode montar a partição B do linux B e 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
Então, chroot
para /mount/point/partition/B
:
# chroot /mount/point/partition/B/
Agora você está trabalhando no Linux B como se estivesse inicializado no Linux B. Você pode usar comandos de repositório ( yum
, apt
...) e outros.
!!!Mas você precisa se lembrar!!!
O kernel carregado do linux A pode ser diferente do kernel do linux B, portanto, todos os utilitários que usam a versão do kernel como parâmetro por padrão ( dkms
, ferramentas initramfs ( dracut
, mkinitrd
...), alguns scripts de instalação) falharão. Então você precisa especificar a versão do kernel do Linux B como parâmetro para esses utilitários!
Segundo:
Monte a partição B do Linux B e remova os drivers (módulos) nesta partição manualmente rm /mount/point/partition/B/lib/modules/needed_kernel_version_of_linux_B/module/path/module.ko
. Além disso, você pode querer limparmodprobeou eudevregras. Esta abordagem não é limpa e adequada se você realmente sabe o que está fazendo (como seu driver é organizado e como ele influencia no Linux B).
Pequeno exemplo:
No Linux, digite um lsblk
comando. Isso dá a você uma ideia de partições que são usadas e montadas no Linux A e partições com ponto de montagem vazio. Se você não conectou dispositivos removíveis, então todas as partições com ponto de montagem vazio estão relacionadas ao Linux B. Crie diretórios nos quais você montará as partições do Linux B e monte-as:
Caso simples sem LVM e outros:
# 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
O dispositivo sda3
não está montado, então ele retransmite para o Linux B.
Crie /mnt/sda3
o diretório e monte a raiz do Linux B:
# mkdir /mnt/sda3
# mount /dev/sda3 /mnt/sda3
Prepare 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
Agora você está no Linux B!