이 장은 시작 오류, 서비스 제어 및 스위치 실행 수준을 제거 하여 시작 프로세스 를 최적화하는
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