菜鸟学Linux 第033篇笔记 bootloader,inittab

Linux 系统自启动流程

PC OS (Linux)

POST-->BIOS(Boot Sequence)-->MBR(bootloader,446byte),GPT-->Kernel

-->initrd-->ROOTFS /sbin/init(/etc/inittab)

运行级别 (启动的服务不同)

运行级别:0-6

0 halt

1 single user mode 直接以管理员身份切入 s,S,single

2 multi user mode, no NFS

3 multi user mode, text mode

4 reserved

5 multi user mode, graphic mode

6 reboot

详解启动过程

bootloader(MBR)

LILO LInux LOader(早期,适合嵌入式系统)

GRUB GRand Unified Bootloader

stage1 MBR

stage1_5 识别文件系统

stage2 /boot/grub/

bootloader 有446字节最多

/etc/grub.conf 文件格式

default=0 默认启动title

timeout=5 等待用户选择的超时时长

splashp_w_picpath= 背景图片

hiddenmenu 隐藏菜单

password myroot

password --md5 此处为进入编辑grub时输入密码

title 内核标题,或操作系统名称字符串,可自由修改

root (hd0,0) 内核文件所在的设备:对grub而言,所有类型硬盘一律hd

第一个0 表示第几个磁盘,第二个对应硬盘分区

kernel 内核路径和传递给内核的参数 /proc/cmdline

initrd ramdisk文件路径

password --md5 放在此处则进入内核需要输入密码

内核设计风格

RedHat, SUSE

核心 动态加载 内核模块

内核 /lib/modules/"内核版本号命名的目录"/

vmlinuz-2.6.32

/lib/modules/2.6.32/

RedHat5 ramdisk-->initrd

RedHat6 ramfs-->initramfs

单内核 Linux (LWP)

核心 KO (kernel object)

微内核 windows Solaris(多线程)

Jail

chroot (run command or interactive shell with special root directory)

chroot /test/vrroot or /test/vrrot/bin/bash

ldd /path/Binary_file 显示二进制文件所依赖的共享库

Command

yum install gimp 一个图形编辑软件

使用Xshell远程软件可以启动远程的图形界面gimp &

grub-md5-crypt 使用md5给生成grub密文

runlevel Print previous and current SysV runlevel

who -r display runlevel

uname ( print system information)

-r, --kernel-release

print the kernel release

dd if=/dev/zero of=/dev/sda count=1 bs=400 破坏硬盘的bootloader

修复grub

第一种:

#grub

grub>root (hd0,0)

grub> set (hd0)

第二种:

#grub-install --root-directory=/path/boot's parent /dev/hda

给其它硬盘安装grub

1.将硬盘格式化好之后,挂载到一个以/mnt/boot目录下该硬盘的你目录必须是boot

2.使用命令grub-install --root-directory=/mnt /dev/sd(a,b,c...)

前边的root-directory 必须选用boot的父目录

3.完成后会在该硬盘下生成一个grub的文件夹,打开后里边有文件

4.手动生成一个grub.conf配置文件在grub目录下vim /mnt/boot/grub/grub.conf

编辑该配置文件

default=0

timeout=5

title mylinux(name)

root (hd0,0)

kernel /vmlinuz-2.6.18-308.el5

initrd /initrd-2.6.18-308.el5.img

注意以上两个的版本是一样的,,这样grub就制作完成了

如果grub.conf配置文件丢失,系统启动时会进入grub模式,只要知道内核在哪里就可以启动

如果硬盘多可以在grub模式下输入find (hd0,0)/按Tab来查看此硬盘下所有的内核文件

查找到后执行

