한 차례의 단전으로 인한centos7.4 시스템이 정상적으로 진입하지 못하는 해결 방안을 기록하다

3793 단어
상황 설명: 단지에서 의외로 전기가 끊어져 서버centos7.4 시스템이 정상적으로 들어가지 못하고 진도표 인터페이스에 계속 걸려 있다. esc 또는 f5를 누르면 상세한 오류를 볼 수 있다. 주로 세 가지 서비스가 오류를 보고한다. 아래의 그림과 같다.
chronyd, Postfix, polkit 서비스 시작 실패
분석 상황: 이 몇 가지 서비스는 모두centos에서 흔히 볼 수 있는 서비스이고,chronyd는 시간 동기화 서비스이고,Postfix는 메일 서비스이고,polkit은 linux 서버 위의 서버 방법 프로세스입니다. 마지막 서비스 실패로 인해 시스템이 들어갈 수 없는 것이 아닐까요?
해결 절차: 1. 오류 서비스 해결 방법 서버의 비상 모드를 닫으면 들어갈 수 없습니다. 그래서centos7.4의 CD를 녹음했습니다. CD의 비상 모드를 통해 들어갔습니다. 원래의 시스템 파일은/mnt/sysimage/디렉터리 아래에 마운트되었습니다. 1.1. 먼저 메시지 로그cat/mnt/sysimage/var/log/message(로그 파일이 비교적 큰) 검색에서 인터페이스에 보고된 몇 가지 오류를 발견했습니다.그래서 우리는 이 몇 가지 서비스를 멈추고 싶습니다. 그래서 비상 모드에서 명령을 사용합니다. 시스템ctlstopchronyd (존재하지 않음) 시스템ctldisablechronyd
systemctl disable polkit

systemctl disable postfix

