Linux系统中,进行频繁的读写操作,容易发送只读、以及磁盘损坏等故障。下文为其解决方案:

1、如何界定磁盘已经存在故障

方法一(界定将如下内容另存为Repair.sh然后执行即可):

#!/bin/sh
cd /root
DiskFlag=`/bin/df -k | /bin/awk '{print $1"\t"$2}' | /bin/sort -k  2 -n | /bin/awk 'END{print $1}'`
num=`tune2fs -l $DiskFlag | grep -c  "clean with errors"`
echo $num
if [ $num -lt 1 ];then
        date >> RepairDisk.log
        echo  -e "System Is OK ! " >> RepairDisk.log
        echo >> RepairDisk.log
        exit 0
else
        echo -e '\033[0;31;1m Repairing Operationing System!\033[0m'
        date >> RepairDisk.log
        echo  "Start Repairing Disk ! " >> RepairDisk.log
        fsck.ext3 -y /dev/sda6 >> RepairDisk.log  ###修复
        echo  "Repairing Disk End! " >> RepairDisk.log
        date >> RepairDisk.log
fi

====上文的脚本中,包含了如下查找最大的磁盘以及将发现故障时自动修复。这种修复方案在逻辑层损坏尤其有效。

方案二(通过查看mount信息界定磁盘是否存在只读只读时,文件会有ro的信息):

cat /proc/mounts
rootfs / rootfs rw 0 0
/dev/root / ext3 rw,data=ordered 0 0
/dev /dev tmpfs rw 0 0
/proc /proc proc rw 0 0
/sys /sys sysfs rw 0 0
/proc/bus/usb /proc/bus/usb usbfs rw 0 0
devpts /dev/pts devpts rw 0 0
/dev/sda2 /b ext3 rw,data=ordered 0 0
/dev/sda1 /boot ext3 rw,data=ordered 0 0
tmpfs /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
/etc/auto.misc /misc autofs rw,fd=7,pgrp=2664,timeout=300,minproto=5,maxproto=5,indirect 0 0
-hosts /net autofs rw,fd=13,pgrp=2664,timeout=300,minproto=5,maxproto=5,indirect 0 0
/dev/sda6 /usr/share/TSMIS ext3 rw,data=ordered 0 0

方案三(界定是否存在硬件故障,方案只做只读测试):

  1. # badblocks /dev/sda1          从物理层扫描硬盘有无坏块
  2. # badblocks -v /dev/sda1       同上,运行时输出详细信息
  3. Checking blocks 0 to 200781
  4. Checking for bad blocks (read-only test): done
  5. Pass completed, 0 bad blocks found.

可以看到进度:

  1. # badblocks -vsn /dev/sda1        检查坏块,不具破坏性
  2. Checking for bad blocks in non-destructive read-write mode
  3. From block 0 to 200781
  4. Testing with random pattern: Pass completed, 0 bad blocks found.

方案四(有损测试,会擦拭硬盘内所有的数据):

警告 这条命令会擦除硬盘分区里的所有数据。

  1. # badblocks -vsw /dev/sda1        检查坏块,具有破坏性
  2. Checking for bad blocks in read-write mode
  3. From block 0 to 200781
  4. Testing with pattern 0xaa: done
  5. Reading and comparing: done
  6. Testing with pattern 0x55: done
  7. Reading and comparing: done
  8. Testing with pattern 0xff: done
  9. Reading and comparing: done
  10. Testing with pattern 0x00: done
  11. Reading and comparing: done
  12. Pass completed, 0 bad blocks found.

方案五(如果是ext3的文件系统,可以用fsck进行测试)

  1. # fsck -TVy /dev/sda1
  2. [/sbin/fsck.ext3 (1) -- /mnt/mymount] fsck.ext3 -y /dev/sda1
  3. e2fsck 1.39 (29-May-2006)
  4. Couldn't find ext2 superblock, trying backup blocks...
  5. Resize inode not valid.  Recreate? yes
  6. mypart was not cleanly unmounted, check forced.
  7. Pass 1: Checking inodes, blocks, and sizes
  8. Pass 2: Checking directory structure
  9. Pass 3: Checking directory connectivity
  10. Pass 4: Checking reference counts
  11. Pass 5: Checking group summary information
  12. Free blocks count wrong for group #0 (3552, counted=3553).
  13. Fix? yes
  14. Free blocks count wrong (188777, counted=188778).
  15. Fix? yes

解决:

1、mount的信息优化,比如日志文件,不更新文件

2、 tune2fs -c 5 /dev/sda1   强制重启多次后磁盘检查

3、关闭cache,尤其对于电压不稳的环境, hdparm -W 0 /dev/sda6

