Linux系统启动排错实验集合
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系统启动排错实验集合的更多相关文章
- Linux系统日志清除实验
实验目的 1.了解Linux日志的作用. 2.掌握删除Linux日志的方法. 实验原理 所谓日志(Log)是指系统所指定对象的某些操作和其操作结果按时间有序的集合.每个日志文件由日志记录组成,每条日志 ...
- Linux学习之CentOS(二十一)--Linux系统启动详解
在这篇随笔里面将对Linux系统的启动进行一个详细的解释!我的实验机器是CentOS6.4,当然对于现有的Linux发行版本,其系统的启动基本上都是一样的! 首先我们来看下Linux系统启动的几个 ...
- 为什么要有uboot?带你全面分析嵌入式linux系统启动过程中uboot的作用
1.为什么要有uboot 1.1.计算机系统的主要部件 (1)计算机系统就是以CPU为核心来运行的系统.典型的计算机系统有:PC机(台式机+笔记本).嵌入式设备(手机.平板电脑.游戏机).单片机(家用 ...
- linux基础-附件1 linux系统启动流程
附件1 linux系统启动流程 最初始阶段当我们打开计算机电源,计算机会自动从主板的BIOS(Basic Input/Output System)读取其中所存储的程序.这一程序通常知道一些直接连接在主 ...
- Linux系统启动过程分析
[原创]Linux系统启动过程分析-wjlkoorey258-ChinaUnix博客http://blog.chinaunix.net/uid-23069658-id-3142047.html 经过对 ...
- Linux系统启动流程及安装命令行版本
Debian安装 之前也安装过很多次linux不同版本的系统,但安装后都是直接带有桌面开发环境的版本,直接可以使用,正好最近项目不是很忙,想一直了解下Linux的整个启动流程,以及如何从命令行模式系统 ...
- 【转】Linux系统启动过程分析
[转]Linux系统启动过程分析 转自:http://blog.chinaunix.net/uid-23069658-id-3142047.html 经过对Linux系统有了一定了解和熟悉后,想对其更 ...
- 【转载】Linux系统启动流程
原文:Linux系统启动流程 POST(Power On Self Test/上电自检)-->BootLoader(MBR)-->Kernel(硬件探测.加载驱动.挂载根文件系统./sbi ...
- linux 系统启动流程
原著资料网址:http://wenku.baidu.com/view/414127fdf705cc1755270997.html (版权归原作者所有) Linux系统的启动分5个阶段,每个阶段都完成不 ...
随机推荐
- 【hadoop】 hdfs shell 命令交互
1.put 本地文件上传至hdfs中 2. cat 查看内容 3. 删除文件,文件夹 4. ls 5. copyFromLocal 复制本地文件到HDFS , copyToLocal hdfs 复制到 ...
- rtmp简要流程
- 关于ie6出现的问题的原因归结
关于ie6出现的问题主要可以归结为以下几种情况把. 当然还存在各种原因,bug的情况也还有各种各样,我只是小结一下我自己经常遇到,比较有代表性的问题.会持续的更新. 1.浏览器本身存在的缺陷 比如: ...
- Python变量访问权限控制
oop1.py文件代码 # user/bin/python class Foo: def bar(self): print('ok') def hello(self, name): print(&qu ...
- AngularJS基础01 从HelloWorld说起
作者:arccosxy 转载请注明出处:http://www.cnblogs.com/arccosxy/ 准备工作 首先,创建一个名为index.html的HTML文件,代码如下: <!DOC ...
- CSS3 transition 属性过渡效果 详解
CSS3 transition 允许 CSS 元素的属性值在一定的时间区间内平滑地过渡.我们可以在不使用 Flash 动画或 JavaScript 的情况下,在元素从一种样式变换为另一种样式时为元素添 ...
- [No000014D]chrome console 调试 引入 jquery等外部库
var importJs=document.createElement('script') //在页面新建一个script标签 importJs.setAttribute("type&quo ...
- [No0000C2]WPF 数据绑定的调试
)DataBinding的表达式无效时,跟踪Debug的输出信息来查找原因(2)DataBinding的表达式有效,但是数据和期望值不同,此时可以在Converter中断点调试 :在VS输出窗口跟踪信 ...
- python 过滤掉字符串中的回车符与换行符(\t\n)
我们在文本数据预处理前,要将数据统一整理成需要的格式,其中有回车(\t)或者(\n)符号,会对我们的数据保存有影响,那么就需要将其过滤掉. 比较简单的方法,用replace()将这些符号替换为空,一定 ...
- hive桶表好处
对于每一个表(table)或者分区, Hive可以进一步组织成桶,也就是说桶是更为细粒度的数据范围划分.Hive也是针对某一列进行桶的组织.Hive采用对列值哈希,然后除以桶的个数求余的方式决定该条记 ...