訪問終端並在同一個硬碟的另一個Linux安裝和分區上進行操作
我在同一個硬碟的分區 A 上有 linux A,在 B 分區上有 linux B。現在當我進入 linux A.
是否可以從 linux A 上的終端刪除和安裝 linux B 上的一些驅動程序?
是的,您可以通過應用兩種方法來做到這一點:
第一的:
如果您的驅動程序是由儲存庫或某些安裝腳本(如 NVidia 驅動程序)提供的,您可以掛載 linux B 的分區 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 的核心版本作為這些實用程序的參數!第二:
掛載 linux B 的分區 B 並手動刪除該分區中的驅動程序(模組)
rm /mount/point/partition/B/lib/modules/needed_kernel_version_of_linux_B/module/path/module.ko
。此外,您可能想要清理modprobe或/和udev規則。如果您真的知道自己在做什麼(您的驅動程序如何組織以及它如何影響 linux B),那麼這種方法並不干淨且不適合。小例子:
在 linux 中鍵入
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 中!