linux磁盘分区以及系统目录结构介绍,系统启动过程

硬盘如果想存放数据要经历以如下过程先分区----》格式化(创建文件系统)—》存放数据下边分别介绍一下什么是磁盘分区,linux系统一般如何分区,以及文件系统。

分区的基本概念

学习 Windows、Linux 操作系统,必然要了解硬盘设备,在硬盘上能够安装系统或者存放数据,但前提是必须要对硬盘进行分区和格式化,不同的分区存放不同的数据,从而避免数据杂乱无章堆积在一起。比如:与系统相关的敏感数据肯定不能与我们的视频等数据堆积到一起。通过分区从而提高了数据安全性以及磁盘的性能。
分区有三种:主分区、扩展分区、逻辑分区。
注意:
在这里插入图片描述
1、一块磁盘最多可以有4个主分区,其中一个主分区的位置可以用一个扩展分区替换,在这个扩展分区内可以划分多个逻辑分区
2、如果规划的分区数量超过4个,则分区组合为3 个主分区+ 1个扩展分区或两个主分区+1个扩展分区或1个主分区一个扩展分区
3、一块磁盘最多只能有一个扩展分区,扩展分区不能直接使用,必须在扩展分区上划分逻辑分区,然后格式化(创建文件系统),之后才能存取数据或安装系统
4.2、linux下系统分区的命名
1、设备命名
在 Linux系统中,磁盘设备对应于系统中的特殊文件,这些特殊文件放在“ldev
目录中,不同的设备对应的设备名称如下:
系统的第一块IDE接口的硬盘称为/ dev/hda。
系统的第二块IDE接口的硬盘称为/ dev/hdb。
系统的第一块SCSI接口的硬盘称为/dev/sda。
系统的第二块SCSI接口的硬盘称为/ dev/sdb。
2、使用数字编号
为了表示不同的分区,通常会用数字进行编号,比如:
系统的第一块IDE接口硬盘的第1个分区称为/ dev/hda1。
系统的第一块DE接口硬盘的第5个分区称为/dev/hda5。
系统的第一块SCSI接口硬盘的第1个分区称为dev/sda1。
系统的第二块SCSI接口硬盘的第5个分区称为dev/sdb5。
4.3、Linux系统如何分区
Linux分区方式是,是先有目录,再将磁盘上的物理地址映射到目录中。
Linux系统对分区的基本要求
1、最少要有一个根/分区,用来存放系统文件及程序。其大小至少在5GB以上。
2、要有一个swap(交换)分区,它的作用相当于 Windows里的虚拟内存,swap分区的大小一般为物理内存容量的1.5倍(内存<8GB)。但当系统物理内存大于8GB时,则swap分区配置8~16GB即可,太大无用,浪费磁盘空间。swap分区不是必需的,
但是大多数情况应该设置,个别企业的数据库应用场景不分swap。
3、/boot分区,这是 Linux系统的引导分区,用于存放系统引导文件,如 Linux内核等。所有文件的总大小一般只有几十MB,并且以后也不会增大太多。因此,该分区可以设置为100~200MB,这个分区也不是必需的。
企业生产场景中Linux系统的分区方案
常规的分区方案如下。
方案1:针对网站集群架构中的某个节点服务器分区,该服务器上的数据有多份(其他节点也有)且数据不太重要,建议的分区方案如下。
/boot:设置为100~200MB。
swap:物理内存的1.5倍,当内存大于或等于8GB时,配置为8~16GB即可。
/:剩余硬盘空间大小(/usr、home、/var等分区和“/”共用一个分区,这相当于在 Windows系统中只有一个C盘,所有数据和系统文件都放在一起)。
方案2:针对数据库及存储角色的服务器分区,该服务器的业务有大量重要的数据,建议分区方案如下。
/boot:设置为100~200MB。
/:大小设置为50~200GB,只存放系统相关文件,网站等的业务数据不放在这里。
swap:物理内存的1.5倍,当内存大于或等于8GB时,配置为8~16GB即可。
data:剩余硬盘空间大小,放数据库及存储服务等重要数据。当然,data的名称也可以换成别的名字。
本方案其实就是把重要数据单独分区,便于备份和管理。
方案3:针对大网站或门户级别企业的服务器进行分区
/boot:大小设置为100MB。
swap:物理内存的1.5倍,当内存大于或等于8GB时,配置为8~16GB即可。
/:大小设置为50~200GB,只存放系统相关文件,网站等的业务数据不存放在这里。
剩余的磁盘空间保留,不再进行分区,将来分配给不同的使用部门,由他们自己根
据需求再分!
此种分区方案更灵活,比较适合业务线比较多、需求不确定的大企业使用。
4.4、如何查看磁盘分区
df -T 只可以查看已经挂载的分区和文件系统类型。
fdisk -l 可以显示出所有挂载和未挂载的分区,但不显示文件系统类型。
parted -l 可以查看未挂载的文件系统类型,以及哪些分区尚未格式化。
lsblk -f 也可以查看未挂载的文件系统类型。
file -s /dev/sda3 直接查看某个分区
4.5、挂载点
Mount point的意思是挂载点,这是 Linux下访问磁盘分区的入口,即如果要往/boot分区(ldev/sdal)写入数据,就必须通过/boot入口来写入,想像根分区里写内容就用/ 为入口。swap分区用户不能访问,就没有提供挂载点。
注意:如果window下直接盘符就对应着分区,访问E盘就E:\linux。
4.6、文件系统
File System Type的意思是文件系统类型,就像 Windows的fat32 ntfs一样,磁
盘分区只有在设置了文件系统类型格式化并挂载上挂载点后,分区才能存放数据。目前
有如下一些文件系统类型。
ext2/ext3/ext4:适合 Linux的文件系统类型。由于ext3文件系统多了日志记录功能,因此系统恢复起来会更快速,ext4是ext3的升级,效率更加高,因此建议使用默认的ext4类型,而不要使用ext2/ext3。
physical volume(LVM):一种弹性调整文件系统大小的机制,可以让文件系统变
大或变小,而不改变原有文件数据的内容,功能不错,但性能会下降。
software RaID:利用 Linux系统的特性,用软件仿真出磁盘阵列的功能。
swap:内存交换空间。由于swap并不会使用到目录树的挂载,因此用swap就不需要指定挂载点。
vfat:同时被 Linux与 Windows所支持的文件系统类型。如果主机硬盘上同时存
在 Windows与Linuκ两种操作系统,有数据交换需求,可以使用该文件系统。
κfs:一个文件系统类型,在 Centos7中将被作为默认的文件系统类型而替换ext4
4.7、目录结构
4.7.1、目录简介
Linux所有目录是一个有层次的倒着树状结构, /为linux所有目录的起点。所以linux所有路径都是以/开始的。 /etc/sysconfig /
注意:
1、目录和磁盘分区是没有关联的
2、/下不同的目录可能对应不同的磁盘分区或不同的磁盘设备
3、所有的目录都是按照一定的类别有规律的组织和命名的。
相对路径:相对于当前路径下的路径
绝对路径:从根为起始点的路径
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

