badblocks就是一个很好的检查坏道位置的工具。 实例 使用badblocks以4096的一个block,每一个block检查16次,将结果输出到hda-badblocks-list文件里。 badblocks -b 4096 -c 16 /dev/hda1 -o hda-badblocks-list hda-badblocks-list是个文本文件,内容如下: 51249 51250 51251 下面,badblocks以4096字节为一个"block",每一个"block"检查1次,将结果输出到hda-badblocks-list.1文件中,由第51000 block开始,到63000 block badblocks -b 4096 -c 1 /dev/hda1 -o hda-badblocks-list.1 63000 51000 这次花费的时间比较短,硬盘在指定的情况下在很短的时间就产生"嘎嘎嘎嘎
/external/e2fsprogs/misc/badblocks.c 2.默认不编译,可在编译mk中配置:PRODUCT_PACKAGES += badblocks 3.然后单独编译,在system 命令检测方法 # adb shell # badblocks -h badblocks:选项需要一个参数 -- h Usage: badblocks [-b block_size] [-i input_file Badblocks 命令将会跳过对这些已知是坏块的区块检查。如果 input_file 参数是“-”,则列表从标准输入读入。 写入扫描速度很低,所以应该只扫描只读扫描时候发现错误的部分 数据安全: badblocks -n -b 4096 -c 16 -s /dev/sdx -o blocks-list 不保留数据: badblocks 参考 调试笔记 — eMMC坏块测试 Android性能分析之emmc坏块测试 badblocks坏道检测 用badblocks检测硬盘坏道 Linux 磁盘维护 : e2fsck 命令详解
#加载配置文件启动 提示:更多smart使用及配置参考:https://www.smartmontools.org/wiki/TocDoc badblocks 检测硬盘 badblocks概述 badblocks命令可以检查磁盘装置中损坏的区块。 语法: badblocks [-svw][-b ][-o ][磁盘装置][磁盘区块数][启始区块] 参数: -b 指定磁盘的区块大小,单位为字节。 -o 将检查的结果写入指定的输出文件。 badblocks使用示例 badblocks检测磁盘坏块: badblocks -s -v /dev/sda1 #显示进度和执行检查的详细情况 # badblocks -s -v /dev/sda # badblocks -s -w -v /dev/sda2 #显示进度并且以写入的方式检测同时显示详细情况 注意:不能以写的方式检测已经挂载的硬盘
具体方法如下: badblocks 使用 badblocks 工具来检查坏扇区 badblocks 工具可以扫描硬盘或外部驱动器等存储设备,查找其中的坏扇区。 第二步:然后扫描您的Linux磁盘驱动器以检查不良扇区/块: sudo badblocks -v /dev/sda10 > badsectors.txt 在刚才提到的命令里,badblocks 正在检查 总结 在本文中,我们介绍了如何通过 badblocks 和 smartmontools 在 Linux 磁盘上检测和处理坏扇区。监控存储设备的健康状况非常重要,而这些工具让这一过程变得简单明了。
> /proc/sys/vm/drop_caches----[iotop]#记录io日志iotop -ot > iotop.log----[gcc]gcc -o t1 -g test.c ----[badblocks ]#坏块检查badblocks -s -v -o /root/badblocks.log /dev/sda----[vim]:set hls #打开高亮:set nohls #关闭高亮----[sysbench
Linux 磁盘管理命令:hdparm设置磁盘参数、mkswap建立交换分区、swapon使用交换空间、sync写入磁盘、 e2label设置卷标、 badblocks检查磁盘hdparm:设置磁盘参数作用 用法:badblocks 选项 device [last_block start_count 主要选项如下:命令 描述 案例练习以 4096 字节的一个区块(Block)为例,每个区块检查 16 次,将结果输入 badblocks-list (badblocks-list 是一个文本文件)。 #badblocks -b 4096 /dev/hda1 -o badblocks-list如果硬盘正常的话,badblocks-list 中应该是没有任何内容的。
restart 即可生效 其他和smartd.conf相关的配置可参见: http://smartmontools.sourceforge.net/man/smartd.conf.5.html 使用 badblocks 检测硬盘坏块 badblocks命令可以检查磁盘装置中损坏的区块。 语法与参数: 语法:badblocks [-svw][-b ][-o ][磁盘装置][磁盘区块数][启始区块]参数: -b 指定磁盘的区块大小,单位为字节。-o 将检查的结果写入指定的输出文件。 badblocks检测磁盘坏块: badblocks -s//显示进度 -v//显示执行详细情况 /dev/sda1 # badblocks -s -v /dev/sda 正在检查从 0 到 -s//显示进度 -w//以写去检测 -v//显示执行详细情况 /dev/sda2 # badblocks -w -s -v /dev/sda1 Checking for bad blocks in
superblock -j external_journal Set location of the external journal -l bad_blocks_file Add to badblocks list -L bad_blocks_file Set badblocks list 三、选项说明 -a 自动修复文件系统,不询问任何问题 -A 依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统
mkfs.ext4相关工具 主要在 buildroot/package/e2fsprogs e2fsprogs.mk E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_BADBLOCKS ) += usr/sbin/badblocks E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_CHATTR) += usr/bin/chattr E2FSPROGS_BINTARGETS E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_UUIDGEN) += usr/bin/uuidgen 打开对应的BR2_PACKAGE_E2FSPROGS_BADBLOCKS
dmesg cat /proc/cpuinfo free -h lshw lsblk lspci -tv lsusb -tv dmidecode hdparm -tT /dev/vdb badblocks
badblocks - 检查磁盘坏块。 九、备份与还原: tar - 打包与解包文件。 dd - 复制文件和转换格式。 十、安全与加密: cryptsetup - 设置加密设备。
, 如果对整个分区做全面清空,也可以用badblocks来实现, 比如 shred -u aaa 那么这样一来aaa永远不可能 被恢复了。 shred详细介绍,参考 man shred
quota mount mmount rmdir rmt stat tree umount ls quotacheck quotaoff lndir repquota quotaon 5、磁盘维护 badblocks
diskfailure=true:NoSchedule • 驱逐Pod:kubectl drain worker-node-7 --ignore-daemonsets --grace-period=300 临时用badblocks 和e2fsck标记坏块,强行让文件系统跳过这些坑 bash badblocks -sv /dev/nvme0n1 # 标记坏块 e2fsck -c /dev/nvme0n1 # 强制文件系统跳过坏道 •
不询问使用者意见,便自动修复文件系统; -b <superblock>:指定 superblock,而不使用预设的 superblock; -B <区块大小>:指定区块的大小,单位为字节; -c:一并执行 badblocks
mlabel、mmd、mmount、mrd、mzip、pwd、quota、quotacheck、quotaoff、quotaon、repquota、rmdir、rmt、stat、tree、umount磁盘维护badblocks
4、检查硬盘或软盘扇区有没有坏轨:badblocks(s:在屏幕上列出进度、v:在屏幕上看到进度、w:使用写入的方式来测试)。 ?
hdparm -m # 参数值为整数值如8 /dev/sda 附:硬盘坏道修复方法 检查:smartctl -l selftest /dev/sda 卸载:umount /dev/sda* 修复:badblocks
mmd、mmount、mrd、mzip、pwd、quota、quotacheck、quotaoff、quotaon、repquota、rmdir、rmt、stat、tree、umount 磁盘维护 badblocks
superblock -j external_journal Set location of the external journal -l bad_blocks_file Add to badblocks list -L bad_blocks_file Set badblocks list -z undo_file Create an undo file 修复完成就可以进入系统了