linux 系统盘无法ls,系统故障排除

1.系统故障排除

1)模拟磁盘/dev/sda的MBR故障,并执行修复

01.备份磁盘/dev/sda的MBR扇区

选择一个/dev/sda以外的文件系统(比如/dev/sdb1)来存放备份文件:

[root@svr5 ~]# df -hT/home//选择/dev/sdb1存放备份

文件系统         类型     容量     已用     可用     已用%     挂载点

/dev/sdb1     ext3    19G      173M     18G     1%      /home

使用dd命令复制/dev/sda设备的第一个扇区(512字节):

[root@svr5 ~]# dd if=/dev/sdaof=/home/sda.mbr bs=512 count=1

1+0 records in

1+0 records out

512 bytes (512 B) copied, 0.013492 seconds,37.9 kB/s

确认已存放到/dev/sdb1下的备份文件:

[root@svr5 ~]# ls -l /home/sda.mbr

-rw-r--r-- 1 root root 512 10-15 15:50/home/sda.mbr

02.模拟对MBR扇区的破坏

使用dd命令对MBR扇区清零,然后重启系统:

[root@svr5 ~]# dd if=/dev/zero of=/dev/sdabs=512 count=1//破坏MBR

1+0 records in

1+0 records out

512 bytes (512 B) copied, 2e-05 seconds, 26MB/s

[root@svr5 ~]# reboot//重启系统

.. ..

重启系统后,因磁盘sda的MBR被破坏而无法找到分区表,从而也就无法加载Linux操作系统。如果网络启动或光盘启动也失败,则提示“Operating System not found”而停滞,如图-2所示。

spacer.gif

图-2

03.进入RHEL 5光盘的救援模式

修改RHEL 5虚拟机的光盘设置,将其改为RHEL 5系统的.iso安装镜像文件,比如rhel-server-5.9-x86_64-dvd.iso,如图-3所示。

图-3

spacer.gif

然后重启虚拟机电源,默认将从光盘引导。待出现“boot:”提示界面时,输入“linux rescue”指令,如图-4所示,按回车键。

spacer.gif

图-4

此后将逐步进入RHEL 5光盘提供的救援模式,大部分交互接受默认即可。

首先选择要使用的语言,救援模式为命令行、不支持中文,因此接受默认的“English”,按Tab键定位到“Ok”后回车,如图-5所示。

spacer.gif

图-5

然后选择要使用的键盘类型,也接受默认设置,如图-6所示。

spacer.gif

图-6

接下来选择是否使用网络,一般选择“No”,如图-7所示,否则根据提示设置好网络参数即可。

spacer.gif

图-7

再接下来会尝试自动查找待修复的Linux系统,如果找到的话会自动将根分区挂载到光盘临时系统的/mnt/sysp_w_picpath目录。这里因为MBR损坏而无法读取分区表,所以肯定是找不到的啦,接受默认的“Continue”继续或“Skip”跳过都可以,如图-8所示。

spacer.gif

图-8

提示是否初始化磁盘并删除所有数据时(如果有多块磁盘会提示多次),均选择“No”,如图-9所示。

spacer.gif

图-9

找不到待修复的Linux系统时,会提示用户知晓,如图-10所示,回车确认即可。

spacer.gif

图-10

最终用户将获得一个在内存中运行的临时Shell环境,如图-11所示,从而可以执行大部分系统管理命令,进一步完成各种修复任务。

spacer.gif

图-11

04.在救援模式下通过备份文件修复MBR

创建挂载点文件夹,并挂载存放备份文件的/dev/sdb1分区,如图-12所示,确认备份文件。

spacer.gif

图-12

使用dd命令执行恢复,读取备份文件sda.mbr,覆盖磁盘/dev/sda的第一个扇区,如图-13所示。

spacer.gif

图-13

完成后,执行exit退出临时Shell环境,系统将会自动重启,如图-14所示。重启后原有Linux系统即可恢复正常。

spacer.gif

图-14

注意:万一重启后出现“GRUB_”提示符后停止、仍然无法进入系统,如图-15所示,请参考接下来的GRUB修复操作。

spacer.gif

图-15

2)模拟GRUB文件丢失故障,并执行修复

01.  备份grub.conf配置文件,破坏GRUB引导程序

在正常的Linux操作系统中,转移grub.conf配置文件并重启后可模拟引导故障,或者像前一节的MBR示例中,有时恢复不完整也会出现异常,症状如图-15所示。