/bin 系统有很多放置执行档的目录,但/bin比较特殊。因为/bin放置的是在单人维护模式下还能够被操作的指令。在/bin底下的指令可以被root与一般帐号所使用,主要有:cat,chmod(修改权限), chown, date, mv, mkdir, cp, bash等等常用的指令。

/boot ( Static files of the boot loader)linux的内核及系统引导程序所需的文件目录。安装系统分区的时候一般要分一个boot分区。常见分区:boot 128m swap内存的1.5倍 以及/
/dev (Device files)设备文件目录,比如声卡、磁盘、光驱。比要重要的设备有/dev/null, /dev/zero, /dev/tty , /dev/lp*, / dev/hd*, /dev/sd*等等
/etc (1)二进制安装(yum rpm)的配置文件默认路径
(2)服务启动命令存放目录/etc/init.d。(service sshd start)(service network resart)

/home 这是系统预设的使用者家目录(home directory)。 在你新增一个一般使用者帐号时,预设的使用者家目录都会规范到这里来。比较重要的是,家目录有两种代号:
:代表当前使用者的家目录,而 ~guest:则代表用户名为guest的家目录。

/lib 系统的函式库非常的多,而/lib放置的则是在开机时会用到的函式库,以及在/bin或/sbin底下的指令会呼叫的函式库而已 。 什么是函式库呢?妳可以将他想成是外挂,某些指令必须要有这些外挂才能够顺利完成程式的执行之意。 尤其重要的是/lib/modules/这个目录,因为该目录会放置核心相关的模组(驱动程式)。
/media media是媒体的英文,顾名思义,这个/media底下放置的就是可移除的装置。 包括软碟、光碟、DVD等等装置都暂时挂载于此。 常见的档名有:/media/floppy, /media/cdrom等等。
/mnt 如果你想要暂时挂载某些额外的装置,一般建议妳可以放置到这个目录中。在古早时候,这个目录的用途与/media相同啦。 只是有了/media之后,这个目录就用来暂时挂载用了

