Linux启动过程详解_第1页
Linux启动过程详解_第2页
Linux启动过程详解_第3页
Linux启动过程详解_第4页
Linux启动过程详解_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

深入浅出 深入浅出 Linux 的启动流程刨析的启动流程刨析 Linux 的启动过程 是一个 Linuxer 必须要熟练掌握的 通过系统的启动过程 可以 更深入的理解 Linux 假如 Linux 系统出问题的话 可以通过启动过程来分析原因 解决问 题 而且 在掌握了 Linux 的启动流程后 还可以借助宿主机来打造自己的 Linux 下面是我画的一张简单的 Linux 启动流程图 在了解启动流程之前 我们应该先知道系统的几个重要脚本和配置文件 他们对应的 路径为 1 sbin init 2 etc inittab 3 etc rc d rc sysinit 4 etc rc d rcN d 这是几个文件夹 N 代表数字1 2 3 4 5 etc fstab 1 关于 关于 sbin init 与与 etc inittab 关于 sbin init 它是一个二进制可执行文件 为系统的初始化程序 而 etc inittab 是 它的配置文件 我们可以通过 etc inittab 来一睹 它的功能 里面的内容是一种固定的文 本格式 id runlevels action process 我们来通过它的内容来学习学习它之前 先了解写运行级别的分类 0 6 0 关机 half 1 单用户模式 singel user 2 多用户模式 multi user 不提供 nfs 服务 without nfs 3 完全多用户字符模式 full multiuser text mod 4 系统预留 officially undefined 5 图形登录界面 graphical login 6 重启 reboot id 3 initdefault 这里定义 linux 的启动时的运行级别 可以看到 我的主机的启动级别是3 System initialization si sysinit etc rc d rc sysinit 紧接着 运行系统第一个脚本 etc rc d rc sysinit 它的 action sysyinit 指的是定义系统初始化 过程 l0 0 wait etc rc d rc 0 l1 1 wait etc rc d rc 1 l2 2 wait etc rc d rc 2 然后就是加载服务了 他们被定义在 etc rc d rcN d l3 3 wait etc rc d rc 3 action waite 这个进程在在对应级别启动一次 知道它结 束为止 我的系统启动级别为3 所有执行 rc 3对应的服务 l4 4 wait etc rc d rc 4 l5 5 wait etc rc d rc 5 l6 6 wait etc rc d rc 6 ca ctrlaltdel sbin shutdown t3 r now 这里定义了一个组合快捷键 熟悉吧 没错就是重启 你可以把它注释掉不用 pf powerfail sbin shutdown f h 2 Power Failure System Shutting Down 这里定义了 ups 电源 powerfail 指的是如果突然断电 它对应的 process 命令是 提 示用户系统电源失效 将要关机 提醒用户把数据都存储好 pr 12345 powerokwait sbin shutdown c Power Restored Shutdown Cancelled 这里的 action powerokwaite 指的是系统恢复供电 关机取消 1 2345 respawn sbin mingetty tty1 开启终端 在系统准备工作做好后 就会启动出6个终端 tty1 6 mingetyy 就是终端的执行命令 2 2345 respawn sbin mingetty tty2 可以看到他们对应的级别是2345 你也可以注释 掉几个 这样启动后 就会开启你指定个数的终端 3 2345 respawn sbin mingetty tty3 这里的动作 respawn 意思是如果用户关闭 那么这个进程会立刻再次执行 4 2345 respawn sbin mingetty tty4 5 2345 respawn sbin mingetty tty5 6 2345 respawn sbin mingetty tty6 x 5 respawn etc X11 prefdm nodaemon 当一切准备完毕 就会运行守护进程 它是不分运行级别的 同样也是 respawn 2 关于 关于 etc rc d rc sysyinit 和和 etc rc d rc Nd 在 inittab 文件中 我们了解到 rc sysinit 是系统运行的第一个脚本 那么它的作用都 有哪些呢 如果有 shell 脚本基础的话可以用 vim 打开这个文件来看看 它有900多行 是 linux 里最牛的脚本 总结下它的作用 有如下几点 一定要牢记 必要时我们要重写它 1 激活 udev 和 selinux 2 通过读取 etc sysct1 conf 来设置内核参数 3 设置系统时钟 4 设置键盘映射 5 启动交换分区 6 设置主机名 7 检查跟文件系统 并且如果没有错误 以读写的方式来重新挂载文件系统 重要 8 激活 raid 和 lvm 设备 9 启动磁盘限额 10 挂载其他 etc fstab 里定义的尚未被挂载的设备 11 清理过时的文件锁和 PID 文件 12 启动服务 etc rc d rcN d etc rc d rcN d 是一个存放了系统启动是加载的服务的文件夹 通过 inittab 我们知 道了 它的编号对应相应的启动运行级别 需要说明的是 它里面的文件 以我的为例 以 K 开头的代表 stop 以 S 开头的代表 启动 start 数字越小 有限级别越高 root server69 rc d cd rc3 d root server69 rc3 d ls K01dnsmasq K74nscd S08ip6tables S25bluetooth S85gpm K02avahi dnsconfd K85mdmpd S08iptables S25netfs S90crond K02NetworkManager K87multipathd S08mcstrans S25pcscd S90 xfs K05conman K88wpa supplicant S10network S26acpid S95anacron K05saslauthd K89dund S11auditd S26apmd S95atd K10psacct K89netplugd S12restorecond S26haldaemon S97rhnsd K20nfs K89pand S12syslog S26hidd S97yum updatesd K24irda K89rdisc S13irqbalance S28autofs S98avahi daemon K35vncserver K99readahead later S13portmap S50hplip S99firstboot K35winbind S00microcode ctl S14nfslock S55sshd S99local K50ibmasm S02lvm2 monitor S15mdmonitor S56cups S99smartd K50netconsole S04readahead early S18rpcidmapd S56rawdevices K69rpcsvcgssd S05kudzu S19rpcgssd S58ntpd K73ypbind S06cpuspeed S22messagebus S80sendmail 3 etc fstab 文件文件 它定义了系统初始化挂载的设备 对系统的启动至关重要 rc sysinit 通过读取它来实 现系统分区的挂载 它的内容如何呢 我们一起来看下 要挂载的设备 挂载点 文件系统类型 挂载选项 转储频率 文件自检次序 dev sda2 ext3 defaults 0 0 dev sda1 boot ext3 defaults 0 0 sysfs sys sysfs defaults 0 0 proc proc proc defaults 0 0 我截取了我截取了4个系统启动时必须挂载的设备个系统启动时必须挂载的设备 根文件目录 由它你才可以进入 linux 的世界 它在 dev sda2里 boot 启动目录 在 下 里面有 grub initrd 和系统内核 它在 dev sda1 sysfs 一个虚拟的文件系统 产生包含所有硬件层次视图 和 proc 类似 proc 这是一个虚拟的目录 它映射内存里的信息对应进程信息 也就是说它对应的是 内存而不是硬盘 好了 了解了这些文件和目录的作用 我们在回过头来看那张流程图 1 Linux 开机从 POST 加电自检开始 当自检完成 读取第一个硬盘的第0个磁头里 的前446个字节 运行里面的 bootloader Linux 一般用的是 grub 2 通过 grub 传递参数给内核 初始化加载内核过程 内核调用 initrd 小型内存文件 系统 五脏俱全 是一个微型 Linux 通过 initrd 以只读方式挂载根文件系统 3 当根文件系统被挂载后 就会读取并运行 sbin init 来进行初始化工作 这个时候我 们刚才讲的几个文件就派上用场了 4 按次序依

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论