十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
https://linux.cn/article-7961-1.html
创新互联成立与2013年,先为奉贤等服务建站,奉贤等地企业,进行企业商务咨询服务。为奉贤企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
让我们从坏道和坏块的定义开始说起,它们是一块磁盘或闪存上不再能够被读写的部分,一般是由于磁盘表面特定的 物理损坏 或闪存晶体管失效导致的。
随着坏道的继续积累,它们会对你的磁盘或闪存容量产生令人不快或破坏性的影响,甚至可能会导致硬件失效。
同时还需要注意的是坏块的存在警示你应该开始考虑买块新磁盘了,或者简单地将坏块标记为不可用。
因此,在这篇文章中,我们通过几个必要的步骤,使用特定的 磁盘扫描工具 让你能够判断 Linux 磁盘或闪存是否存在坏道。
以下就是步骤:
坏块工具可以让用户扫描设备检查坏道或坏块。设备可以是一个磁盘或外置磁盘,由一个如
/dev/sdc
这样的文件代表。
首先,通过超级用户权限执行 fdisk 命令 来显示你的所有磁盘或闪存的信息以及它们的分区信息:
$ sudo fdisk -l
列出 Linux 文件系统分区
然后用如下命令检查你的 Linux 硬盘上的坏道/坏块:
$ sudo badblocks -v /dev/sda10 > badsectors.txt
在 Linux 上扫描硬盘坏道
上面的命令中,badblocks 扫描设备
/dev/sda10
(记得指定你的实际设备),
-v
选项让它显示操作的详情。另外,这里使用了输出重定向将操作结果重定向到了文件
badsectors.txt
。
如果你在你的磁盘上发现任何坏道,卸载磁盘并像下面这样让系统不要将数据写入回报的扇区中。
你需要执行
e2fsck
(针对 ext2/ext3/ext4 文件系统)或
fsck
命令,命令中还需要用到
badsectors.txt
文件和设备文件。
-l
选项告诉命令将在指定的文件
badsectors.txt
中列出的扇区号码加入坏块列表。
------------ 针对 for ext2/ext3/ext4 文件系统 ------------$ sudo e2fsck -l badsectors.txt /dev/sda10或------------ 针对其它文件系统 ------------$ sudo fsck -l badsectors.txt /dev/sda10
这个方法对带有 S.M.A.R.T(自我监控分析报告技术Self-Monitoring, Analysis and Reporting Technology)系统的现代磁盘(ATA/SATA 和 SCSI/SAS 硬盘以及固态硬盘)更加的可靠和高效。S.M.A.R.T 系统能够帮助检测,报告,以及可能记录它们的健康状况,这样你就可以找出任何可能出现的硬件失效。
你可以使用以下命令安装
smartmontools
:
------------ 在基于 Debian/Ubuntu 的系统上 ------------$ sudo apt-get install smartmontools------------ 在基于 RHEL/CentOS 的系统上 ------------$ sudo yum install smartmontools
安装完成之后,使用
smartctl
控制磁盘集成的 S.M.A.R.T 系统。你可以这样查看它的手册或帮助:
$ man smartctl$ smartctl -h
然后执行
smartctrl
命令并在命令中指定你的设备作为参数,以下命令包含了参数
-H
或
--health
以显示 SMART 整体健康自我评估测试结果。
$ sudo smartctl -H /dev/sda10
检查 Linux 硬盘健康
上面的结果指出你的硬盘很健康,近期内不大可能发生硬件失效。
要获取磁盘信息总览,使用
-a
或
--all
选项来显示关于磁盘所有的 SMART 信息,
-x
或
--xall
来显示所有关于磁盘的 SMART 信息以及非 SMART 信息。