端末にアクセスして別のLinuxをインストールし、同じハードドライブ上のパーティションを操作する

端末にアクセスして別のLinuxをインストールし、同じハードドライブ上のパーティションを操作する

同じハードディスク上のパーティションAにLinux Aがあり、パーティションBにLinux Bがあります。これでLinux Aに入ります。

Linux Aの端末からLinux Bの一部のドライバをアンインストールしてインストールできますか?

答え1

はい、次の2つの方法を適用してこれを実行できます。

最初:

ドライバがリポジトリまたは一部のインストールスクリプト(NVidiaドライバなど)を介して提供されている場合は、Linux BのパーティションBをマウントして、、、procsysdevマウントできます。

# 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で作業しています。リポジトリコマンド(yumapt...)などのコマンドを使用できます。

! ! !しかし、覚えておく必要があります! ! !

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。掃除をしたいかもしれませんモジュールプローブまたは/そしてウデブルール。このアプローチは、自分が何をしているのか(ドライバがどのように構成されていて、これが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を使用しています!

関連情報