/opt 这个是给第三方协力软体放置的目录 。 什么是第三方协力软体啊?举例来说,KDE这个桌面管理系统是一个独立的计画,不过他可以安装到Linux系统中,因此KDE的软体就建议放置到此目录下了。 另外,如果妳想要自行安装额外的软体(非原本的distribution提供的),那么也能够将你的软体安装到这里来。 不过,以前的Linux系统中,我们还是习惯放置在/usr/local目录下。
/root 系统管理员(root)的家目录。 之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时,该目录就能够拥有root的家目录,所以我们会希望root的家目录与根目录放置在同一个分区中。

/sbin Linux有非常多指令是用来设定系统环境的,这些指令只有root才能够利用来设定系统,其他使用者最多只能用来查询而已。放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。至于某些伺服器软体程式,一般则放置到/usr/sbin/当中。至于本机自行安装的软体所产生的系统执行档(system binary),则放置到/usr/local/sbin/当中了。常见的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。

/srv srv可以视为service的缩写,是一些网路服务启动之后,这些服务所需要取用的资料目录。 常见的服务例如WWW, FTP等等。 举例来说,WWW伺服器需要的网页资料就可以放置在/srv/www/里面。看来平时我们编写的代码应该放到这里了。

/tmp 这是让一般使用者或者是正在执行的程序暂时放置档案的地方。这个目录是任何人都能够存取的,所以你需要定期的清理一下。当然,重要资料不可放置在此目录啊。 因为FHS甚至建议在开机时,应该要将/tmp下的资料都删除。

/usr 用户程序及数据、帮助文件、二进制命令等的目录

小结:
/dev/设备目录
/etc/系统配置及服务配置文件、启动命令的目录
/proc显示内核及进程信息的虚拟文件系统
/tmp临时文件目录,公共厕所,客厅。
/home普通用户家目录,大臣的家。
/root超级管理员的家目录,皇宫
/var变化的目录,一般是日志文件, cache的目录。
/usr用户程序及数据、帮助文件、二进制命令等的目录
/bin普通用户命令的目录
/sbin和/ usr/sbin/超级用户命令的目录

linux重要子目录

/etc重要子目录