如果是手动转移grub.conf配置文件,可参考以下操作:

[root@svr5 ~]# mv/boot/grub/grub.conf /boot/grub/grub.conf.bak

//转移grub.conf文件

[root@svr5 ~]# ls -lh/boot/grub/grub.conf//确认转移结果

ls: /boot/grub/grub.conf:没有那个文件或目录

[root@svr5 ~]# reboot//重启系统

重启后会停滞在“grub>”提示符,因找不到内核等引导文件而无法进入系统。这个属于MBR扇区中的引导程序好使,但找不到有效的启动配置:

grub>//grub启动配置丢失后,启动时的停滞提示

02.  重建GRUB引导程序、恢复grub.conf配置文件

参考前一节以RHEL 5光盘启动,并进入“linux rescue”救援模式。注意当提示是否探测(如图-8所示)待修复的操作系统时,选择“Continue”,找到并挂载成功后会提示用户确认,如图-16所示。

spacer.gif

图-16

这样在修复时就可以直接到/mnt/sysp_w_picpath找到原来Linux的根目录了。

在救援模式的临时Shell环境下,执行“chroot /mnt/sysp_w_picpath”切换到待修复Linux的根环境,然后从备份恢复grub.conf配置文件,并执行“grub-install /dev/sda”在磁盘sda上重建GRUB引导程序,如图-17所示。

spacer.gif

图-17

确认修复完毕后,执行两次exit(先退出chroot环境、再退出救援模式),系统将会自动重启,如图-18所示。重启后原有的Linux系统即可恢复正常。

spacer.gif

图-18

3)模拟EXT3分区超级块故障,并执行修复

重新进入修复好的Linux系统,选择/dev/sdb1做超级块破坏实验,了解相关的故障现象及修复办法。

01.备份/dev/sdb1的超级块

理论上此步骤可不做,保险起见还是做一下(必要时,其中的文档最好也备份),万一后面修复不好还有机会还原。若要破坏EXT3文件系统的超级块,一般将前4个扇区dd清零就差不多了,所以备份也保存这4个块:

[root@svr5 ~]# dd if=/dev/sdb1of=/root/sdb1.sblock count=512 count=4

4+0 records in

4+0 records out

2048 bytes (2.0 kB) copied, 4.5e-05seconds, 45.5 MB/s

[root@svr5 ~]# ls -l /root/sdb1.sblock             //确认备份文件

-rw-r--r-- 1 root root 2048 10-15 17:31/root/sdb1.sblock

02.破坏/dev/sdb1的超级块

使用dd命令将/dev/sdb1的前4个扇区清零:

[root@svr5 ~]# dd if=/dev/zero of=/dev/sdb1count=512 count=4

4+0 records in

4+0 records out

2048 bytes (2.0 kB) copied, 2.7e-05 seconds,75.9 MB/s

然后卸载/dev/sdb1,尝试重新挂载到/home时将会失败,因为超级块被破坏而导致无法识别该设备上的文件系统:

[root@svr5~]# umount /dev/sdb1                    //若已经挂载,则先卸载

[root@svr5 ~]# mount/dev/sdb1 /home                 //重新挂载失败

mount: you must specify the filesystem type

03.修复建立在/dev/sdb1上的EXT3文件系统

使用fsck命令可执行修复,通过“-t ext3”指定文件系统类型、“-y”自动对出现的交互选择“yes”确认:

[root@svr5 ~]# fsck -y -t ext3 /dev/sdb1

fsck 1.39 (29-May-2006)

e2fsck 1.39 (29-May-2006)

Couldn't find ext2 superblock, tryingbackup blocks...

/dev/sdb1: recovering journal

fsck.ext3: unable to set superblock flagson /dev/sdb1

执行第2次修复(第1次因块数据不完整,可能只修复部分):

[root@svr5 ~]# fsck -y -t ext3 /dev/sdb1

fsck 1.39 (29-May-2006)

e2fsck 1.39 (29-May-2006)

/dev/sdb1 was not cleanly unmounted, checkforced.

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

Pass 5: Checking group summary information

Free blocks count wrong for group #2(32257, counted=32249).

Fix? yes

Free blocks count wrong for group #3(31232, counted=31224).

Fix? Yes

.. ..

Directories count wrong for group #143 (0,counted=4).

Fix? yes

Free inodes count wrong (2443189, counted=2443058).