grub> root (hd#,#)

grub> kernel /vmlinuz-2.6.18-308.el5

grub> initrd /initrd-2.6.18-308.el5.img

grub> boot

即可启动该Linux系统#号表示要对应具体的第几块硬盘,第几个分区

Kernel初始化的过程:

1、设备探测

2、驱动初始化(可能会从initrd (initramfs)文件中装载驱动模块)

3、以只读挂载根文件系统

4、装载第一个进程init (PID:1)

/sbin/init: (/etc/inittab) (古老)

RedHat6 upstart ubuntu, d-bus, event-driven

systemd 并行

/etc/inittab文件下的定义

# Default runlevel. The runlevels used by RHS are:

id:5:initdefault: 格式含义

id 标识符

runlevels 在哪个级别运行此行

action 在什么情况下执行此行

initdefault 设定默认运行级别

sysinit 系统初始化

wait 等待级别切换至此级别时执行

respawn 一旦程序终止,会重新启动该程序

process 要运行程序

# System initialization.

si::sysinit:/etc/rc.d/rc.sysinit

/etc/rc.d/rc.sysinit完成的任务

1、激活udev和selinux

2、根据/etc/sysctl.conf文件,来设定内核参数

3、设定时钟

4、装载键盘映射

5、启用交换分区

6、设置主机名

7、根文件系统检测,并在没有错误之后,以读写方式重新挂载

8、激活RAID和LVM设备

9、启用磁盘配额

10、根据/etc/fstab,检查并其它文件系统

11、清理过期的锁和PID文件

/etc/rc.d/init.d /etc/init.d

服务类脚本

start

stop

SysV: /etc/rc.d/init.d

start|stop|restart|status

reload|configtest

脚本中的

# chkconfig: 345 26 74

第一组 runlevels

第二SS   start 优先次序

第三KK kill 次序

当chkconfig命令来为此脚本在rc#.d目录创建链接时,

runlevels表示默认创建为S*开头的链接如果为-则表示所有级别,

除此之外的级别默认创建为K*开关的链接

S后面的启动优先级为SS所表示的数字,K后面的优级为KK所表示的数字

# description:

用于说明此脚本的简单功能\,续行

chkconfig命令 updates and queries runlevel information for system services

--list 列出所有独立守护服务的启动设定

先将服务脚本cp到/etc/rc.d/init.d/目录下

chkconfig --add SERVICE_NAME 添加服务链接到/etc/rc.d/rc#.d目录下

chkconfig --add SERVICE_NAME 删除/etc/rc.d/rc#.d目录下的服务链接

chkconfig --level RUNLEVEL SERVICE_NAME {on|off}

如果省略级别指定,默认为2345级别

/etc/rc.local /etc/rc.d/rc.local

系统最后启动的一个服务,准确说,应该执行的最后一个脚本

# Run gettys in standard runlevels

1:2345:respawn:/sbin/mingetty tty1

启动终端

/etc/inittab的任务

1.设定默认运行级别

2.运行系统初始化脚本

3.运行指定运行级别对应的目录下的脚本

4.设定Ctrl+Alt+Del组合键的操作

5.定义UPS电源在电源故障、恢复时执行的操作

6.启动虚拟终端(2345)

7.启动图形终端(5)

守护进程的类型

独立守护进程xinetd默认可能未安装,需自行安装 yum install xinetd

xinetd 超级守护进程代理人 需要关联至运行级别

瞬时守护进程:不需要关联至运行级别

转载于:https://blog.51cto.com/winthcloud/1877226

菜鸟学Linux 第033篇笔记 bootloader,inittab相关推荐

  1. windows pxe 安装linux,菜鸟学Linux 第103篇笔记 pxe自动化安装linux

    菜鸟学Linux 第103篇笔记 pxe自动化安装linux 内容总览 linux的系统安装 kickstart文件的组成部分 DHCP (Dynamic Host Configuration Pro ...

  2. 菜鸟学Linux 第034篇笔记 vmlinuz, initrd, modules, script

    菜鸟学Linux 第034篇笔记  vmlinuz, initrd, modules, script 内核两部分 核心 /boot/vmlinuz-version 内核模块 /lib/modules/ ...

  3. 菜鸟学Linux 第044篇笔记 算法和私有CA

    菜鸟学Linux 第044篇笔记 算法和私有CA 证书吊销列表CRL(Certificate Revocation List ) 如何解决私钥丢失 PKI: Public Key Infrastruc ...

  4. 菜鸟学Linux 第050篇笔记 dhcp

    菜鸟学Linux 第050篇笔记 dhcp DHCP (Dynamic Host Configuration Protocol) 早期bootp (boot protocol) lease Clien ...

  5. 菜鸟学Linux 第090篇笔记 corosync+drbd+mysql

    菜鸟学Linux 第090篇笔记 corosync+drbd+mysql 内容总览 上节回顾 DRBD (Distributed Replicated Block Device) 分布式复制块设备 配 ...

  6. 菜鸟学Linux 第052篇笔记 httpd-install and section2

    菜鸟学Linux 第052篇笔记  httpd-install and section2 apache 17years NCSA, httpd A Patchey Server = Apache FS ...

  7. Linux 日志 klogd,菜鸟学Linux 第038篇笔记 日志系统 syslogd,klogd

    菜鸟学Linux 第038篇笔记 日志系统 syslogd,klogd Linux上的日志系统 syslog开源 syslog-ng  商业版 日志系统 syslog syslog 服务 syslog ...

  8. 菜鸟学Linux 第031篇笔记 script,控制,while,function

    菜鸟学Linux 第031篇笔记 script,控制,while,function 一.脚本需求: 说明:此脚本能于同一个repo文件中创建之个yum源的指向: 1.接受一个文件名作为参数,此文件存放 ...

  9. 菜鸟学Linux 第093篇笔记 keepalived

    菜鸟学Linux 第093篇笔记 keepalived 内容总览 keepalived介绍 配置keepalived的ipvs功能 keepalived的几个问题解决方法 keepalived 它可以 ...

最新文章

  1. Java学习总结:45(字符编码)
  2. c语言错误2015,C语言2015(回答).doc
  3. 鸿蒙比不了IOS,比苹果的iOS14还流畅,华为鸿蒙2.0可以啊!
  4. 开发板接传感器蜂鸣器不断_迅为IMX6ULL终结技开发板初体验
  5. 【每日一题】7月1日题目精讲 借教室
  6. MDL锁导致mysql夯住_MySQL MetaData Lock 案例分享
  7. webservice使用EF生成的model序列化问题
  8. quick-cocos2d-x 游戏开发——StateMachine 状态机
  9. 刘强东震怒:疑不满内部拉帮结派人浮于事!
  10. 获取应用名字、版本号
  11. Alexa技能开发从创建到发布
  12. 数据结构与算法 入门 与 排序
  13. 利用python进行显著性分析
  14. Linux下conda安装caffe(超简单),pb转caffe
  15. Linux系统如何PING地址,Linux下指定源ip进行ping操作的方法
  16. 计算机毕业设计基于VC的中小企业人事管理系
  17. spss分组统计的方法
  18. 火车头分页post php,轻松搞定PHPCMS V9火车头采集自动分页
  19. 优秀文章及学习网站之收集手册
  20. MBA案例分析(人员培训三)

热门文章

  1. JVM调优总结(2):一些概念(下)
  2. django安装--mac系统
  3. 我在这里,等你的故事【小废回家看看】
  4. Linux下Apache虚拟主机配置
  5. 程序员在囧途之软件投标实战
  6. 检测你的机子上装了什么版本的.net framework
  7. Opera在本博客的发文方法,fedora8下
  8. mysql刷新权限1146_MySQL重置root密码,刷新权限表报错ERROR 1146(42S02):Table ‘mysql.servers’ doesn`t exist...
  9. 【转载】DL图片预处理
  10. C 判断 —— if...else 语句(bool变量、float变量、指针变量与“零值”进行比较)(else 到底与哪个 if 配对呢? if 语句后面的分号?)