Linux磁盘那点事

实验一:修复文件系统

1.环境描述:

    Linux系统中,非正常关机,突然断电,设备数据读写异常等原因导致文件系统的破坏。比较常见的是超级块(supper-block)损坏。

2.名词解释:

    超级块--文件系统的核心“档案”,它记录了该文件系统的类型,大小,空闲磁盘块等信息,类似Windows的分区表。

3.实验案例演示:

第一,破坏超级块(首先添加硬盘1G,并分区格式化)

dd if=/dev/zero of=/dev/sdb1 bs=512 count=4

mount /dev/sdb1 /mnt

显示:mount: you must specify the filesystem type

第二,修复超级块(参数的先后顺序不能错)

fsck -y -t ext3 /dev/sdb1

 

 

 

 

 

 

 

 

实验二:MBR扇区故障

1.添加一块硬盘

2.分区格式化

  1>fdisk /dev/sdb--->n-->p-->1-->几次回车跳出-->w

  2>mkfs.ext3 /dev/sdb1

3.mkdir /dir001    创建挂载点

4.mount /dev/sdb1 /dir001  挂载分区

5.dd if=/dev/sda of=/dir001/sda.mbr.bak(名称随意) bs=512 count=1

  备份MBR512字节

 

6. dd if=/dev/zero of=/dev/sda bs=512 count=1  模拟故障后,重启系统

 

7.系统无法正常进入,开机后(保证系统盘放入光驱)进入菜单,

选择Rescue installed system 进入急救模式

 

8.一系列设置后进入文本界面

  mkdir /tmpdir

  mount /dev/sdb1 /tmpdir

  dd if=/tmpdir/sda.mbr.bak of=/dev/sda bs=512 count=1

  exit之后选择重启选项

 

 

 

实验三:GRUB引导故障

BIOS-->MBR-->GRUB

第一步:备份grub.conf

1. mount /dev/sdb1 /dir001/

2. 

2.cp /boot/grub/grub.conf /backup/

3.ls /backup/

  显示内容:grub.conf  lost+found  mbr.bak

 

第二步:破坏和恢复

1. rm -rf /boot/grub/grub.conf,删除后重启系统

 

2. 系统无法正常进入,开机后(保证系统盘放入光驱)进入菜单,选择Rescue installed system 进入急救模式

 

3.一系列设置后进入文本界面

  chroot /mnt/sysimage

  mkdir /mulu001

  mount /dev/sdb1 /mulu001

  cp /mulu001/grub.conf /boot/grub

  两次exit后选择重启选项,之后选择Boot from local drive

 

  

实验四:grub菜单加密

grub-md5-crypt,回车后连续输入两次相同密码,会生成一个乱码,将乱码复制到password --md5 后面

vim /boot/grub/grub.conf

找到title CentOS (2.6.32-279.el6.i686)这一行

这行之上输入password --md5 $1$M7kLX$O1HOM5eDVYptpt8uVtfAH1

此时代表为GRUB菜单加密

这行之下输入password --md5 $1$M7kLX$O1wftheDVYptpptpt8ure1

此时代表为进入系统进行加密

 

实验五:磁盘资源耗尽故障

1.环境描述:略

 

2.实验案例演示:

第一,模拟i节点耗尽故障

1.添加一块硬盘,分区格式化,挂载

1>fdisk /dev/sdb--->n-->p-->1-->几次回车跳出-->w

2>mkfs.ext3 /dev/sdb1

3>mkdir /disk

4>mount /dev/sdb1 /disk

5>df -i /disk   确认该文件系统中i节点的使用情况

显示结果:

文件系统    Inode    已用(I)  可用(I)  已用(I)%%  挂载点

/dev/sdb1   65280     11     65269      1%     /disk

 

第二,编写测试程序,耗尽i节点

1>vim killinode.sh

具体内容如下:

#/bin/bash

i=1

while [ $i -le 65269 ]

do

touch /disk/a$i

let i++

Done

 

第三,执行脚本并验证i节点占用情况

1>sh killinode.sh &

 

2>df -i /disk

显示结果:

文件系统    Inode   已用(I)  可用(I) 已用(I)%% 挂载点

/dev/sdb1    65280   65280    0   100%      /disk

3>尝试创建文件

touch /disk/file

显示结果:

touch:无法创建“/disk/file”:设备上没有空间

 

4>查看磁盘剩余空间

df -hT /disk

显示结果:

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

/dev/sdb1    ext3   1004M   19M  934M   2%   /disk

 

第四,修复i节点耗尽故障

rm -rf /disk/a*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值