Fix? yes

/dev/sdb1: ***** FILE SYSTEM WAS MODIFIED*****

/dev/sdb1:142/2443200 files (1.4% non-contiguous), 125963/4885760 blocks

根据实际情况,可能还需要再执行几次fsck,直到最后提示“clean”为止,表示该文件系统已经完好无损:

[root@svr5 ~]# fsck -y -t ext3 /dev/sdb1

fsck 1.39 (29-May-2006)

e2fsck 1.39 (29-May-2006)

/dev/sdb1: clean, 142/2443200 files,125963/4885760 blocks

检查完毕后,再次将其挂载到/home/目录,确认挂载结果:

[root@svr5 ~]# mount /dev/sdb1 /home                 //挂载成功

[root@svr5 ~]# ls/home                             //查看挂载的目录内容

aquota.group kdev nick pingpingsda.mbr-20131015 vina

aquota.user kenthy obama rsync.test stu20zengye

hunter lost+found pangpang sda.mbr stu21

04.增加单用户模式密码

在启动项前增加但用户模式密码

[root@RHEL5 ~]# vim /boot/grub/grub.conf

hiddenmenu

password 123456

titleRed Hat Enterprise Linux Server (2.6.18-348.el5)

4)系统文件丢失(/etc/inittab)

1)备份/etc/inittab文件

[root@RHEL5~]#cp /etc/inittab  /root/

2)删除/etc/inittab文件

[root@RHEL5~]#rm -rf /etc/inittab

3)重启、查看故障现象(INIT:No inittab file found)

4)修复此故障

a)进光盘救援模式

boot:linux rescue

b)chroot  /mnt/sysp_w_picpath

Sh-3.2#chroot /mnt/sysp_w_picpath

c)检查/etc/inittab文件属于哪个包

Sh-3.2#rpm -qf /etc/inittab

initscripts-8.45.42-1.el5_8.1

d)将RHEL5.9光盘设备挂载到/mnt/dvd/

Sh-3.2#mkdir /mnt/dvd

Sh-3.2#mount /dev/sr0(hdc) /mnt/dvd

e)根据步骤c查询结果,从光盘挂载点安装对应的包

Sh-3.2#rpm -ivh --force

/mnt/dvd/Server/initscripts-8.45.42-1.el5_8.1.x86_64.rpm

Preparing...             ###########################################[100%]

1:initscripts            ###########################################[100%]

f)exit 退出chroot环境

Sh-3.2#exit

g)exit 退出救援模式,自动重启、修复完成

Sh-3.2#exit

01.磁盘或分区的坏道检测

故障现象

--读取磁盘数据时,发出异常声响

--访问某个文件时,读取出错或提示文件损坏

--新建立的分区无法执行格式化

--读写该磁盘时频繁司机

1)检查分区/dev/sda1是否存在坏道

[root@RHEL5 ~]# badblocks -sv /dev/sdb

Checkingblocks 0 to 20971520

Checkingfor bad blocks (read-only test):              0/   done

Passcompleted, 0 bad blocks found.

02.误删除文件恢复

1.安装extundelete 软件包

yum -y groupinstall开发工具 开发库   //安装开发工具

./configure                                           //配置

ls

make && make install                               //编译安装

echo $?                                                       //查看状态

cd

rm /boot/vmlinuz-2.6.18-348.el5       //删除测试

Umount  /boot

extundelete --inode 2 /dev/sda1         //查看可恢复文件

extundelete --restore-all /dev/sda1    //回复所有可恢复文件

ls RECOVERED_FILES/                                      //查看恢复目录

Mount /dev/sda1 /boot

mv RECOVERED_FILES/vmlinuz-2.6.18-348.el5  /boot/ //移动删除文件

ls /boot/

5)i节点测试

i节点耗尽验证(尽管有磁盘空间,但已无法写入文件)

建一个小分区(40MB),

格式化:mkfs -text3 /dev/sdb10

|-->创建超级块(superblock)—— inode数量、blocks数量

查看超级块:tune2fs -l /dev/sdb10

快速消耗i节点资源:

mkdir  /mnt/testdir

mount  /dev/sdb10  /mnt/testdir

for  i  in $(seq 15000) ; do  touch "/mnt/testdir/file$i.txt" ;  done

|-->设一个超过可用i节点数量的数值

** seq命令用来生成一个数字序列,for是一个循环语句(Shell课程会详细介绍)

