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个阶段,每个阶段都完成不 ...
随机推荐
- 设置Linux打开文件句柄/proc/sys/fs/file-max和ulimit -n的区别
max-file 表示系统级别的能够打开的文件句柄的数量.是对整个系统的限制,并不是针对用户的. ulimit -n 控制进程级别能够打开的文件句柄的数量.提供对shell及其启动的进程的可用文件句柄 ...
- distri.lua线程间通信的设计
首先简单介绍下distri.lua中的线程设计方案. distri.lua提供一个API函数fork用于创建新的C线程,这个C线程运行独立的lua虚拟机,为了在各线程之间通信 每个线程都会创建一个ch ...
- HDU 4725 The Shortest Path in Nya Graph(构图)
The Shortest Path in Nya Graph Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- Kernel parameter requirements ( Linux DB2)
Kernel parameter requirements ( Linux DB2) https://www.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/ ...
- CentOS7 vsftpd 安装及配置
0x:卸载vsftpd [root@localhost ~]# yum remove vsftpd [root@localhost ~]# find / -name "vsftpd*&quo ...
- 20165311 实验一 Java开发环境的熟悉
一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:李嘉昕 学号:20165311 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验时间:13:45 - 15:25 实验序号:3 实 ...
- python面向对象高级:枚举
在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数.这两种类型经常(但不总是)重叠. 枚举是一个被命名的整型常数的集合,枚举在日常生活中很常见,例 ...
- Chap1:全景图[Computer Science Illuminated]
参考书目:Dale N . 计算机科学概论(原书第5版)[M]. 机械工业出版社, 2016 from library Chap1:全景图 1.1计算系统 1.2计算的历史 1.3计算工具与计算学科 ...
- [daily][pcaman] pacman滚动升级跳过指定包
有时候有些包是坏的, 我们在Syu的时候,想把它跳过去. 可以在pacman.conf 中使用如下选项: IgnorePkg=linux https://wiki.archlinux.org/ind ...
- H2O 网址
使用pysparking的一个例子 http://docs.h2o.ai/h2o-tutorials/latest-stable/tutorials/sparkling-water/index.htm ...