1. 基本概念

Sanitize Device属于ATA指令中的一个功能特性。通过FEATURE字段值来识别当前指令属于Sanitize Device特性中具体哪个子命令

Table 81 — Sanitize Device FEATURE field values

Feature Value

Command

0000h

SANITIZE STATUS EXT (see 7.36.7)

0001h..0010h

Reserved

0011h

CRYPTO SCRAMBLE EXT (see 7.36.3)

0012h

BLOCK ERASE EXT (see 7.36.2)

0013h

Reserved

0014h

OVERWRITE EXT (see 7.36.4)

0015h..001Fh

Reserved

0020h

SANITIZE FREEZE LOCK EXT (see 7.36.6)

0021h..003Fh

Reserved

0040h

SANITIZE ANTIFREEZE LOCK EXT (see 7.36.5)

0041h..FFFFh

Reserved

2. 指令介绍

2.1 BLOCK ERASE EXT – B4h/0012h, Non-Data

该指令实现Block erase的擦除操作。该指令会擦除用户空间,不管该地址空间有没有被使用。擦除完成后地址空间数据无法恢复。

该指令只有在以下条件均满足情况下可执行:

(1)支持Sanitize Device feature set

(2)支持BLOCK ERASE EXT command

(3)LBA字段值必须为426B_4572h

(4)Device状态必须为SD0: Sanitize Idle state,SD3: Sanitize Operation Failed state或者SD4: Sanitize Operation Succeeded state

2.2 CRYPTO SCRAMBLE EXT – B4h/0011h, Non-Data

该指令用来实现夹密加扰的擦除功能。该指令只有在用户空间全部受加密影响时才会支持。

该指令只有在以下条件均满足情况下可执行:

(1)支持Sanitize Device feature set

(2)支持CRYPTO SCRAMBLE EXT command

(3)LBA字段值必须为4372_7970h

(4)Device状态必须为SD0: Sanitize Idle state,SD3: Sanitize Operation Failed state或者SD4: Sanitize Operation Succeeded state

2.3 OVERWRITE EXT – B4h/0014h, Non-Data

该指令通过覆盖写的方式来实现擦除功能。host可以在LBA字段中指定的4字节固定数用来复写用户空间。同时可以通过COUNT字段中指定覆写次数,以及是否需要在多次覆写过程中反转四字节(不太理解,原文如下)

The OVERWRITE EXT command starts an overwrite sanitize operation (i.e., a sanitize operation (see 4.17.4) to

overwrite the internal media with a constant value) that fills physical sectors within the Sanitize operation scope

(see 4.17.2) with a four byte pattern specified by the OVERWRITE PATTERN field (see 7.36.4.3.4) of the command.

The host also specifies a count for multiple overwrites (see 7.36.4.3.3) and whether to invert the four byte pattern

between consecutive overwrite passes (see 7.36.4.3.2).

After a successful overwrite sanitize operation, affected data blocks shall be readable without error.

该指令只有在以下条件均满足情况下可执行:

(1)支持Sanitize Device feature set

(2)支持OVERWRITE EXT command

(3)LBA[47:32]字段的值必须为4F57h

(4)Device状态必须为SD0: Sanitize Idle state,SD3: Sanitize Operation Failed state或者SD4: Sanitize Operation Succeeded state

2.4 SANITIZE ANTIFREEZE LOCK EXT – B4h/0040h, Non-Data

SANITIZE FREEZE LOCK EXT – B4h/0020h, Non-Data

(1)SANITIZE ANTIFREEZE LOCK EXT指令发送后,后续所有的SANITIZE FREEZE LOCK EXT commands都直接返回abort,除非device把Sanitize Antifreeze value清除为0。

如果device在收到SANITIZE ANTIFREEZE LOCK EXT command并返回指令正常执行完成,device会清除Sanitize Antifreeze value值为0。

(2)The SANITIZE FREEZE LOCK EXT command导致除了SANITIZE STATUS EXT command以外的其他指令都返回abort,直到系统重新上电复位

2.5 SANITIZE STATUS EXT – B4h/0000h, Non-Data

该指令返回当前或者之前已经完成的擦除操作的信息:

(1)正在执行擦除操作的进度

(2)上一次的Sanitize Device指定是否成功

(3)是否收到一条不支持的Sanitize Device指令

3. 全盘擦除实现

启动一次Sanitize操作,主机将发出以下Sanitize指令之一:

a) CRYPTO SCRAMBLE EXT command

b) BLOCK ERASE EXT command

c) OVERWRITE EXT command

【注意】