** inode,i节点—— 档案编号,每一个文件都需要

**文件名 --> i节点 --> 文件内容

6)wget下载整个网站:

wget -crpk -np http://www.lfs.org.cn/book/index.html

选项说明:

-r,--recursive:递归下载所有链接

-p,--page-requisites:包括页面显示必需的目标

-k,--convert-links:下载完成后转换链接目标以便本地浏览

-np,--noparent:只向下递归,防止下载父级链接或外部链接等网页对象

-c,--continue:支持断点续传

-t,--tries=:指定重试次数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker公共存储库_查找并修复docker镜像安全漏洞

容器的出现使开发团队可以创建沙盒环境,以在其中运行和测试应用程序,容器主要由从 docker hub 或其他公共镜像存储库提取的开源镜像组成。但是这些开源镜像有时可能包含一些漏洞,这些漏洞可能会危害容器的安全,进而危害其主机/服务…

linux全过程图解图片,安装 Mandriva Linux全过程《图解》

wide 于 2006-02-26 10:29:58发表:设定帐号Mandriva 是一个可供多人使用的作业系统,使用者必须先在系统中拥有帐号才可以使用。而登入时,则必须输入帐号及密码,验证无误后方可进入。 本章将介绍如何在安装时设定使用者帐号及密码。何谓系统管…

c语言程序编写一朵花,一朵花(中英双语)

一朵花A Flower作者|白鹤清泉(Baihe Qingquan)英译|周柯楠(Zhou Kenan)轻轻地走近你的世界Gently I approach your world默默地与你对视Looking you in the eye silently我用眼睛嘴唇与你贴近I keep close to you with my eyes and lips只为听到你芬芳的…

硬解析优化_72最近一次现场生产系统优化的成果与开发建议

上周给南京某客户一个重要业务系统的数据库做优化,能实施的马上做了实施,优化前后性能对比非常明显,系统最为严重的IO负载过重问题基本得到解决:优化前一天的物理读是48亿次,优化后是15亿次,效果那是刚刚的…

XM7 FOR ANDROID,视频剪辑制作app-视频剪辑制作xm8.0安卓版-蜻蜓手游网

视频剪辑制作是一款很好用的手机视频编辑软件,在这里你可以进行视频剪辑、制作字幕、背景音乐制作等,让你可以轻松的制作视频,需要视频剪辑制作的就来蜻蜓手游网下载吧!软件功能【背景配乐】给视频添加背景音乐,支持MP…

混凝土墙开洞_易县混凝土剪力墙切割常见问题

易县混凝土剪力墙切割常见问题北京专业切割 承接水泥地面切割路面切割 混凝土地面切割 地面切割开线槽 楼板切割 墙体切割 柱子切割 沥青地面切割 洋灰地面切割 切割开线槽 。是一个以建筑液压钳拆除结构加固和切割拆除、水钻钻孔的综合性公司。加固设计、混凝土外部粘钢加固、…

差分放大电路差模共模公式_差分放大电路对差模信号和共模信号有什么影响?...

现在在应用中使用的放大电路一般都是由各级级联组成的,直接级联的放大电路各级的直流通路相互关联,因而当前级的静态工作点由于某种原因而稍有偏移时,这种缓慢的微小变化就会逐级影响,致使放大器的输出端产生较大的电压漂移&#…

html本地载入缓存文件,Flutter中如何加载并预览本地的html文件的方法

搜索热词直接进入主题,大概步骤如下在 assets 创建需要访问 html 文件,如下这里创建一个files文件夹,专门来放这些静态 html 文件.在 pubspec.yaml 中配置访问位置assets:- assets/images/- assets/files/在 pubspec.yaml 添加 webview_flutt…

三维数据平滑处理_关于CAD三维对象建模

下面是本公众号文章分类目录,点击标题文字可打开分类文章列表:安装卸载 异常、退出 文件及输入输出 基本操作技巧 设置及相关问题 界面和显示 快捷键 视图设置和调整 图层管理 颜色 线型 字体、文字样式和文字输入 标注、引线和标注样式 坐标系…

html下拉列表框的长度,HTML中如何定义下拉列表框的默认长度?

一共两个文件,html页面里面调用js文件就可以了,不是要把代码也复制到html文件里面^……联动菜单 是这个意思吗?实现方法很多 推荐一个比较好的:琥珀联动菜单以下信息为琥珀联动菜单&#xff1a;(在此感谢作者&#xff01;)下面是静态页面&#xff1a;HPMenu_Demo.html<html…

