使用hdparm命令发送ATA“Secure Erase”指令恢复SSD硬盘的写性能
2010-10-18 21:44
579 查看
ntel MLC SSD硬盘随着使用会产生很碎片,随着碎片的增加性能会大大降低。如果硬盘上的数据可以备份到别外,然后就可以用hdparm发送ATA “Secure Erase”指令去清空SSD硬盘中的数据的方法,把硬盘的写性能恢复到没有碎片时的状态。
注意: 这个操作会删除硬盘上所有的数据,而且这些数据不能被恢复。
注意:如果你不幸碰到了的操作系统内核bugs或SSD硬盘的fireware bugs,可能会硬盘不可写或操作系统crash。
发送 ATA Security Erase指令时需要先给硬盘设置一个密码,当然后面我们再发ATA Security Erase指令后这个密码会被删除掉的。
操作步骤:
第一步:
先查看硬盘的状态,X代表sda,sdb,sdc等具体你要操作的硬盘:
hdparm -I /dev/X
主要看输出中的Security部分,如果结果中出现“not frozen”,那么这个硬盘是可以用ATA Security Erase命令去清除硬盘碎片的,
Security:
Master password revision code = 65534
supported
not enabled
not locked
not frozen
not expired: security count
如果结果是“frozen”的,有可能是主机的BIOS禁止发送ATA Security Erase指令,这需要找到BIOS中打开这个限制。
第二步:设置一个密码
hdparm --user-master u --security-set-pass user123 /dev/X
user123是设置的一个密码.
#hdparm --user-master u --security-set-pass user123 /dev/sde
security_password="user123"
/dev/sde:
Issuing SECURITY_SET_PASS command, password="user123", user=user, mode=high
SECURITY_SET_PASS: Invalid exchange
结果可能是“SECURITY_SET_PASS: Invalid exchange”,但密码也可能是设置上了,可以使用hdparm -I /dev/X检查是否设置上了,输出结果应该是“enabled”:
Security:
Master password revision code = 65534
supported
enabled
not locked
not frozen
not expired: security count
第三步:执行删除操作
hdparm --user-master u --security-erase user123 /dev/X
#hdparm --user-master u --security-erase user123 /dev/sde
security_password="user123"
/dev/sde:
Issuing SECURITY_ERASE command, password="user123", user=user
SECURITY_ERASE: Invalid exchange
然后再检查Security被禁止了:
使用hdparm -I /dev/X检查是否设置上了,输出结果应该是“not enabled”:
Security:
Master password revision code = 65534
supported
not enabled
not locked
not frozen
not expired: security count
注意: 这个操作会删除硬盘上所有的数据,而且这些数据不能被恢复。
注意:如果你不幸碰到了的操作系统内核bugs或SSD硬盘的fireware bugs,可能会硬盘不可写或操作系统crash。
发送 ATA Security Erase指令时需要先给硬盘设置一个密码,当然后面我们再发ATA Security Erase指令后这个密码会被删除掉的。
操作步骤:
第一步:
先查看硬盘的状态,X代表sda,sdb,sdc等具体你要操作的硬盘:
hdparm -I /dev/X
主要看输出中的Security部分,如果结果中出现“not frozen”,那么这个硬盘是可以用ATA Security Erase命令去清除硬盘碎片的,
Security:
Master password revision code = 65534
supported
not enabled
not locked
not frozen
not expired: security count
如果结果是“frozen”的,有可能是主机的BIOS禁止发送ATA Security Erase指令,这需要找到BIOS中打开这个限制。
第二步:设置一个密码
hdparm --user-master u --security-set-pass user123 /dev/X
user123是设置的一个密码.
#hdparm --user-master u --security-set-pass user123 /dev/sde
security_password="user123"
/dev/sde:
Issuing SECURITY_SET_PASS command, password="user123", user=user, mode=high
SECURITY_SET_PASS: Invalid exchange
结果可能是“SECURITY_SET_PASS: Invalid exchange”,但密码也可能是设置上了,可以使用hdparm -I /dev/X检查是否设置上了,输出结果应该是“enabled”:
Security:
Master password revision code = 65534
supported
enabled
not locked
not frozen
not expired: security count
第三步:执行删除操作
hdparm --user-master u --security-erase user123 /dev/X
#hdparm --user-master u --security-erase user123 /dev/sde
security_password="user123"
/dev/sde:
Issuing SECURITY_ERASE command, password="user123", user=user
SECURITY_ERASE: Invalid exchange
然后再检查Security被禁止了:
使用hdparm -I /dev/X检查是否设置上了,输出结果应该是“not enabled”:
Security:
Master password revision code = 65534
supported
not enabled
not locked
not frozen
not expired: security count
相关文章推荐
- Eclipse中使用javap命令打出字节码虚指令
- 在C/C++代码中使用SSE等指令集的指令(5)SSE进行加法运算简单的性能测试
- 译文:使用MVC5的Entity Framework 6入门(四)——MVC程序中实体框架的连接恢复和命令拦截
- apache kafka性能测试命令使用和构建kafka-perf
- Linux下安装及使用mail命令发送邮件到指定邮箱
- 使用sdeexport和sdeimport命令对SDE数据库的备份、迁移或恢复
- Linux下使用mail命令发送邮件
- 问题解决——使用串口调试助手发送控制字符 协议指令 <ESC>!?
- Python编写的客户端给服务器发送指令执行相应的命令并返回结果
- 树莓派使用蓝牙4.0连接设备并发送指令
- 在Linux下使用命令发送邮件附件
- 在C/C++代码中使用SSE等指令集的指令(5)SSE进行加法运算简单的性能测试
- 转:Linux下mail命令附件发送使用技巧
- 在C/C++代码中使用SSE等指令集的指令(5)SSE进行加法运算简单的性能测试
- 使用sendfile() 提高网络文件发送性能
- Linux上使用mail命令发送带附件邮件
- 命令线程windbg之使用!list指令遍历双向链表
- git stash命令:保存工作现场,恢复工作现场 的使用方法
- 解析Mysql备份与恢复简单总结与tee命令的使用介绍
- 性能优化与故障排除百日谈(3)-监控-使用DBCC命令监控日志空间的使用情况