뒤에 정식으로 이런 방법이 잘못되어 CD 시스템 안의 세 개의 대응 서비스를 닫았을 가능성이 높다.1.2 단일 사용자 모드로 들어가기 (grub 메뉴를 시작하고 편집 옵션을 선택하여 키보드 e키를 누르면 편집 인터페이스에 들어가서 Linux 16의 줄을 찾을 수 있습니다. ro를 rw init=/sysroot/bin/sh로 바꾸고 Control+x를 누르면 단일 사용자 모드로 시작하여 다음 명령을 사용하여 시스템chroot/sysroot에 접근할 수 있습니다)
명령을 실행하고 서비스를 정지합니다. 시스템ctl disable chronyd systemctl disable polkit systemctl disable postfix를 실행하고 다시 시작합니다. 이번에는 이 세 가지 오류를 보고하지 않겠지만 다른 서비스 오류를 계속 보고합니다. 우리는 같은 방법으로 다음 서비스를 계속 닫았습니다: chronyd.서비스 Firewalld Network Managerpostfixtuneddockerkdump는 이렇게 많은 서비스를 닫은 후에 시작 인터페이스에서 아무런 오류도 보고하지 않았지만 시스템에 들어갈 수 없습니다. 계속 진도표에 걸려 있습니다. esc를 눌러도 아무런 오류가 없습니다. 막다른 골목에 들어갔습니다. 이런 방법은 통하지 않습니다.
2. 시스템 구역, 파일 시스템, 디스크 검사 복구는 긴급 모드로 진입: 2.1, 파일 시스템 복구 선umount 시스템 구역, xfs_repair-v-L/dev/dm-0 (사용자 정보와 로그를 잃어버릴 수 있음) 2.2, df-h 및 fdisk -l/dev/sda1은 구역이 정상적인지 2.3, #나쁜 명령을 검출하고 결과는/home/badblocks로 출력됩니다.logbadblock -s -v -o/home/badblocks.log/dev/sda1 결과: 오류가 없습니다.
3. selinux의 원인으로 인해 selinux의 설정을 검사하러 들어갔는데 SELINUX=disabled와 SELINUXTYPE=targeted가 정상적이라는 것을 발견하고 이런 가능성을 배제했다.
4. 원 시스템의 운영 로그 비상 모드로 들어가서/mnt/sysimage/root/를 보십시오.bash_history, 삭제/etc/rc가 발견되었습니다.디렉터리 아래의 조작 기록을 자세히 보면 채광 바이러스에 걸렸고 clamav로 스캔하여 수동으로 파일을 지우는 작업, 그리고 ps,lattr 명령을 바꾸는 작업도 있습니다. 캡처하면 다음과 같습니다. 시스템 파일을 잘못 삭제해서 그런지 뒤에 제 생각이 정확하다는 것을 증명했습니다.
4.1. 그래서 다시 비상 모드에 들어가서 메시지,boot를 봅니다.log, dmesg, secure 로그, 로그가 너무 커서 위치를 정하기 어려워요. 먼저 이 로그 파일을 백업한 다음에 모두 비우고 하드디스크에서 시스템을 다시 시작한 다음에 CD 비상 모드로 들어가서 로그의 구체적인 오류를 보고 다음 파일을 복구했습니다.centos7 시스템 서비스와 관련된 세 가지 경로:/usr/lib/systemd/system/| RPM 패키지를 설치할 때 나누어 주는 unit 파일/run/systemd/system/| systemd가 실행될 때 만든 파일/etc/systemd/system/다음과 같은 파일을 복구했습니다./usr/bin/tmuxzram.service/sbin/rngd/lib/systemd/rhel-dmraid-activation :no such file or directory 、/usr/libexec/anaconda/anaconda-pre-log-gen/usr/libexec/anaconda/zramswaponanaconda-pre.servicelibevent-2.0.so.5anaconda-tmux0tty1.serviceanaconda.service/usr/bin/anaconda-disable-nm-ibft-plugin/sys/module/pcc-cpufreg/initstate/etc/rc.d/init.d/functions 사용 방법: CD 파일은 원 시스템 파일cp/usr/lib64/libevent-2.0을 고려합니다.so.5/mnt/sysimage/usr/lib64/cp-r/usr/libexec/anaconda/mnt/sysimage/usr/libexec/cp/lib/systemd/rhel-dmraid-activation/mnt/sysimage/lib/systemdcp/usr/bin/anaconda-disable-nm-ibft-plugin/mnt/sysimage/usr/bin/bin/복원 수십 바퀴 후,메시지에서 다음 오류가 발견되었습니다. Unknown username "polkitd"Unknown username "dbus"Failed bot register match for Disconnected messageLooping too fast Throottling execution a littletuned.servicepostfix.service failedchronyd.servicepolikit.servicedbus.서비스는 사용자가 존재하지 않고 시스템 서비스 시작에 실패하는 현상이 있습니다. 이상하게도 이것은 시스템 서비스 사용자입니다. 무의식적으로 패스워드 파일을 찾았는데 그 안에 루트를 제외한 다른 사용자들이 주석을 잃어버렸습니다. 여기서 문제점을 찾은 것 같아서 주석을 취소하고 로그를 다시 확인하면 시스템에 정상적으로 들어갈 수 있습니다. 구체적인 패스워드 파일이 바이러스에 의해 주석되었는지 프로그램이나 인위적으로 설정되었는지 알 수 있습니다.조사할 흔적이 없다.나중에 나는 실험을 한 적이 있다. 만약에passwd 안의 사용자를 루트를 제외하고 다른 사용자를 모두 멈추면 확실히 시스템에 들어갈 수 없게 될 것이다.요약: 시스템에 들어갈 수 없는 이유는passwd 사용자가 주석을 달았기 때문이다. 그렇지 않으면 시스템에 들어갈 수 있고 시스템에 라이브러리 파일이 부족하면 시스템 서비스 시작에 영향을 줄 수 있다.
다음으로 전송:https://blog.51cto.com/9678130/2396126

좋은 웹페이지 즐겨찾기