3蛋白wb_老司机手把手教你选WB内参

俗话说&#xff0c;一个生物学博士&#xff0c;要跑满1000面胶才能毕业。今天特邀实验室博三大师兄&#xff0c;和大家聊一聊WB内参那些小事。选择好合适并且好跑的内参&#xff0c;WB实验也就成功了一半。1. 什么是内参&#xff1f;内参即内部参照&#xff0c;一般是指由管家基…

制作支付页面弹框html,JS实现仿微信支付弹窗功能_蜡烛_前端开发者

先奉上效果图/p>body {margin: 0;padding: 0;font-size: 0.3rem;font-family: "微软雅黑", arial;}ul,li {margin: 0;padding: 0;list-style: none;}img {display: block;}#myBtn {display: block;width: 80%;height: auto;margin: 5rem auto;padding: 0.2rem;bor…

matlab 判断鼠标按下_轻巧可爱,支持多设备——雷柏Ralemo Air1乐萌鼠标

手机可以连接显示器&#xff0c;变成桌面系统&#xff0c;iPadOS支持鼠标操作&#xff0c;越来越多的智能设备都可以做到轻办公的使用需求&#xff0c;而办公必不可少就是鼠标&#xff0c;如果说为了每个设备都配个鼠标未免有点太过奢侈&#xff0c;今天介绍一款造型独特&#…

电子科学与技术与计算机专业,计算机科学与技术专业和电子科学与技术专业,哪个好些?...

作为计算机科学与技术专业的学生&#xff0c;这个必须怒答一波&#xff0c;其他学校我是不清楚&#xff0c;就我们学校&#xff0c;我们专业简直比电子科学与技术好太多。先说说培养方案吧计算机科学与技术:本专业培养具有良好的科学素养&#xff0c;系统掌握计算机科学与技术,…

kafka topic 一段时间不消费_全网最通俗易懂的 Kafka 入门

众所周知&#xff0c;消息队列的产品有好几种&#xff0c;这里我选择学习Kafka的原因&#xff0c;无他&#xff0c;公司在用。我司使用的是Kafka和自研的消息队列(Kafka和RocketMQ)改版&#xff0c;于是我就想学学Kafka这款消息队列啦。本篇文章对Kafka入门&#xff0c;希望对大…

cups源码下载 linux_【正点原子FPGA连载】第九章Linux显示设备的使用-领航者ZYNQ之linux开发指南...

1&#xff09;实验平台&#xff1a;正点原子领航者ZYNQ开发板2&#xff09;平台购买地址&#xff1a;https://item.taobao.com/item.htm?&id6061601087613&#xff09;全套实验源码手册视频下载地址&#xff1a;http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.htm…

java程序启动后就进行了7次younggc_程序员如何优化 Java GC

本文由CrowHawk翻译Sangmin Lee发表在Cubrid上的”Become a Java GC Expert”系列文章的第三篇《How to Tune Java Garbage Collection》,本文的作者是韩国人&#xff0c;写在JDK 1.8发布之前&#xff0c;虽然有些地方有些许过时&#xff0c;但整体内容还是非常有价值的。译者此…

html标签名都是小写,到底啥是w3c标准(示例代码)

W3C标准从两年前接触前端的时候&#xff0c;听说了 w3c 标准 &#xff0c;是w3c(World Wide Web Consortium-世界万维网联盟)组织提出的web标准&#xff0c;印象中这个标准就是&#xff0c;行为(js)、样式(css)、结构(html)&#xff0c;相分离。。。仅此而已一直也就是这么以为…

自加一运算_C语言i++、++i混合运算老手未必全掌握,看了你就明白了

C语言中的自增自减运算符&#xff08;i、i--、i、--i&#xff09;对于新手来说&#xff0c;通常感到困惑&#xff0c;说来容易算来难&#xff0c;如果涉及到混合运算&#xff0c;更是无法理解。甚至有些学了几年的老手&#xff0c;未必全掌握&#xff08;也许你忽略了这个问题&…

计算机网络运输层的概述,计算机网络_运输层

运输层协议概述从通信和信息处理的角度看&#xff0c;运输层向它上面的应用层提供通信服务&#xff0c;它属于面向通信部分的最高层&#xff0c;同时也是用户功能中的最低层。当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时&#xff0c;只有位于网络…