/etc/sysconfig/network-scripts/ifcfg-eth0(重要) #配置网络地址及GW等,使得网卡生效
(1)重启网卡/etc/init.d/network restart或service network restart 都影响所有网卡
(2)Ifdown eth0 && ifup eth0只针对eth0网卡ifdown禁用网卡的指令,ifup启动网卡的指令,这句话的意思是先禁用eth0网卡再启用eth0网卡
用过setup指令,可以通过界面修改网卡,但一般用打开文件修改的方式
DEVICE=eh1 #<==物理设备名,eth1表示第2块网卡
HWADDR=00:0c29ba:8e:8f #<==网卡的MAC地址,48位。
TYPE= Ethernet #<==以太网。
UUID=1636dba-cc88-418d-820c-a06c956dbf77
ONBOOT=yes #<==控制网卡是不是开机启动
NM_CONTROLLED=yes
BOOTPROTO=none #<==其中, proto取下列值之一:none,引导时不使用协议;
static静态分配地址; bootp,使用 BOOTP协议,或dhcp,使用DHCP协议。
IPADDR=10.0.0.7 #<==addr是IP地址。10.0.0.0/24
NETMASK=255.255.255.0 #<==子网掩码,划分网络位和主机
DNS2=202.1060.20 #<==DNS把 baidu. com变成了badu服务器IP。DNS就是域名和IP的解析工具。
GATEWAY=10.0.0.254#=网关地址,路由器的地址
DNS1=8.8.8.8 #<DNS1
USERCTL=no
/etc/resolv.conf(重要) #设置linux本地的客户端DNS的配置文件,DNS可以实现域名和IP的互相解析。
可以通过setup命令配置
Setup --> ‘network configuration’ --> ‘DNS configuration’
上述设置实际上是修改/ etc/resolv. conf这个文件
负责域名和IP互相解析的服务就是dns( domain name systen)
www. baidu com《
》203.71.88.10
不要在网卡配置文件里配置DNS,而是在/ etc/resolv.conf里配
1、客户端DNS可以在网卡配置文件里设置( ifcfg-etho)
2、客户端DNS也可以在/ etc/resolv. conf里设置
3、网卡里的设置DNS优先于/ etc/resolv. conf。
/etc/sysconfig/
network #可修改机器名及网卡启动、网关等配置。
更改主机名
1、vi /etc/sysconfig/network
sed -i‘s#HOSTNAME=songlsss#HOSTNAME=songls#g’ /etc/sysconfig/network
2、Hostname 主机名
同时修改
/etc/issue 记录用户登录前显示的系统版本信息
[root@bogon /]# cat -n /etc/issue
1 CentOS release 6.10 (Final)
2 Kernel \r on an \m

/etc/motd Linux自定义欢迎页面
[root@bogon /]# echo “welcome to use linux” >/etc/motd

/etc/fstab 实现开机要挂载的文件系统的一个文件
fstab 一旦配置错误,会导致服务器无法启动。如何修复?
[root@bogon /]# blkid
/dev/sda1: UUID=“6712e776-5cdf-41c4-86b5-72201dda7419” TYPE=“ext4”
/dev/sda2: UUID=“707224ee-f8e6-4795-a853-c50e064c3981” TYPE=“ext4”
/dev/sda3: UUID=“b2c2957d-ea8c-46f0-837c-9ae1308c97c4” TYPE=“swap”
第一列挂载的设备,可以是设备名或UUID,或磁盘标签
/etc/hosts 设定用户IP与名字(或域名)的对应解析表,相当于本地LAN局域网内的DNS
#类似C: \WIND0WS\ system32\drivers\ etc\hosts,LAN内IP域名解析文件。
开发、测试时做临时的域名解析常用,英文 hosts- The static table lookup for host names。
host的解析在机房的服务器互相调用中也会常用,如门户网站的解析