(1)Sanitize操作在指令返回响应后仍然在执行Sanitize的操作(异步执行)

(2)任何中断都不会打断Sanitize操作

(3)通过SANITIZE STATUS EXT command可以获取最近一次Sanitize操作的执行状态,正在执行或完成

4. Sanitize状态机

Sanitize Device相关推荐

  1. Device Self-test

    DST Device Self-test命令 Command Completion Device Self-test Operations (Optional) Short Device Self-T ...

  2. NVME之Device Self-test Operations

    1.概念与介绍 Device Self-test Operations是一种诊断测试序列,用于测试控制器的完整性和功能,并包括与namespaces关联的媒体的测试. 在log page中The se ...

  3. Erase/Trim/Discard/Sanitize 区别详解

     针对JEDEC协议中几个抹除资料的命令,大家都很容易将其混淆.现在就这四个抹除命令作详细介绍,希望能帮助大家分清各个命令的具体含义及用法. Erase 1.1擦除组(EraseGroup) Er ...

  4. Erase/Trim/Discard/Sanitize

    针对JEDEC协议中几个抹除资料的命令,大家都很容易将其混淆.现在就这四个抹除命令作详细介绍,希望能帮助大家分清各个命令的具体含义及用法. Erase 1.1擦除组(EraseGroup) Erase ...

  5. Could not install packages due to an EnvironmentError: [Errno 28] No space left on device

    Could not install packages due to an EnvironmentError: [Errno 28] No space left on device 1. 问题现象 安装 ...

  6. RuntimeError: Expected object of device type cuda but got device type cpu for argument pytorch数据位置

    RuntimeError: Expected object of device type cuda but got device type cpu for argument #2 'target' i ...

  7. adb.exe: device offline

    adb devices 的时候提示:adb.exe: device offline 处理方法: 1 adb kill-server 2 adb start-server 3 重新连接adb

  8. 下一版本Windowsreg; CE 开发工具Smart Device Extensions for Microsoft Visual Studioreg; .NET...

    初识 Smart Device Extensions Larry Roof Tonked.com 2001年10月23日 上个月我曾说过我会前往 Microsoft 学院,了解下一版本的小型工具的情况 ...

  9. java openfile busy_android java.io.IOException: open failed: EBUSY (Device or resource busy)

    今天遇到一个奇怪的问题, 测试在程序的下载界面,下载一个文件第一次下载成功,删除后再下载结果下载报错, 程序:file.createNewFile(); 报错:java.io.IOException: ...

最新文章

  1. 9、计算机图形学——纹理的应用(环境贴图、凸凹贴图、法线贴图以及位移贴图)
  2. LeetCode 205 Isomorphic Strings(同构的字符串)(string、vector、map)(*)
  3. python方法和函数的格式是完全一样的_【python基础语法】常用内置函数、关键字、方法和之间的区别(小结)...
  4. 静态函数一个有用的设计模式
  5. IDE使用经验——阿里代码规范 Eclipse格式化代码配置
  6. WCF入门到精通(二)——契约
  7. 资深技术专家崮德在阿里管理研发团队的实践和思考
  8. C/C++——各种类型int、long、double、char表示范围(最大最小值)
  9. linux内核实时调度,基于Linux内核的实时调度机制的研究和实现
  10. ruby学习笔记(11)--symbol与hash参数
  11. 利用第三方rec解锁安卓手机锁屏密码
  12. 关于win10X64 连接oracle
  13. IOS 开发必备网址
  14. 高斯RBF核函数中Sigma取值和SVM分离面的影响
  15. 保存视频文件到相册视频的时长为0
  16. 边际效用递减推导需求曲线_软件需求曲线
  17. cannot connect to 192.168.137.137:5555: 由于目标计算机积极拒绝,无法连接。
  18. 【mac 环境】邮箱密码修改后,foxmail无法正常接收邮件
  19. 成为明星程序员的独特秘密
  20. 中间件 | Redis - [数据类型 指令]

热门文章

  1. 知行大数据分析平台需求说明
  2. 按键精灵刷阿里妈妈广告联盟源码 V1.1版
  3. java——JDK组成、跨平台原理
  4. YAD2K: Yet Another Darknet 2 Keras
  5. C# 最小二乘法拟合曲线成直线
  6. 管理信息系统 第七版 第10章 课后习题
  7. iPhone锁屏字体
  8. KAWA-STAR股票图形分析小工具
  9. 用友网络并购秉钧网络 加速布局企业互联网服务
  10. 笔记:惠普存储集群忘记密码重置方法