linux 磁盘管理以及维护的更多相关文章

  1. Linux 磁盘管理

    Linux磁盘管理好坏管理直接关系到整个系统的性能问题. Linux磁盘管理常用三个命令为df.du和fdisk. df:列出文件系统的整体磁盘使用量 du:检查磁盘空间使用量 fdisk:用于磁盘分 ...

  2. Linux 磁盘管理,Linux vi/vim

    一.Linux 磁盘管理 Linux磁盘管理好坏直接关系到整个系统的性能问题. Linux磁盘管理常用三个命令为df.du和fdisk. df:列出文件系统的整体磁盘使用量 du:检查磁盘空间使用量 ...

  3. 九、Linux 磁盘管理

    Linux 磁盘管理 Linux磁盘管理好坏直接关系到整个系统的性能问题. Linux磁盘管理常用三个命令为df.du和fdisk. df:列出文件系统的整体磁盘使用量 du:检查磁盘空间使用量 fd ...

  4. 吴裕雄--天生自然Linux操作系统:Linux 磁盘管理

    Linux磁盘管理好坏直接关系到整个系统的性能问题. Linux磁盘管理常用三个命令为df.du和fdisk. df:列出文件系统的整体磁盘使用量 du:检查磁盘空间使用量 fdisk:用于磁盘分区 ...

  5. Linux 磁盘管理(df fu fdisk mkfs mount)

    Linux 磁盘管理 Linux磁盘管理好坏直接关系到整个系统的性能问题. Linux磁盘管理常用三个命令为df.du和fdisk. df : 列出文件系统的整体磁盘使用量 du : 检查磁盘空间使用 ...

  6. df、du、fdisk:Linux磁盘管理三板斧的使用心得(转载)

    From:http://os.51cto.com/art/201012/240726_all.htm 作者介绍:李洋(博客),博士毕业于中科院计算所.10多年来一直从事计算机网络信息安全研发工作,曾主 ...

  7. linux 磁盘管理学习笔记

    磁盘管理命令:fdisk df du fdisk #查看硬盘分区表 df #查看分区使用情况 du #查看文件占用空间情况lvdisplay #逻辑分区 [1] 李洋.df.du.fdisk:Linu ...

  8. linux磁盘管理系列-软RAID的实现

    1 什么是RAID RAID全称是独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想是把多个磁盘组合起来,组合一个磁盘阵列组,使得性能大幅提高. R ...

  9. linux磁盘管理系列-LVM的使用

    LVM是什么 LVM是Linux操作系统的逻辑卷管理器. 现在有两个Linux版本的LVM,分别是 LVM1,LVM2.LVM1是一种已经被认为稳定了几年的成熟产品,LVM2 是最新最好的LVM版本. ...

随机推荐

  1. 从输入 URL 到页面加载完的过程中都发生了什么事情?

    1) 把URL分割成几个部分:协议.网络地址.资源路径.其中网络地址指示该连接网络上哪一台计算机,可以是域名或者IP地址,可以包括端口号:协议是从该计 算机获取资源的方式,常见的是HTTP.FTP,不 ...

  2. Android中的五大布局和logcat打印日志

    在android中的布局有五大类,有的时候你可能用到一种,但有的时候你也可能需要两种或者三种布局同时一起使用.这五种布局为别为:LinearLayout(线性布局),FrameLayout(框架布局) ...

  3. Win7_SendTo文件夹

    Win7系统浮动sendto目录现在被移到了这里 : %APPDATA%\Microsoft\Windows\SendTo %APPDATA%是个环境变量,具体来说是在这里: C:\users\??? ...

  4. [转载] 多年积累的 mysql 运维经验

    原文: http://mp.weixin.qq.com/s?__biz=MzA3MzYwNjQ3NA==&mid=207132223&idx=1&sn=f5d98146f282 ...

  5. [转载] C++ 程序员快过来围观:非常实用全面的 C++ 资源

    原文: http://codecloud.net/c-plus-plus-resource-2983.html 绝对是c++开发者的福音啊, 必须推荐. 这次的资源涉及到了标准库.Web应用框架.人工 ...

  6. NEU校园网登录器

    http://www.cnblogs.com/weidiao/p/5124106.html 改自学长的博客. 我们的目标是写一个程序实现自动登录校园网.而这基于的是表单的post机制. 输入校园网网址 ...

  7. ajax 、ajax的交互模型、如何解决跨域问题

    1.ajax是什么? — AJAX全称为“AsynchronousJavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术. — 不是一种新技 ...

  8. Javascript中typeof instanceof constructor的区别

    typeof typeof,是一个运算符,运算中需要一个操作数,运算的结果就是这个操作数的类型,运算的结果是一个字符串.他有一定的局限性,对于对象类型的值,只能得到一个object结果,却不能精确得到 ...

  9. html5实现GIF动画!

     代码如下: <!DOCTYPE html><html>    <head>        <meta charset="utf-8"&g ...

  10. Android 摇一摇之双甩功能

    Android 摇一摇之双甩功能 最近做一个摇一摇的功能 网上相关代码很多 但是这次的需求有点奇葩 要求是摇两次才生效 看起来好像很简单 但真正要做遇到的问题还是很多 时间限制 机型灵敏性 摇动的方式 ...