host企业里的作用:
1、开发,产品,测试人员,用于通过正式的域名和测试产品
2、服务器之间的调用可以用域名(内部DNS),方便迁移
/etc/rc.local
(重要) 用于存放开机自启动程序命令的文件( chkconfig常用来管理yum/rpm安装的程序的服务的开机自启动)。自己开发的程序习惯把启动命令放入etc/rc. local,实现开机启动这些程序, linux开机时会把etc/rc. local里的内容执行一遍
企业里如何用: chkconfig和 /etc/rc.local服务器的档案
/etc/inittab
(较重要) #→设定系统启动时init进程将把系统设置成什么样的 runlevel
运行级别及加载相关的级别对应启动文件设置。linux开机启动流程,比如先加载界面,还是
/etc/init.d
(重要) #→这个目录是用来存放系统或服务器以及 System V模式启动的脚本,这在以 SystenⅤ模式启动或初始化的系统中常见。比如Centos/redhat:
/etc/exports #设定NFS网络文件系统用的配置文件。
/etc/redhat-release #<==包括一行声明Red Hat版本号和名称信息
/etc/group
(一般重要) #<==设定用户的组名与相关信息 chattr+i
/etc/passwd
(重要) #<==账号信息文件
/etc/shadow #<密码文件
/etc/gshadow #→组密码信息文件
/etc/sudoers
(较为重要) #→可以执行使用sudo命令的配置文件(权限提升)visudo类似ⅵ i/etc/ sudoers,不建议ⅵ改,因为没有语法检查。
[root @songls ]visudo -c etc/sudoers:解析正确
/etc/secureity #→设定哪些终端可以让root登录
/etc/login.defs #→所有用户登录时的缺省配置
/etc/modprobe.conf #<
内核模块额外参数设定
/etc/syslog.conf #<日志设置文件 限C5.X
/etc/rsyslog.conf #<
日志设置文件 限 C6.X
2、其他的目录
/lib #→系统会使用到的函数库
/lib/modules #→ kernel的相关模块
/var/lib/rpm #→rpm套件安装处
/usr/bin #→这个目录是可执行程序的目录:当我们从系统自带的软件包安装
个程序时,他的可执行文件大多会放在这个目录。相似的目录是
/lib64 库文件存放目录
/usr/sbin 这个目录也是可执行程序的目录,但大多存放涉及系统管理的命
令:相似目录是sbin或 usr/local/sbin或usrx1IR6sbin等;
/usr/local 这个目录一般是用来存放用户自编译安装软件的存放目录:一般是
通过源码包安装的软件,如果没有特别指定安装目录的话,一般是
安装在这个目录中。相当于:c: Program files
/usr/local/bin 用户安装的小的应用程序,和一些在 lust local F录下大应用程序的
符号连接
/usr/local/sbin 系统全局环境目录,可放置一些不需要加路径执行的脚本等
usr/share 系统共用的东两存放地,比如 usr/share/doc和 /usrshare/man帮助文

/usr/src 内核源码存放目录,比如下面有内核源码目录,比如 linux linux-2xxxx目录等。
1、rpm-ih包名rpn(存在rpm包,又无法使用yum的时候)
2、 yum install包名(下载-rpm-解决软件依赖)-简单方便的方法。
(习惯:线上对外的服务器很少安装 apache, nginx; mysql,功能性软
件会用yum)
3、源码( configure,make, make install)),定制。大中小企业重要
服务
门户:源码-定制RPM包–制作yum仓库-m安装。
/usr/bin 使用者可执行的 binary file的目录

3、var目录下的路径知识
/var 日志文件
/var/log 各种系统日志存放的地方
/var/log/messages 系统信息默认日志文件,非常重要。按周自动轮循
/var/log/message*
还有一个查看日志的命令dmseg,用此命令可以进行系统故障分析
但依赖于rsyglog服务开启
上述轮询日志由/etc/logrotate.conf和/etc/logrotate/syslog控制
/var/log/secure 记录登入系统存取信息的文件,按周自动轮循,例如pop3.sh,telnet,ftp等都会记录在此。系统安全的日志文件。依赖于 rsyglogn服务开启。
/var/log/wtmp 记录登陆者信息的文件last: login records lastlog
/etc/logrotate.cont
#no packages own wtmp and btmp–we’ll rotate them here
var log wtm
ap i
/var/spool 定时任务 crontab默认路径,按用户名命名的文件。
/var/spool/mail 系统用户邮件存放目录
/var/spool/clientmqueue sendmail临时邮件文件目录,有很多原因会导致这个目录碎文件很多,比如crontab定时任务命令不加/dev/null等,工作偶尔因为该目录文件太多,导致/var所在的分区inode数量被消耗尽,无法写入文件的情况,C64不会装sendmail,所以不会出现这个问题。
4、proc下的重要路径知识
/proc 虚拟目录,是内存的映射,内核和进程的虚拟文作系统目录
/proc/version 内核版本
/proc/sys/net/ipv4 [root@C58 x86=cat proc/sys/net/ipv4/tep max_tw_ buckets
36000
[root@songls ipv4] cat /proc/sys/net/ipv4/tcp_tw_ reuse
修改proc的配置时临时生效。
/etc/svsctl.cont内核参数里配置才是永久生效。两个路径的修改效果
是一样的。 net.Ipv4.tcp_tw_reuse=1实际上就是修改配置
root@songls]# tail-1/etc/rc. local
echo 1>/proc/sys/net/ipv4/tcp_tw_reuse
/proc/cpuinfo 关于处理器的信息,如类型、厂家、型号和性能等.
top看cpu,sar
/proc/ meminfo 系统内存信息,free -m
/proc/devices 当前运行内核所配置的所有设备清单
/proc/dma 当前正在使用的DMA通道
/proc/filesystems 当前运行内核所配置的文件系统。
/proc/interrupts 正在使用的中断,和曾经有多少个中断。
/proc/ioports 当前正在使用的IO端口
/proc/ladang 系统负载平均值信息(系统的繁忙情况,比较准确,但是不够细致
系统性能指标), uptime的结果※※※※※,负载值不要超过cPU
的核数。看负载top, uptime。
/proc/mounts 设备的挂载信息,dfh类似。

