부팅 프로세스 및 서비스 제어

이 장은    시작 오류,    서비스 제어 및 스위치 실행 수준을 제거    하여 시작 프로세스 최적화하는
   Linux 운영 체제 부팅 프로세스로 구성 됩니다.


Linux 운영 체제
   의 부팅 프로세스 개요


Linux 운영 체제의 부팅 프로세스
 1. 전원 켜기 자체 검사
   서버가 켜진 후 마더 보드 BIOS의 설정에 따라 CPU, 메모리, 그래픽 카드, 키보드 및 기타 장치가 사전 테스트됩니다. 테스트가 성공하면 미리 설정된 시작 순서에 따라 시스템 제어가 전송됩니다., 대부분의 경우 로컬 하드 디스크로 넘겨집니다.
   요약 : 시스템을 부팅 할 수있는 첫 번째 장치가 감지됩니다. 하드 디스크 또는 광학 드라이브.

 2. MBR 부팅
   로컬 하드 디스크에서 시스템을 시작할 때 먼저 하드 디스크의 첫 번째 섹터의 MBR (Master Boot Record) 설정에 따라 운영 체제 부팅 파일이 포함 된 파티션으로 시스템 제어 권한을 전송하거나 직접 MBR 레코드에 따라 호출 부팅 메뉴의 부팅 정보 (예 : GRUB)
   요약 : MBR 섹터에있는 부팅 GRUB 부팅 프로그램을 실행합니다.

 3. GRUB 메뉴
   Linux 운영 체제에서 GRUB (Unified Boot Loader)는 가장 널리 사용되는 다중 시스템 부트 로더 프로그램입니다. 시스템 제어가 GRUB로 전달되면 사용자가 선택할 수있는 부트 메뉴가 표시되고 선택한 옵션 (또는 기본값)에 따라 Linux 커널 파일이로드 된 다음 시스템 제어가 다음으로 전송됩니다. 커널.
   Centos 7은 GRUB2 부트 로더를 사용합니다.
   요약 : GRUB 부트 프로그램은 GRUB 구성 파일 /boot/grub2/grub.cfg를 읽어 커널 및 미러 파일 시스템 설정과 경로 위치를 가져옵니다.

 4. Linux 커널로드
   Linux 커널은 사전 컴파일 된 특수 바이너리 파일로 다양한 하드웨어 리소스와 시스템 프로그램 사이에 있으며 리소스 할당 및 스케줄링을 담당합니다. 커널이 시스템을 제어하고 나면 Linux 운영 체제
   Centos 7 시스템 을 실행하는 전체 프로세스를 완전히 제어 할 수 있습니다 . 기본 커널 파일은 "/boot/vmlinuz-3.10.0-514.e17.x86_64"에 있습니다.
   요약 : 메모리에로드 된 커널 및 이미지 파일 시스템

 5. 초기화 프로세스 초기화
   추가 시스템 부팅 프로세스를 완료하기 위해 Linux 커널은 먼저 시스템의 "/ sbin / init"프로그램을 실행할 메모리에로드합니다 (실행중인 프로그램을 프로세스라고 함). 초기화 프로세스는 전체 시스템의 초기화를 완료하고 마지막으로 사용자가 로그인 할 때까지 기다립니다.
   요약 : 하드웨어 드라이버를로드하면 커널이 init 프로세스를 메모리에로드하여 실행할 수 있습니다.

시스템 초기화 프로세스
   init 프로세스

     는 Linux 커널에 의해로드되고 실행됩니다. / sbin / init 프로그램
     init 프로세스는 시스템의 첫 번째 프로세스이며 모든 프로세스의 상위 프로세스입니다.
     init 프로세스 PID (프로세스 태그) 번호는 항상 1

   Systemd
     Systemd은 리눅스 운영 체제의 초기화 소프트웨어입니다.
     CentOS7 전통적인 SysVinit에서 교체, 새로운 Systemd 시작 방법을 채택한다
     . 첫 번째 init 프로세스가 CentOS7에서 실행 / lib 디렉토리 / systemd / systemd입니다

   기존 SysVinit는 서비스를 시작하기 위해 셸 스크립트의 직렬 실행에 의존하므로 효율성이 낮고 시스템 시작이 느려집니다.
   Systemd는 더 많은 서비스 프로세스를 병렬로 시작할 수 있으며 요청시 서비스를 시작할 수 있으므로 더 적은 프로세스를 시작할 수 있습니다. 시스템 시작 속도 향상

   시스템 단위 유형

   실행 수준에 해당하는 Systemd 대상

