特性配置 - 深入分析:Sanitize 命令中的字段与行为 (第297页)
深入分析:Sanitize 命令中的字段与行为
Sanitize 命令的作用与工作流程
Sanitize 命令是用于执行数据清除操作的重要命令,涵盖了块擦除(Block Erase)、覆盖擦除(Overwrite)、加密擦除(Crypto Erase)等不同类型。该命令设计为后台操作,即命令的完成并不表示数据擦除操作已完成,擦除过程将在后台进行。
命令 Dword 10 中的关键字段
- Allow Unrestricted Sanitize Exit (AUSE):
-
该字段决定了
Sanitize操作是否在无约束的完成模式下执行。如果设置为1,则表示Sanitize操作将在无约束模式下执行。如果设置为0,则表示在限制模式下执行擦除操作。如果Sanitize Action字段被设置为001b(即退出故障模式),则此位被忽略。 -
Sanitize Action (SANACT):
SANACT字段决定了擦除操作的类型,具体操作值如下:000b:保留001b:退出故障模式010b:开始块擦除操作011b:开始覆盖擦除操作100b:开始加密擦除操作101b to 111b:保留
命令 Dword 11 中的关键字段
- Overwrite Pattern (OVRPAT):
- 如果
Sanitize Action字段被设置为011b(即覆盖擦除操作),此字段指定了一个 32 位的覆盖模式,用于擦写操作。此字段仅在进行覆盖擦除时有效,具体覆盖模式会根据设置的值进行写入。
命令完成与背景执行
- 命令完成:
- 当
Sanitize命令完成时,控制器会将完成队列条目发送到 Admin Completion Queue,指示命令执行的状态。由于擦除操作在后台进行,命令的完成并不意味着数据擦除已完成。相反,控制器会更新Sanitize Status日志页面,并在命令完成后记录相关状态。
命令特定状态值
Sanitize 命令的特定状态值(如图 305 所示)指示不同的错误或限制条件,具体包括:
- 0Bh - 固件激活需要常规重置:
-
如果固件激活挂起并且需要常规重置,则无法启动
Sanitize操作。 -
10h - 固件激活需要 NVM 子系统重置:
-
如果固件激活挂起并且需要 NVM 子系统重置,则无法启动
Sanitize操作。 -
11h - 固件激活需要控制器级重置:
-
如果固件激活挂起并且需要控制器级重置,则无法启动
Sanitize操作。 -
20h - 命名空间是写保护的:
-
如果命名空间被写保护,则禁止执行
Sanitize操作(参见 8.12 节)。 -
23h - 启用持久内存区域时禁止
Sanitize: - 如果启用了持久内存区域,则禁止进行
Sanitize操作。
总结
Sanitize 命令是一个关键的命令,主要用于数据清除。它涉及多种擦除模式,并且严格限制与固件激活、写保护、持久内存区域等其他功能的交互。通过背景执行方式,擦除操作不会在命令完成时立即影响数据,但会在后台持续进行,以确保数据完全清除。通过理解这些字段与操作,用户可以有效地控制和管理数据擦除过程,确保存储介质的安全性。