linux的启动过程

不管是 Windows 还是 Linux 操作系统,底层设备一般均为物理硬件,操作系统启动之前会对硬件进行检测,然后硬盘引导启动操作系统,如下为操作系统启动相关的各个概念:
1、BIOS
基本输入输出系统(Basic Input Output System,BIOS)是一组固化到计算机主板上的
只读内存镜像(Read Only Memory image,ROM)芯片上的程序,它保存着计算机最重要的
基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。主要功能是为计
算机提供最底层的、最直接的硬件设置和控制。
2、MBR
全新硬盘在使用之前必须进行分区格式化,硬盘分区初始化的格式主要由两种,分别是:
MBR 格式和 GPT 格式。
如果使用 MBR 格式,操作系统将创建主引导记录扇区(Main Boot Record,MBR),
MBR 位于整块硬盘的 0 磁道 0 柱面 1 扇区,主要功能是操作系统对磁盘进行读写时,判断分区的合法性以及分区引导信息的定位。
主引导扇区总共为 512 字节,MBR 只占用了其中的 446 个字节,另外的 64 个字节为硬盘分区表 (Disk Partition Table,DPT),最后两个字节“55,AA”是分区的结束标志。
在 MBR 硬盘中,硬盘分区信息直接存储于主引导记录(MBR)中,同时主引导记录还
存储着系统的引导程序,如图 所示:
在这里插入图片描述
MBR 是计算机启动最先执行的硬盘上的程序,只有 512 字节大小,所以不能载入操作
系统的核心,只能先载入一个可以载入计算机核心的程序,我们称之为引导程序。
因为 MBR 分区标准决定了 MBR 只支持在 2TB 以下的硬盘,对于后面的多余空间只能
浪费。为了支持能使用大于 2T 硬盘空间,微软和英特尔公司在可扩展固件接口(Extensible
Firmware Interface,EFI)方案中开发了全局唯一的标识符(Globally unique identifier,GUID),
进而全面支持大于 2T 硬盘空间在企业中使用
3、GPT
全局唯一的标识符(Globally unique identifier,GUID),正逐渐取代 MBR 成为新标准。
它和统一的可扩展固件接口 (Unified Extensible Firmware Interface,UEFI)相辅相成。
UEFI 用于取代老旧的 BIOS,而 GPT 则取代老旧的 MBR。之所以称为“GUID 分区表”,是
因为驱动器上的每个分区都有一个全局唯一的标识符。
在 GPT 硬盘中,分区表的位置信息储存在 GPT 头中。出于兼容性考虑,第一个扇区同
样有一个与 MBR 类似的标记,叫做受保护的主引导记录(Protected Main Boot Record,
PMBR)。
PMBR 的作用是当使用不支持 GPT 的分区工具时,整个硬盘将显示为一个受保护的分
区,以防止分区表及硬盘数据遭到破坏,而其中存储的内容和 MBR 一样,之后才是 GPT
头。GPT 优点支持 2T 以上磁盘,如果使用 Fdisk 分区,最大只能建立 2TB 大小的分区,创建大于 2TB 的分区,需使用 parted,同时必须使用 64 位操作系统,Mac、Linux 系统都能支持 GPT 分区格式,Windows 7/8 64bit、Windows Server 2008 64bit 支持 GPT。
如图所示:在这里插入图片描述
4、GRUB
GNU 项目的多操作系统启动程序(GRand Unified Bootloader,GRUB),可以支持多操
作系统的引导,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择
希望运行的操作系统。
GRUB 可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。它
是一个多重操作系统启动管理器。用来引导不同系统,如 Windows,Linux。Linux 常见的
引导程序包括:LILO、GRUB、GRUB2,CentOS 7 Linux 默认使用 GRUB2 引导程序,引导
系统启动。
GRUB2 是基于 GRUB 开发成更加安全强大的多系统引导程序,最新 Linux 发行版都是
使用 GRUB2 作为引导程序。同时 GRUB2 采用了模块化设计,使得 GRUB2 核心更加精炼,
使用更加灵活,同时也就不需要像 GRUB 分为 stage1,stage1.5,stage2 三个阶段
4、系统启动流程
对于Linux 操作系统启动流程的理解,能有助于后期在企业中更好的维护 Linux 服务器,能快速定位系统问题,进而解决问题。

