재부팅할 때마다 lib 모듈 폴더 삭제

재부팅할 때마다 lib 모듈 폴더 삭제

uname -r:4.13.0-16-generic (우분투 17.10 서버)

다시 시작한 후 iptables가 작동하지 않는 문제가 발생했습니다.

iptables-apply /etc/network/iptables
[ ok ] Stopping fail2ban (via systemctl): fail2ban.service.
Applying new iptables rules from '/etc/network/iptables'... modprobe: FATAL: Module ip_tables not found in directory /lib/modules/4.13.0-16-generic
iptables-restore v1.6.1: iptables-restore: unable to initialize table 'filter'

Error occurred at line: 3
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
failed.
Error: unknown error applying new iptables rules: /etc/network/iptables
Reverting to old iptables rules... done.

커널과 iptables를 다시 설치해 보았습니다.

apt install --reinstall linux-generic linux-image-4.13.0-16-generic linux-image-extra-4.13.0-16-generic linux-headers-4.13.0-16-generic iptables

다시 시작하지 않고 다시 설치했을 때 서비스가 다시 시작된 후 iptables가 작동했습니다.

컴퓨터를 다시 시작했는데 같은 오류가 다시 발생했습니다.

재부팅할 때마다 다음 폴더가 사라지는 것을 확인했습니다.

/lib/modules/4.13.0-16-generic/kernel/net/ipv4/netfilter

ipv4 폴더에는 gre.ko udp_tunnel.ko 파일 2개만 남았습니다.

누락된 파일을 이 위치에 복사해도 아무 효과가 없으며 다음 재부팅 시 삭제됩니다.

이 문제를 해결하는 방법을 아시나요?

답변1

Ubuntu 16.04에서도 동일한 결과를 얻었습니다. 해결책은 없지만 왜 이런 일이 발생하는지 어느 정도 알 수 있습니다. 이 책을 진행하는 동안 시스템은 처음에 RAM 기반 파일 시스템인 initramfs에서 부팅됩니다. 나중에 부팅 프로세스 중에 하드 디스크가 대신하지만 initramfs의 모듈 디렉터리는 하드 디스크의 모듈 디렉터리에 마운트됩니다. 의 출력에는 mount다음 줄이 포함됩니다.

copymods on /lib/modules type tmpfs (rw,relatime)

좋아, 예를 들어 다음을 실행하여 /lib/modules를 변경하세요.

sudo apt-get install --reinstall linux-image-$(uname -r)

시스템을 다시 시작한 후에는 손실됩니다. 그러면 이것이 어떻게 작동할까요? 명령이 새 모듈을 추가 하면 apt install해당 모듈이 에 있어야 합니다 /usr/share/initramfs-tools/hooks. 그런 다음 apt install설치 프로그램 실행 스크립트를 호출하면 initramfs 이미지인 update-initramfsCPIO 아카이브가 생성됩니다 /boot/initrd.img-(uname -r). 이 아카이브에는 이제 시스템 재부팅 시 iptables가 작동하는 데 필요한 모듈이 포함되어야 합니다.

오류는 관련 항목이 /usr/share/initramfs-tools/hooksinitramfs에서 실제로 생성되지 않으므로 시스템 재부팅 시 지속되지 않는다는 것입니다.

이 시점에서 나는 막혔습니다.

답변2

@scottwh2가 언급했듯이 문제는 copymodsramfs 볼륨 이 /lib/modules.mount | grep /lib/modules

그것을 제거하려면 다음을 실행하십시오.

apt remove cloud-initramfs-copymods

그런 다음 다시 시작하십시오.

재부팅 후 해당 copymods항목이 mount.

답변3

Ubuntu Server 16.04에서도 동일한 문제가 발생했습니다. 주문하다:

mount | grep /lib/modules

보여주다:

copymods on /lib/modules type tmpfs (rw,relatime)

그래서 먼저 cloud-initramfs-copymods를 제거하려고 했지만 패키지가 내 시스템에 설치되지 않았습니다. 그런 다음 설치했습니다.

apt-get install cloud-initramfs-copymods

그런 다음 삭제했습니다.

apt-get remove cloud-initramfs-copymods

다시 시작한 후 서버 copymods가 사라지고 다시 시작한 후에도 모듈이 삭제되지 않습니다! 감사합니다스콧 WH2그리고가짜 주머니내 문제를 성공적으로 해결했습니다.

관련 정보