MBR 섹터 오류 복구
   오작동 원인 복구      파티션, 디스크 읽기 및 쓰기 오용으로
     인한 바이러스, 트로이 목마 등 파괴

   문제 현상 :
     부팅 프로그램
     을 찾을 수없고, 시작이 중단 된 후 운영 체제를로드 할 수 없으며, 부팅 후 화면이 검게 표시됩니다.

   해결 방법 :
     미리 백업 파일      을 만들고
     설치 CD로 부팅
다음 비상 모드로 들어가 백업 파일에서 복원하십시오.

   MBR은 첫 번째 하드 디스크 (/ dev / sda)의 첫 번째 물리적 섹터에 있으며 총 512 바이트
 입니다. 1. MBR 섹터 데이터를 다른 디스크 (/ dev / sdb1)에
   백업 mkdir / backup
   mount / dev / sdb1 / 백업
   dd if = / dev / sda of = / backup / mbr.bak bs = 512 count = 1


 
 2. MBR 부트 섹터
   dd의 파괴를 시뮬레이션합니다. if = / dev / zero of = / dev / sda bs = 512 count = 1

 3. 부팅 인터페이스가 비상 모드로 전환되고, 백업 파일에서 MBR 섹터 데이터를 복원하고,
    먼저 CD 이미지를로드하고, 운영 체제를 다시 시작하고
    , 설치 마법사 인터페이스가 나타나면 "문제 해결"옵션
    을 선택한 다음 "CentOS 복구"를 선택합니다. Linux 시스템 "옵션, 비상 모드로 들어가
    "1 "을 선택하고 계속을 선택하고 Enter 키를 눌러 계속 한 다음
    Enter 키를 다시 누르면"sh-4.2 # "프롬프트
   sh-4.2 # mkdir / backupdir 과 함께 Bash 셸 환경으로 들어갑니다.
   sh-4.2 # mount / dev / sdb1 / backupdir
   # 백업 파일로 파티션 마운트 sh-4.2 # dd if = / backupdir / mbr.bak of = / dev / sda
   # 백업 데이터 복원 sh-4.2 # exit # 임시 셸 환경을 종료하는 명령을 종료하면 시스템이 자동으로 다시 시작됩니다.

GRUB 부팅 실패
   실패 원인 수정

     MBR의 GRUB 부팅 프로그램이 손상됨
     grup.com 파일이 누락되었으며 부팅 구성이 올바르지 않습니다.

   증상
     시스템 부팅이 중단되고 "grup>"프롬프트가 표시됩니다.

   해결 방법
     수동으로 부팅 명령을
     입력하여 비상 모드 들어가고, 백업에서 grup.conf를 다시 쓰거나 복원
     하여 MBR 섹터에서 grup 프로그램을 다시 빌드하십시오.

   / boot / grub / 디렉토리의 패키지는 부팅 메뉴의 배경 이미지 및 스타일에
   사용됩니다. /boot/grub2/grub.cfg #GRUB 구성 파일

   방법 1 : 부팅 명령을 수동으로 입력합니다 (서투르고 성가신, 권장하지 않음)
     grub > insmod xfs
     # 커널 grub에 지정된 모듈 로드 > linux16 ....... UTF-8 # 커널의 이름과 위치 및 기타 정보                           
     grub > initrd16 /initramfs-3.10.0-693.e17.x86_64.img #Mirror 시스템 파일
     grub > boot #boot boot

   방법 2 : 비상 모드로 들어가 GRUB 부트 프로그램을 복원합니다.
   MBR은 첫 번째 하드 디스크 (/ dev / sda)의 첫 번째 물리적 섹터에 있으며 총 512 바이트, 처음 446 바이트는 마스터 부트 레코드입니다. 파티션 테이블은 MBR 섹터의 447-510 바이트에 저장됩니다.
   mkdir / bak
   mount / dev / sdb1 / bak
   dd if = / dev / sda of = / bak / grub.bak bs = 446 count = 1

   #MBR에서 GRUB 부트 프로그램의 파괴를 시뮬레이션하지만 파티션 테이블
   dd if = / dev / zero of = / dev / sda bs = 446 count = 1 은 파괴하지 않습니다.

   # 부트 인터페이스가 비상 모드로 전환되고 백업 파일에서 GRUB 부트 프로그램을 복원합니다.
   sh-4.2 # mkdir / backupdir
   sh-4.2 # mount / dev / sdb1 / backupdir
   sh-4.2 # dd if = / backupdir / grub.bak of = / dev / sda
   sh-4.2 # 종료

   방법 3 : 인터페이스를 비상 모드로 부팅하고 GRUB 메뉴 구성 파일을 다시 빌드합니다.
   rm -rf /boot/grub2/grub.cfg #
   비상 모드로 들어가 CD 이미지를로드하고 시스템 루트 환경으로 전환
   sh-4.2 # chroot / mnt / sysimage

   # GRUB 부트 프로그램을 첫 번째 하드 디스크 (/ dev / sda)의 MBR 섹터에 다시
   설치합니다. bash-4.2 # grub2-install / dev / sda

   #GRUB
   menubash-4.2 의 구성 파일을 다시 빌드하십시오. # grub2-mkconfig -o /boot/grub2/grub.cfg

   #chroot 환경을
   종료 하고 bash-4.2를 다시 시작합니다. # exit
   sh-4.2 # reboot

