"modprobe 타격" 및 "modprobe 루프"를 지속시키는 방법은 무엇입니까?

"modprobe 타격" 및 "modprobe 루프"를 지속시키는 방법은 무엇입니까?

예전에는 문제가 되지 않았지만 이제는 문제가 되었습니다. 중요한 사항을 변경하지 않았으므로 업데이트로 인해 문제가 발생한 것 같습니다.

VeraCrypt를 실행하면 루프 장치를 설정할 수 없다고 불평하고 실행 modprobe fuse해도 작동하지 않는다고 제안합니다. 그러나, 달리는modprobe fuse 그리고 modprobe loop다음에 재부팅할 때까지 수정하세요.

이 모듈은 시작 시 자동으로 로드되어서는 안 되나요? 왜 안 돼? 어떻게 만드나요?

답변1

fuse필요에 따라 자동으로 로드될 수도 loop있습니다.

검색 표시grsecurity 커널이 이 작업을 방해할 수 있습니다.. 따라서 이 아이디어가 얼마나 좋은지에 대해서는 약간의 의견 차이가 있습니다. :-) 그러나 대부분의 배포판에서 이를 사용한다고 생각합니다.

자동 로딩에 일시적인 오류가 발생하더라도 시작 시 fuse로딩은 loop여전히 ​​괜찮습니다. 자동 로딩 메커니즘과 충돌하지 않습니다. 누가 호출하든 모든 모듈 옵션은 options의 줄을 기반으로 설정되어야 합니다./etc/modprobe.d/modprobe

loop예를 들어, 다음 사항을 확인하세요.

echo 'loop' | sudo tee -a /etc/modules-load.d/modules.conf

자동 로딩은 어떻게 작동하나요? 첫째, /dev/fuse모듈 로드 여부에 관계없이 시작 시 사용자 공간이 정적으로 생성됩니다. 현재 시스템의 메커니즘은 약간 바로크적입니다 /lib/systemd/system/kmod-static-nodes.service. 따라서 열려고 시도할 수 있는 장치 노드가 있습니다. 이렇게 하면 커널 호출이 먼저 모듈을 로드합니다.

내 시스템에서는 적절한 커널 모듈의 로드를 트리거할 수 있도록 장치 노드 목록이 정적으로 생성됩니다.

$ cat /run/tmpfiles.d/kmod.conf
c! /dev/fuse 0600 - - - 10:229
c! /dev/btrfs-control 0600 - - - 10:234
c! /dev/loop-control 0600 - - - 10:237
d /dev/net 0755 - - -
c! /dev/net/tun 0600 - - - 10:200
c! /dev/ppp 0600 - - - 108:0
c! /dev/uinput 0600 - - - 10:223
c! /dev/uhid 0600 - - - 10:239
d /dev/vfio 0755 - - -
c! /dev/vfio/vfio 0600 - - - 10:196
c! /dev/vhci 0600 - - - 10:137
c! /dev/vhost-net 0600 - - - 10:238
c! /dev/vhost-vsock 0600 - - - 10:241
d /dev/snd 0755 - - -
c! /dev/snd/timer 0600 - - - 116:33
d /dev/snd 0755 - - -
c! /dev/snd/seq 0600 - - - 116:1
c! /dev/cuse 0600 - - - 10:203

(이 d줄은 디렉토리입니다).

답변2

systemd 스크립트를 사용하여 시작 시 명령을 실행할 수 있습니다. 콘텐츠가 포함된 파일 만들기

modprobe fuse
modprobe loop

( ~/Documents/modprobe_startup.sh또는 저장하고 싶은 곳). 실행 가능하게 만드는 것을 잊지 마세요

chmod +x ~/Documents/modprobe_startup.sh

/lib/systemd/system/modprobe_startup.service이제 다음 내용으로 간단한 시스템 서비스 파일을 만듭니다.

[Unit]
Description=runs ~/Documents/modprobe_startup.sh

[Service]
Type=simple
ExecStart=/bin/bash /home/USERNAME/Documents/modprobe_startup.sh

[Install]
WantedBy=multi-user.target

USERNAME을 시스템의 사용자 이름으로 바꾸는 것을 잊지 마십시오.

이제 설치를 하자면,

sudo cp /lib/systemd/system/modprobe_startup.service /etc/systemd/system/modprobe_startup.service
sudo chmod 644 /etc/systemd/system/modprobe_startup.service
systemctl enable modprobe_startup.service

그리고 다시 시작하세요.

관련 정보