ubuntu下磁道坏区的检测与修复

使用命令行进行操作。
一:检查坏道
对磁盘操作前,必须卸载之~
umount参数如下:
  -a 卸除/etc/mtab中记录的所有文件系统。
  -h 显示帮助。
  -n 卸除时不要将信息存入/etc/mtab文件中。
  -r 若无法成功卸除,则尝试以只读的方式重新挂入文件系统。
  -t<文件系统类型> 仅卸除选项中所指定的文件系统。
  -v 执行时显示详细的信息。
  -V 显示版本信息。

对整个磁盘进行read-only检测:
sudo badblocks -s  -v -c 32 /dev/sdb
检测过程是可以中途终止,也可以指定区块重新开始。
sudo badblock -s -v -c 32  /dev/sd*   976762583 125637824 (注意此处结束区块在前,起始区块在后)

badblocks 用法详细说明
语 法:
  badblocks [-svw][-b < 区块大小>][-o < 输出文件>][磁盘装置][磁盘区块数][启始区块]

参 数:
  -b< 区块大小> 指定磁盘的区块大小,单位为字节。
  -o< 输出文件> 将检查的结果写入指定的输出文件。
  -c< 检查区块数目> 每一次检测区块的数目。默认值是16。增加这个数目可以增加检测 块的效率可同时也会增加内存的耗费。
  -s 在检查时显示进度。
  -v 执行时显示详细的信息。
  -w 在检查时,执行写入测试。
  [磁盘装置] 指定要检查的磁盘装置。
  [磁盘区块数] 指定磁盘装置的区块总数。
  [启始区块] 指定要从哪个区块开始检查。

二:修复坏道
如果只是逻辑坏道,你可以
直接fsck
fsck -a /dev/sdb

或者格式化
如果是物理坏道,那么兄弟你真的悲剧了。你需要
a.备份硬盘数据
b.删除所有硬盘分区
c.根据坏块位置以及大小,估算出所占空间。然后重新分区隔离损坏部分。btw:坏道是会扩散的,所以尽可能隔离掉多些空间。

当然,不妨看看windows下的chkdsk工具,很强大~

检查磁盘并显示状态报告。
CHKDSK [volume[[path]filename]]] [/F] [/V] [/R] [/X] [/I] [/C] [/L[:size]]
  volume          指定驱动器(后面跟一个冒号)、装入点
                  或卷名。
  filename        仅用于 FAT/FAT32: 指定要检查是否有碎片的文件。
  /F              修复磁盘上的错误。
  /V              在 FAT/FAT32 上: 显示磁盘上每个文件的完整路径和名称。
                   在 NTFS 上: 如果有清除消息,将其显示。
  /R              查找不正确的扇区并恢复可读信息(隐含 /F)。
  /L:size       仅用于 NTFS:  将日志文件大小改成指定的 KB 数。
                    如果没有指定大小,则显示当前的大小。
  /X               如果必要,强制卷先卸下。
                    卷的所有打开的句柄就会无效(隐含 /F)。
  /I                仅用于 NTFS: 对索引项进行强度较小的检查。
  /C               仅用于 NTFS: 跳过文件夹结构的循环检查。

/I 和 /C 命令行开关跳过卷的某些检查,减少运行 Chkdsk 所需的时间。

你可能感兴趣的:(ubuntu下磁道坏区的检测与修复)