동일한 하드 디스크의 다른 Linux 설치 및 파티션에서 터미널에 액세스하고 작업 수행

동일한 하드 디스크의 다른 Linux 설치 및 파티션에서 터미널에 액세스하고 작업 수행

동일한 하드 디스크의 파티션 A에 Linux A가 있고 파티션 B에 Linux B가 있습니다. 이제 Linux A에 들어갑니다.

Linux A의 터미널에서 Linux B의 일부 드라이버를 제거하고 설치할 수 있습니까?

답변1

예, 두 가지 접근 방식을 적용하면 이를 수행할 수 있습니다.

첫 번째:

드라이버가 리포지토리 또는 일부 설치 스크립트(예: 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/

yum이제 Linux B에서 부팅한 것처럼 Linux B에서 작업하고 있습니다. 저장소 명령( , 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. 또한 청소를 원할 수도 있습니다.모드프로브또는/및udev규칙. 이 접근 방식은 자신이 무엇을 하고 있는지(드라이버가 어떻게 구성되어 있고 그것이 Linux B에 어떻게 영향을 미치는지) 알고 있다면 깨끗하지도 적합하지도 않습니다.


작은 예:

리눅스에서 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

이제 당신은 리눅스 B에 있습니다!

관련 정보