linux系统启动故障恢复

Linux系统启动过程:

接通电源→硬件自检(post)→cmos启动过程顺序→MBR引导

用图示说明:

先了解下grub.conf

[[email protected] grub]# vim /boot/grub/grub.conf

default=0

timeout=5  没有选择启动的操作系统超时时间

splashimage=(hd0,0)/grub/splash.xpm.gz  引导菜单背景图片

Hiddenmenu  隐藏菜单

title CentOS (2.6.32-431.el6.i686)  开机时候提供的菜单的标签

root (hd0,0)  第一个硬盘的第一个分区,即引导分区

kernel /vmlinuz-2.6.32-431.el6.i686 ro  加载的内核 只读方式root=UUID=f89c0676-2f69-4ebc-961b-9bd951910958 rd_NO_LUKS  KEYBOARDTYPE=pc根的转换

KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb 图形的方式引导 quiet 静默模式

initrd /initramfs-2.6.32-431.el6.i686.img 初始化包含启动的镜像

故障(一)

MBR故障

[[email protected] ~]# dd if=/dev/zero of=/dev/sda bs=446 count=1 模拟MBR故障

[[email protected] ~]init 6  重启

无法启动

需要插入安装光盘从光盘启动修复

选择第3个 rescue install system

选择English

选择us

选择no 不需要开启网络

选择continue

Ok

ok

选择shell start shell

具体命令为

chroot  /mnt/sysimage/ 切换到系统挂载的目录

grub-install /dev/sda   安装grub

exit   退出

exit   退出

然后选择reboot

故障(二)

grub.conf错误 模拟grub错误

[[email protected] ~]# ll /etc/grub.conf  /boot/grub/grub.conf

-rw-------. 1 root root 737 Jul  9 02:41 /boot/grub/grub.conf

lrwxrwxrwx. 1 root root  22 Jul  9 02:41 /etc/grub.conf -> ../boot/grub/grub.conf

2目录的文件对应于一个文件(一个是链接文件)

[[email protected] ~]# mv /boot/grub/grub.conf  /tmp 移动到其他的目录,如同删除

[[email protected] ~]# init 6  重启

出现这个说明第一阶段(mbr)完好,第二阶段出现问题