루트 사용자 암호

     분실    실패 이유 루트 사용자 암호 분실

   증상
     : 루트 권한이 필요한 관리 작업을 수행 할 수 없습니다.
     사용 가능한 다른 계정이 없으면 시스템에 로그인 할 수 없습니다.

   솔루션 아이디어,
     비상 모드 진입, 비밀번호 재설정

   # 비상 모드 진입, 시스템 이미지로드, 시스템 루트 환경으로 전환
   sh-4.2 # chroot / mnt / sysimage #
   루트 사용자 암호 재설정
   bash-4.1 # passwd root

시스템 서비스 제어
   systemctl 제어 유형 서비스 이름

   제어 유형
     시작 : 시작
     중지 : 중지
     다시 시작 : 다시 시작 다시
     로드 : 다시로드
     상태 : 서비스 상태보기
       ······

Linux 시스템
   보기 실행 레벨 실행 레벨
     명령
     systemctl 명령의 실행 레벨

   실행 수준
     init 명령
     systemctl 명령을 일시적으로 전환

   영구 실행 수준 설정
   ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
 또는
   systemctl set-default multi-user.target

   systemctl get-default #
   현재 기본 수준보기

시작 프로세스 최적화
   ntsysv 도구
     는
     문자 터미널에서 실행할 수 있는 대화 형 시각적 창을
     제공
     하여 여러 서비스의 중앙 집중식 관리 용이하게 하여 서비스가 자동으로 시작되는지 여부를 제어합니다.

   systemctl 도구
     는
     단일 서비스에 대한 대화 형 시각적 창 관리를 제공하지 않으므로 더 효율적입니다.

시작 및 제어
   시스템 서비스 ntsysv를 시스템 서비스 관리 도구
     ntsysv를
     ntsysv를 --level 수준 목록


     스페이스를 눌러 서비스 옵션을 표시하고
     ↑, ↓ 키를 눌러 서비스 옵션
     을 전환하고 탭 키를 눌러 커서를 전환합니다.

   시스템 서비스의 시작 상태보기
     systemctl이 활성화 된 서비스 이름

   시스템 서비스의 자체 시작 상태 설정
     systemctl 서비스 이름 활성화 # 자동 시작
     활성화 systemctl 서비스 이름 비활성화 # 자동 시작 해제

호스트 이름을 영구적으로 수정
   hostnamectl set-hostname newname
호스트 이름 상태보기
   hostnamectl status

시스템 언어를 중국어
   localectl로 설정합니다. set-locale LANG = zh_CN.utf8
현재 시스템 언어보기
   localectl [status]

시스템 시작 시간보기
   systemd-analyze

추천

출처blog.csdn.net/weixin_53496478/article/details/113540714