Centos6系统启动流程

1. post  加电自检  检查硬件环境

2. 选择一个硬件类型引导启动           mbr 446字节   grub  stage1

3. 加载boot分区的文件系统驱动  挂在/boot目录      grub  stage1.5

4. 读取 /boot/grub/grub.conf   加载内核启动菜单     grub  stage2

5. 加载vmlinuz内核  通过内核加载操作系统的 /  需要/boot/initramfs.img配合来加载根分区文件系统的驱动

6. 启动操作系统根下的第一个进程 /sbin/init

7. 通过启动第一个进程运行  rc.sysinit(系统初始化)脚本

8. 读取 /etc/inittab 配置文件,设置系统启动级别

各个启动级别的区别本质上就是在操作系统启动的时候设置哪些服务需要启动,哪些服务不需要启动.(不同服务的各种组合)

9.运行 /etc/rc[0-6].d/[S,K]的脚本 ---->    link      /etc/init.d/

10.运行 /etc/rc.local

11.显示登录界面

实验1:Boot目录下的文件全部被删除

1.启动故障现象:

2.重启系统的时候按F2,设置从光盘引导,进入救援模式

3.启动救援系统后开启一个shell窗口

1. chroot  /mnt/sysimage  &&  mkdir /mnt/cdrom

2. mount /dev/sr0  /mnt/cdrom

方法2:  rpm -ivh  /mnt/cdrom/Packages/kernel-2.6.32-el6.x86_46.rpm    --root=/mnt/sysimage/   --force

这条命令会在/boot目录下自动生成内核文件和伪文件系统

然后执行grub-install /dev/sda   和创建  grub.conf 文件即可

3.cp  /mnt/cdrom/isolinux/vmlinuz    /boot

4. cd /boot && mkinitrd initramfs.img `uname -r`

5.grub-install /dev/sda

6.cd /grub    &&    创建一个grub.conf配置文件

在grub文件夹中/表示的是boot目录所在的分区,不是指操作系统的根分区.

7.exit     退出切根状态

8.exit     退出shell窗口

9.选择重启系统

10.出现如下菜单

结论:boot目录下的内核和伪根系统的文件名称可以不用加版本号,grub-install /dev/sda 不能生成grub.conf

文件,这个文件必须手动创建

实现2:同时删除boot目录和etc/fstab文件

现象:进入救援模式后会出现无法挂载操作系统的/到/mnt/sysimage目录上

1.fdisk -l  查看分区的详细信息

2.手动挂载每个分区,查看分区里的数据,直到找到系统根所在的分区

3.修复根分区中的/etc/fstab配置文件

4.重启系统并重新进入救援模式,使救援系统能自动挂载根分区

5.修复boot目录

实验3:/sbin/init文件被损坏

故障现象:

进入救援模式系统

1. mkdir /mnt/cdrom

2. mount /dev/sr0  /mnt/cdrom

3.rpm2cpio /mnt/cdrom/Packages/upstart-0.3.el6.x86_64.rpm | cpio -idv ./sbin/init       解压到当前目录

4.cp  ./sbin/init     /mnt/sysimage/sbin

5.exit

6.reboot

实验4:后台服务启动异常

把启动模式切换到单用户模式,然后再去修改对应的服务脚本

实验5:自定制Linux系统

1.给一块新磁盘分区                    fdisk  至少要分两个区

2.给新创建的分区创建文件系统  mkfs.ext4    /dev/sdb1

3.挂载boot

mkdir     /mnt/boot       子目录必须为boot

mount   /dev/sdb1      /mnt/boot

4.安装grub

grub-install  --root-directory=/mnt /dev/sdb

5.复制内核和initramfs文件

cp /boot/vmlinuz-2.6.32-642.el6.x86_64             /mnt/boot/

cp /boot/initramfs-2.6.32-642.el6.x86_64.img     /mnt/boot

6.创建grub.conf 写入内核菜单信息

vim /mnt/boot/grub.conf

title yxhlinux

root (hd0,0)

kernel /vmlinuz-2.6.32-642.el6.x86_64 root=/dev/sda2

selinux=0

init=/bin/bash

initrd /initramfs-2.6.32-642.el6.x86_64.img

7.创建一级目录

mkdir /mnt/sysroot  mount  /dev/sdb2   /mnt/sysroot

mkdir –pv /mnt/sysroot/{etc,lib,lib64,bin,sbin,tmp,var,usr,sys,proc,opt,home,root,boot, dev,mnt,media}

复制bash和相关库文件

复制相关命令及相关库文件    如:ifconfig,insmod,ping,mount,ls,cat,df,lsblk,blkid等

实验6:内核编译

内核组成部分:

kernel: 内核核心,一般为bzImage,通常在/boot目录下,名称为 vmlinuz-VERSION-RELEASE

kernel object: 内核对象,一般放置于   /lib/modules/VERSION-RELEASE/  [ ]: N  [M]: M  [*]: Y

辅助文件:ramdisk   initrd   initramfs

实验7:逻辑卷启动配置文件损坏

1.重启进入救援模式

2.逻辑卷不能像分区那样直接挂载  救援模式无法自动激活逻辑卷,所有的逻辑卷处于非活动状态.

3.  lvdisplay              查看当前系统上的逻辑卷详情

4.  vgchange -ay      激活所有的逻辑卷

5.  mount /dev/VolGroup/lv_root /mnt/rootfs       逻辑卷只有被激活后才能被成功挂载

6. 修复/mnt/rootfs目录下的相关配置文件

centos7 Systemd 介绍

