부록 F. 커널 모듈이 자동으로 로드되지 않도록 방지

모듈이 직접 로드되거나 다른 모듈의 종속성으로 로드되거나 부팅 프로세스 중에 커널 모듈이 자동으로 로드되지 않도록 할 수 있습니다.

절차

  1. 모듈 이름을 modprobe 유틸리티의 구성 파일에 추가해야 합니다. 이 파일은 설정 디렉토리 /etc/modprobe.d 에 있어야 합니다.

    이 설정 디렉토리에 대한 자세한 내용은 man page modprobe.d 를 참조하십시오.

  2. 모듈이 다음 중 하나에 로드되도록 구성되어 있지 않은지 확인합니다.

    • /etc/modprobe.conf
    • /etc/modprobe.d/*
    • /etc/rc.modules
    • /etc/sysconfig/modules/*
    # modprobe --showconfig <_configuration_file_name_>
  3. 모듈이 출력에 표시되는 경우 해당 모듈이 무시되고 로드되지 않았는지 확인합니다.

    # modprobe --ignore-install <_module_name_>
  4. 로드되는 경우 실행 중인 시스템에서 모듈을 언로드합니다.

    # modprobe -r <_module_name_>
  5. 시스템에 특정 구성 파일에 blacklist 행을 추가하여 모듈이 직접 로드되지 않도록 방지 - 예를 들어 /etc/modprobe.d/local-dontload.conf:

    # echo "blacklist <_module_name_> >> /etc/modprobe.d/local-dontload.conf
    참고

    이 단계에서는 모듈이 필수 또는 다른 모듈의 선택적 종속성인 경우 로드되지 않습니다.

  6. 선택적 모듈이 요청 시 로드되지 않도록 합니다.

    # echo "install <_module_name_>/bin/false" >> /etc/modprobe.d/local-dontload.conf
    중요

    제외된 모듈이 다른 하드웨어에 필요한 경우 제외하면 예기치 않은 문제가 발생할 수 있습니다.

  7. initramfs 의 백업 사본을 만듭니다.

    # cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.$(date +%m-%d-%H%M%S).bak
  8. kernel 모듈이 initramfs 의 일부인 경우 초기 ramdisk 이미지를 다시 빌드하고 모듈을 생략합니다.

    # dracut --omit-drivers <_module_name_> -f
  9. 현재 커널 명령행 매개변수를 가져옵니다.

    # grub2-editenv - list | grep kernelopts
  10. 생성된 출력에 <_module_name_>.blacklist=1 rd.driver.blacklist=<_module_name_> 을 추가합니다.

    # grub2-editenv - set kernelopts="<> <_module_name_>.blacklist=1 rd.driver.blacklist=<_module_name_>"

    예를 들면 다음과 같습니다.

    # grub2-editenv - set kernelopts="root=/dev/mapper/rhel_example-root ro crashkernel=auto resume=/dev/mapper/rhel_example-swap rd.lvm.lv=rhel_example/root rd.lvm.lv=rhel_example/swap <_module_name_>.blacklist=1 rd.driver.blacklist=<_module_name_>"
  11. kdump initramfs 의 백업 사본을 만듭니다:

    # cp /boot/initramfs-$(uname -r)kdump.img /boot/initramfs-$(uname -r)kdump.img.$(date +%m-%d-%H%M%S).bak
  12. /etc/sysconfig/kdumpKDUMP _COMMANDLINE_APPEND 설정에 대한 Appendrd.driver.blacklist=<_ module_name_>kdump initramfs 에서 생략합니다.

    # sed -i '/^KDUMP_COMMANDLINE_APPEND=/s/"$/ rd.driver.blacklist=module_name"/' /etc/sysconfig/kdump
  13. kdump 서비스를 다시 시작하여 kdump initrd 의 변경 사항을 픽업하십시오:

      # kdumpctl restart
  14. kdump 초기 ramdisk 이미지를 다시 빌드합니다.

      # mkdumprd -f /boot/initramfs-$(uname -r)kdump.img
  15. 시스템을 재부팅합니다.

F.1. 임시로 모듈 제거

일시적으로 모듈을 제거할 수 있습니다.

절차

  1. 현재 로드된 모듈을 제거하려면 Run modprobe 를 실행합니다.

    # modprobe -r <module name>
  2. 모듈을 언로드할 수 없는 경우 프로세스 또는 다른 모듈이 해당 모듈을 계속 사용 중일 수 있습니다. 그런 경우 프로세스를 종료하고 다른 시간 위에 작성된 modpole 명령을 실행하여 모듈을 언로드합니다.