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个阶段,每个阶段都完成不 ...
随机推荐
- 通信原理之IP协议,ARP协议 (三)
把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数 ...
- 十二、K3 WISE 开发插件《工业单据老单与自己添加的窗体 - 互相传值传参》
===================================== 目录: 1.演示效果--[销售订单]传值给[自定义窗体] 2.演示效果--[自定义窗体]传值给[销售订单] 3.附源码 4. ...
- autolayout 高度自适应
https://lvwenhan.com/ios/449.html #import "ViewController.h" #import "MyTableViewCell ...
- EXCEL 2007施工进度横道图制作步骤及实战练习
[知识讲解] 1.将图表中的部分图形“隐藏”起来 如果为了实现某种特殊的图表效果,需要将图表中的部分图形“隐藏”起来,除了将该系列删除外(有时候这种方法不能达到所需要的效果),还可以通过下面的方法来实 ...
- vmware的centos 6虚拟机如何共享文件夹?
1.点 虚拟机-设置 2. 点击 选项-共享文件夹: 3.点击添加,选择 windows主机的一个文件夹作为 共享文件夹: 5.点击完成-确定以后,重启虚拟机(客户机),在虚拟机中: 点击 compu ...
- 洛谷P1074 靶形数独【dfs】【剪枝】
题目:https://www.luogu.org/problemnew/show/P1074 题意: 数独的分数如下.一个数独的总分数就是权值乘所填数字之和. 现在给一个未完成的数独,问分数最高的数独 ...
- echarts x轴名称太长
echarts x轴名称太长了,隐藏一部分,鼠标移到名称上,显示全称 function extension(mychart, type) { let extension = document.getE ...
- [No000010A]Git3/9-创建版本库
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或 ...
- [No0000E4]C# 常量
常量是固定值,程序执行期间不会改变.常量可以是任何基本数据类型,比如整数常量.浮点常量.字符常量或者字符串常量,还有枚举常量. 常量可以被当作常规的变量,只是它们的值在定义后不能被修改. 整数常量 整 ...
- [No0000E1]C# 关键字
关键字是 C# 编译器预定义的保留字.这些关键字不能用作标识符,但是,如果您想使用这些关键字作为标识符,可以在关键字前面加上 @ 字符作为前缀. 在 C# 中,有些标识符在代码的上下文中有特殊的意义, ...