POST > Boot Sequence  >  Bootloader > kernel + initramfs > rootfs   > /sbin/init

POST > Boot Sequence  >  Bootloader > kernel + initramfs > rootfs  这些和centos6启动方式一致

/sbin/init 在centos7上做了一个软链接  把/sbin/init  指向了 systemd

之所以系统启动后第一个进程的名字必须为/sbin/init  是因为在内核源码中编写成固定的字符串了

systemd新特性:

系统引导时候实现服务并行启动

按需启动守护进程

自动化的服务依赖关系管理

同时采用socket式与D-Bus总线式激活服务

系统状态快照

Linux系统启动排错实验集合的更多相关文章

  1. Linux系统日志清除实验

    实验目的 1.了解Linux日志的作用. 2.掌握删除Linux日志的方法. 实验原理 所谓日志(Log)是指系统所指定对象的某些操作和其操作结果按时间有序的集合.每个日志文件由日志记录组成,每条日志 ...

  2. Linux学习之CentOS(二十一)--Linux系统启动详解

      在这篇随笔里面将对Linux系统的启动进行一个详细的解释!我的实验机器是CentOS6.4,当然对于现有的Linux发行版本,其系统的启动基本上都是一样的! 首先我们来看下Linux系统启动的几个 ...

  3. 为什么要有uboot?带你全面分析嵌入式linux系统启动过程中uboot的作用

    1.为什么要有uboot 1.1.计算机系统的主要部件 (1)计算机系统就是以CPU为核心来运行的系统.典型的计算机系统有:PC机(台式机+笔记本).嵌入式设备(手机.平板电脑.游戏机).单片机(家用 ...

  4. linux基础-附件1 linux系统启动流程

    附件1 linux系统启动流程 最初始阶段当我们打开计算机电源,计算机会自动从主板的BIOS(Basic Input/Output System)读取其中所存储的程序.这一程序通常知道一些直接连接在主 ...

  5. Linux系统启动过程分析

    [原创]Linux系统启动过程分析-wjlkoorey258-ChinaUnix博客http://blog.chinaunix.net/uid-23069658-id-3142047.html 经过对 ...

  6. Linux系统启动流程及安装命令行版本

    Debian安装 之前也安装过很多次linux不同版本的系统,但安装后都是直接带有桌面开发环境的版本,直接可以使用,正好最近项目不是很忙,想一直了解下Linux的整个启动流程,以及如何从命令行模式系统 ...

  7. 【转】Linux系统启动过程分析

    [转]Linux系统启动过程分析 转自:http://blog.chinaunix.net/uid-23069658-id-3142047.html 经过对Linux系统有了一定了解和熟悉后,想对其更 ...

  8. 【转载】Linux系统启动流程

    原文:Linux系统启动流程 POST(Power On Self Test/上电自检)-->BootLoader(MBR)-->Kernel(硬件探测.加载驱动.挂载根文件系统./sbi ...

  9. linux 系统启动流程

    原著资料网址:http://wenku.baidu.com/view/414127fdf705cc1755270997.html (版权归原作者所有) Linux系统的启动分5个阶段,每个阶段都完成不 ...

随机推荐

  1. 大杂烩 -- Iterator 并发修改异常ConcurrentModificationException

    基础大杂烩 -- 目录 大杂烩 -- Java中Iterator的fast-fail分析 大杂烩 -- Iterator 和 Iterable 区别和联系 问题: 在集合中,判断里面有没有" ...

  2. iOS shell脚本打包

    原文链接:http://www.jianshu.com/p/5abbe0d61cef 参考链接:http://blog.csdn.net/potato512/article/details/52176 ...

  3. Spring task定时任务执行一段时间后莫名其妙停止的问题

    前因: 我写了一个小项目,主要功能是用Spring task定时任务每天定时给用户发送邮件.执行了几个月一直没有问题,前几天,莫名其妙的突然不再发送邮件了. 只好花费一些时间来查看到底是什么原因造成的 ...

  4. css - 兼容适配坑点总结(。。。)

    1. transform为代表的这些css3属性一定要写-webkit-,不然低版本(目前遇到的是8)的苹果,不支持. 2. x的适配 /* x */ @media only screen and ( ...

  5. B - Hamburgers

    Polycarpus loves hamburgers very much. He especially adores the hamburgers he makes with his own han ...

  6. Redis一次数据丢失

    一台Redis服务器,4核,16G内存且没有任何硬件上的问题.持续高压运行了大约3个月,保存了大约14G的数据,设置了比较完备的Save参数.而就是这台主机,在一次重起之后,丢失了大量的数据,14G的 ...

  7. N!

    求N! Problem Description Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! Input One N ...

  8. db2 Reorgchk:重组检查,是否需要重组

    Reorgchk:重组检查,是否需要重组.判断表或索引是否需要重组,有2种方法:1.通过reorgchk工具  reorgchk工具利用8个公式(3个表公式,5个索引公式),如果表统计结果F1,F2或 ...

  9. java基础解析系列(二)---Integer

    java基础解析系列(二)---Integer 前言:本系列的主题是平时容易疏忽的知识点,只有基础扎实,在编码的时候才能更注重规范和性能,在出现bug的时候,才能处理更加从容. 目录 java基础解析 ...

  10. Codeforces 835C - Star sky - [二维前缀和]

    题目链接:http://codeforces.com/problemset/problem/835/C 题意: 在天空上划定一个直角坐标系,有 $n$ 颗星星,每颗星星都有坐标 $(x_i,y_i)$ ...