在这里插入图片描述
(1) 加载 BIOS
计算机电源加电质检,首先加载基本输入输出系统(Basic Input Output System,BIOS),
BIOS 中包含硬件 CPU、内存、硬盘等相关信息,包含设备启动顺序信息、硬盘信息、内存
信息、时钟信息、即插即用(Plug-and-Play,PNP)特性等。加载完 BIOS 信息,计算机将
根据顺序进行启动。
(2) 读取 MBR
读取完 BIOS 信息,计算机将会查找 BIOS 所指定的硬盘 MBR 引导扇区,将其内容复
制到 0x7c00 地址所在的物理内存中。被复制到物理内存的内容是 Boot Loader,然后进行引导
(3) GRUB 引导
GRUB 启动引导器是计算机启动过程中运行的第一个软件程序,当计算机读取内存中的
GRUB 配置信息后,会根据其配置信息来启动硬盘中不同的操作系统。
(4) 加载 Kernel
计算机读取内存映像,并进行解压缩操作,屏幕一般会输出“Uncompressing Linux”的提
示,当解压缩内核完成后,屏幕输出“OK, booting the kernel”。系统将解压后的内核放置在内存之中,并调用 start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成
Linux 核心环境的建立
(5) 设定 Inittab 运行等级
内核加载完毕,会启动 Linux 操作系统第一个守护进程 init,然后通过该进程读取
/etc/inittab 文件,/etc/inittab 文件的作用是设定 Linux 的运行等级,Linux 常见运行级别如下:
 0:关机模式;
 1:单用户模式;
2:无网络支持的多用户模式;
 3:字符界面多用户模式;
 4:保留,未使用模式;
 5:图像界面多用户模式;
 6:重新引导系统,重启模式
(6) 加载 rc.sysinit
读取完运行级别,Linux 系统执行的第一个用户层文件/etc/rc.d/rc.sysinit,该文件功能包
括:设定 PATH 运行变量、设定网络配置、启动 swap 分区、设定/proc、系统函数、配置 Selinux等。
(7) 加载内核模块
读取/etc/modules.conf 文件及/etc/modules.d 目录下的文件来加载系统内核模块。该模块
文件,可以后期添加或者修改及删除。
(8) 启动运行级别程序
根据之前读取的运行级别,操作系统会运行 rc0.d 到 rc6.d 中的相应的脚本程序,来完成
相应的初始化工作和启动相应的服务。其中以 S 开头表示系统即将启动的程序,如果以 K
开头,则代表停止该服务。S 和 K 后紧跟的数字为启动顺序编号。如图
在这里插入图片描述
(9) 读取 rc.local 文件
操作系统启动完相应服务之后,会读取执行/etc/rc.d/rc.local 文件,可以将需要开机启动
的任务加入到该文件末尾,系统会逐行去执行并启动相应命令。如图
在这里插入图片描述
(10) 执行/bin/login 程序
执行/bin/login 程序,启动到系统登录界面,操作系统等待用户输入用户名和密码,即
可登录到 Shell 终端,如图 3-7 所示,输入用户名、密码即可登录 Linux 操作系统,至此 Linux操作系统完整流程启动完毕。
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值