> 운영 및 유지보수 > CentOS > CentOS 시스템 시작 프로세스는 무엇입니까?

CentOS 시스템 시작 프로세스는 무엇입니까?

WJ
풀어 주다: 2020-06-03 15:29:49
원래의
1933명이 탐색했습니다.

CentOS 시스템 시작 프로세스는 무엇입니까?

CentOS 시스템 시작 프로세스는 무엇입니까?

전원 버튼을 누르면 시스템의 비밀을 알 수 있나요? 여기서는 Linux 시스템 부팅 뒤에 숨은 비밀을 알아보도록 하겠습니다.

CentOS 시스템 시작 프로세스는 무엇입니까?

1. 전원 공급 자가 테스트

마더보드의 전원을 켜면 시스템은 먼저 POST 프로그램을 통해 다양한 내부 장치를 검사합니다. 두 가지 상황에서 처리됩니다. 심각한 오류(치명적인 오류)의 경우 기계가 정지됩니다. 이때 다양한 초기화 작업이 완료되지 않았으므로 심각하지 않은 오류, 프롬프트 또는 소리 경보 신호에 대한 프롬프트나 신호가 제공될 수 없습니다. 사용자 처리를 기다리는 동안 제공됩니다.

2. BIOS 시작 부팅 단계

자체 테스트를 통과한 후 부팅 프로그램이 있는 첫 번째 장치가 이 시작에 사용될 장치입니다. 일반적으로 컴퓨터는 "F2" 또는 "Del" 키를 눌러 BIOS로 들어가며, 여기에서 하드 디스크의 시작 순서를 조정할 수 있습니다.

부트로더가 있는 첫 번째 장치를 찾은 후 BIOS는 장치에서 MBR을 찾아 부트로더를 읽습니다.

3.GRUP 부팅 단계

이때 Centos 시스템을 볼 수 있지만 일반적으로 작업이 필요하지 않습니다. , 시스템이 자동으로 시작됩니다. 실제로 시스템을 직접 수동으로 시작할 수도 있습니다.

3.1 grub 명령줄 인터페이스를 통해 수동으로 시스템 시작:

    grub> root (hd#,#)
  grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE 
  grub> initrd /initramfs-VERSION-RELEASE.img
   grub> boot
로그인 후 복사

3.2 grub의 명령줄 인터페이스:

  e: 编辑模式,用于编辑菜单;
 c: 命令模式,交互式接口;
help: 获取帮助列表
help KEYWORD: 详细帮助信息
find (hd#,#)/PATH/TO/SOMEFILE:
root (hd#,#) 设定grup的根设备
kernel /PATH/TO/KERNEL_FILE: 设定本次启动时用到的内核文件;额外还可以添加许多内核支持使用的cmdline参数;
例如:init=/path/to/init, selinux=0
initrd /PATH/TO/INITRAMFS_FILE: 设定为选定的内核提供额外文件的ramdisk;
boot: 引导启动选定的内核;
로그인 후 복사

3.3 구성 파일: /boot/grub/grub .conf< /code><code>/boot/grub/grub.conf

配置项:

default=#: 设定默认启动的菜单项;落单项(title)编号从0开始;
timeout=#:指定菜单项等待选项选择的时长;
splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE:指明菜单背景图片文件路径;
hiddenmenu:隐藏菜单;
password [--md5] STRING: 菜单编辑认证;
title TITLE:定义菜单项“标题”, 可出现多次;用来引导多个内核或者操作系统
    root (hd#,#):grub查找stage2及kernel文件所在设备分区;为grub的“根”; 
kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:启动的内核
initrd /PATH/TO/INITRAMFS_FILE: 内核匹配的ramfs文件;
password [--md5] STRING: 启动选定的内核或操作系统时进行认证
로그인 후 복사

4.加载内核阶段

内核会自身初始化:

探测可识别到的所有硬件设备;

加载硬件驱动程序;(有可能会借助于ramdisk加载驱动)

以只读方式挂载根文件系统;

运行用户空间的第一个应用程序:/sbin/init

5.init初始化阶段

内核加载完毕,会运行init程序,init进程起来后,系统启动的控制权移交给init进程

/sbin/init进程是所有进程的父进程,当init起来之后,它首先会读取配置文件/etc/inittab,进行以下工作:

1.执行系统初始化脚本(/etc/rc.d/rc.sysinit),对系统进行基本的配置,以读写方式挂载根文件系统及其它文件系统,到此系统基本算运行起来了,后面需要进行运行级别的确定及相应服务的启动;
2.确定启动后进入的运行级别;
3.执行/etc/rc.d/rc,该文件定义了服务启动的顺序是先K后S,而具体的每个运行级别的服务状态是放在/etc/rc.d/rcn.d(n=0~6)目录下,所有的文件均链接至/etc/init.d下的相应文件。
4.有关key sequence的设置
5.有关UPS的脚本定义
6.启动虚拟终端/sbin/mingetty 
7.在运行级别5上运行X
로그인 후 복사

配置文件:/etc/inittab

구성 항목:

id:runlevels:action:process 
id:一个任务的标识符;
runlevels:在哪些级别启动此任务;#,###,可以为空,表示所有级别;
action:在什么条件下启动此任务;
process:任务;(脚本或程序)
로그인 후 복사

4. 커널 로딩 단계

커널이 자체적으로 초기화됩니다.

인식된 모든 하드웨어 장치를 검색합니다.

하드웨어 드라이버를 로드합니다. )

읽기 전용 모드로 루트 파일 시스템을 마운트합니다. 사용자 공간에서 첫 번째 응용 프로그램을 실행합니다: /sbin/init5.init 초기화 단계
커널이 로드됩니다. init 프로그램을 실행합니다. init 프로세스가 시작된 후 시스템 시작 제어가 init 프로세스로 이전됩니다.

/sbin/init 프로세스는 모든 프로세스의 상위 프로세스입니다. init가 시작되면 먼저 구성 파일을 읽습니다. /etc/inittab , 다음 작업을 수행합니다: 🎜
action:
wait:等待切换至此任务所在的级别时执行一次;
respawn:一旦此任务终止,就自动重新启动之;
initdefault:设定默认运行级别;此时,process省略;
sysinit:设定系统初始化方式,此处一般为指定/etc/rc.d/rc.sysinit脚本;
로그인 후 복사
🎜구성 파일: /etc/inittab 🎜🎜 각 줄은 작업과 해당 프로세스를 정의합니다🎜
查看:chkconfig  --list   [name]
添加:chkconfig  --add  name
删除:chkconfig  --del  name
로그인 후 복사
chkconfig  [--level  LEVELS]  name  <on|off|reset>
--level LEVELS:指定要控制的级别;默认为2345;
init命令:
级别切换:init #
级别查看:who -r
로그인 후 복사
🎜 K*: 중지할 서비스; K## *, 숫자가 작을수록 우선순위는 종속 서비스를 먼저 종료한 다음 종속 서비스를 종료하는 것입니다. 🎜🎜S*: 시작할 서비스; 숫자가 작을수록 먼저 시작되고 종속 서비스는 나중에 시작됩니다. 🎜🎜chkconfig 명령: 각 수준에서 /etc/init.d/에 있는 각 서비스 스크립트의 시작 또는 종료 상태를 제어합니다. 🎜지정된 링크 유형 수정: 🎜rrreee🎜관련 참조: 🎜🎜centOS tutorial🎜🎜🎜🎜🎜🎜🎜

위 내용은 CentOS 시스템 시작 프로세스는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