先输入root (    按table键有提示说明

再输入 root(hd0,  按table键有提示说明

分辨哪个分区可能是引导分区

然后输入kernel 位置 在/后面输入vm按table键看是否能补齐能补齐说明前面选择的路径是对的

然后再 ro(只读模式)quiet(静默模式) root=/dev/sda2 (指定根目录)

Initrd /ini按table键补齐   (指定驱动位置)

boot 试下能否启动

可以进入系统。但是如果再重启的话还是出现上面的情况,这时需要重建grub菜单

[[email protected] ~]# cd /boot/grub/

[[email protected] grub]# vim grub.conf  进入grub目录,编辑grub.conf文件

编辑为如此即可

default=0

timeout=5    菜单超时时间

splashimage=(hd0,0)/boot/grub/splash.xpm.gz    背景界面

title centos  标题

root (hd0,0)   根目录

kernel /vmlinuz-2.6.32-431.el6.i686 ro quiet rhgb root=/dev/sda2  内核文件位置

initrd /initramfs-2.6.32-431.el6.i686.img  驱动文件位置

然后init 6 重启就可以成功进入

故障(三)

grub目录丢失  模拟grub目录丢失

[[email protected] ~]# cd /boot/

[[email protected] boot]# mv grub /tmp  将grub移动模拟丢失目录

[[email protected] boot]# init 6

出现这样的情况,放上系统盘进入救援模式选择从光盘启动,可以调bios光盘为第一启动项,也可以开机按f12选择(部分机器可能没有)

选择救援模式

进入救援模式shell方式和上面一样!

chroot /mnt/sysimage  切换到根目录

grub-install --root-directory=/ /dev/sda   安装grub相关的目录

然后ls  /boot 有了grub目录

grub目录下也有文件,但是少了个grub.conf

然后exit

exit重启

选择第四项选择从本地硬盘启动

进入

然后和故障(二)的情况一样,解决方法一样 即

使用livecd光盘修复

[[email protected] ~]# cd /boot/

[[email protected] boot]# mv grub /tmp  将grub移动模拟丢失目录

[[email protected] boot]# init 6

使用livecd启动  可用usb启动,usb需要设置pe启动

选择第二个进入

选择命令行模式

su -    获取root

fdisk -l   查看所有硬盘信息,以确定boot分区的设备目录

Boot分区为 /dev/sda1

mkdir  /mnt/boot

mount  /dev/sda1  /mnt/boot

ls-l /mnt/boot   查看下挂载是否正确

Root 分区为 /dev/sda2

mkdir /mnt/root

mount /dev/sda2  /mnt/root

没有grub目录

grub-install --root-directory=/mnt  /dev/sda  安装grub针对/dev/sda盘

ls查下,已经有目录了

没有grub.conf需要自己手工编辑

进入grub目录下编辑grub.conf

编辑为如此即可(同上)然后保存退出重启电脑即可

故障(四)

/etc/fstab 文件错误导致无法开机

vim  /etc/fstab

编辑这个文件

随便输入东西,模拟错误

然后输入init 6 重启,系统无法启动,用livecd光盘启动修复

从本地硬盘启动时

按e

按e 将rhgb删除,查看系统进程加载情况,以确定系统问题

修改完成 按b引导进入

发现问题

/etc/fstab 错误

用livecd进入

第二个选项进入

进入命令行方法同上

su -   用管理员权限

fdisk -l   显示硬盘信息判断哪个是根分区

mkdir  /mnt/root

mount  /dev/sda2 /mnt/root   挂载根分区

编辑fstab

查看文件,错误内容删除保存即可

重启成功进入系统

故障(五)

Root口令丢失

开机在5秒内按任意键进入grub菜单

按e

选第2个再按e

在后面输入1 或者single 进入单用户模式

回车,再按b进行引导启动

可以看出来进入了单用户模式

可以使用passwd root  重新设置密码

也可以使用 passwd -d root  删除root账号

问题解决。

时间: 2024-10-11 09:00:13

linux系统启动故障恢复的相关文章

Linux系统启动流程

一直以来对于电脑的开机过程概念还停留在按下开机键,然后等待自动开启.但是对于开启的这一过程几乎一无所知,包括它如何能够通电后自己启动包括内部的一系列的过程. 目前也只是对Linux系统的启动流程有了一个浅显的认识,但它启动的过程也想以自己的理解来分享一下. 一般Linux系统的开机过程有这么几个步骤: 按下电源键 BIOS自检 系统引导 Linux内核启动 初始化系统 登录系统 其中每个过程中又可细分为很多的子过程.按下电源键这一步自不必多说,我们从BIOS自检说起. BIOS自检 BIOS自检

linux系统启动详解

要学习linux的命令,我们需要先了解linux系统是如何工作的,这里我们先了解linux是如何在一台电脑上启动加载的!! linux系统启动过程 第一步.  BIOS初始化  1.  BIOS检测所有的外置设备,查看有哪些外围设备在活动区  2.  开始寻找启动磁盘--根据BIOS的设置导找启动文件存放的位置 第二步.执行启动加载器  1. 先到MBR(主引导记录)磁盘导找启动文件,比如:grub /LILO  2. 到boot partition(启动分区)去找启动文件-比如:grub /L

Linux系统启动流程分析与关机流程

Linux 系统启动流程分析 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导. 运行 init. 系统初始化. 建立终端. 用户登录系统. init程序的类型: SysV: init, CentOS 5之前, 配置文件: /etc/inittab. Upstart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf. Systemd: systemd, CentOS 7,配置文件: /usr/lib/

Linux系统启动过程详解

 Linux系统启动过程详解 启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬盘信息.内存信息.时钟信息.PnP特性等等.在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了. 启动第二步--读取MBR众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,别看地方不大,

Linux系统启动流程之kernel

Linux系统启动流程之kernel   1.内核参数修改方法: 2.内核内核模块管理: 3.内核编译 用户空间访问.监控内核的方式:/proc, /sys 伪文件系统 /proc/sys: 此目录中的文件很多是可读写的 /sys/: 某些文件可写   1.内核参数修改方法: echo VALUE > /proc/sys/TO/SOMEFILE sysctl -w kernel.hostname= [[email protected] vm]# free -m  total   used   f

Linux系统启动流程与内管管理(上)

在讲linux系统启动流程之前,来讲讲linux的组成,这样能能帮助我们深入了解系统的启动流程,废话不多说直接上系统启动流程图 linux组成 linux:kernel+rootfs kenrel的作用:进程管理.内存管理.网络管理.驱动程序.文件系统.安全管理等 rootfs:程序和glibc 库:函数结合,function,调用接口(头文件负责传输) 过程调用:procedure,无返回值 函数调用:function 程序:二进制执行文件 内核设计流派 单内核:把所有功能集成与一个程序 如:

魏昊卿——《Linux内核分析》第三周作业:Linux系统启动过程

魏昊卿——<Linux内核分析>第三周作业:Linux系统启动过程 一.实验部分 实验指导 使用实验楼的虚拟机打开shell 1 cd LinuxKernel/ 2 qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img 内核启动完成后进入menu程序(<软件工程C编码实践篇>的课程项目),支持三个命令help.version和quit,您也可以添加更多的命令,对选修过<软件工程C编码实践篇>

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

1.为什么要有uboot 1.1.计算机系统的主要部件 (1)计算机系统就是以CPU为核心来运行的系统.典型的计算机系统有:PC机(台式机+笔记本).嵌入式设备(手机.平板电脑.游戏机).单片机(家用电器像电饭锅.空调) (2)计算机系统的组成部件非常多,不同的计算机系统组成部件也不同.但是所有的计算机系统运行时需要的主要核心部件都是3个东西: CPU + 外部存储器(Flash/硬盘) + 内部存储器(DDR SDRAM/SDRAM/SRAM) 1.2.PC机的启动过程 (1)部署:典型的PC

Linux系统管理(二):Linux系统启动流程

Linux系统启动流程 从11月底报名马哥的Linux培训班,12月初真正开始学习,已经过去一个多月的时间了,从学习Linux的发展史开始.跟着学习命令行.文件系统挂载与管理.目录.Bash Shell的基本特性等等,Linux真的是博大精深,今天以CentOS 5,CentOS 6的启动过程进行一下简单的总结.由于才疏学浅,知识所限,有些地方分析不妥之处还请各位高手不吝赐教. 系统启动过程主要经过以下几个流程: POST>BootSequence(BIOS)>Bootloader(MBR)&