AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 864580
Accepted
Malvineous
Malvineous
Asked: 2017-07-22 19:32:10 +0800 CST2017-07-22 19:32:10 +0800 CST 2017-07-22 19:32:10 +0800 CST

设置 LTO 加密时,什么会导致“感知错误”?

  • 772

我正在尝试在 Linux 下的 LTO-4 驱动器上设置加密密钥。我成功地做了一次,重启了驱动器,现在我无法让驱动器再次接受密钥。

我正在使用的命令是这样的:

$ stenc -f /dev/nst0 -a 1 -e on -k test.key
Provided key length is 256 bits.
Key checksum is 7a43.
Turning on encryption on device '/dev/nst0'...
Sense Code:              Illegal Request (0x05)
 ASC:                    0x26
 ASCQ:                   0x00
 Additional data:        0x00000000000000000000000000000000
Error: Turning encryption on for '/dev/nst0' failed!
Usage: stenc --version | -g <length> -k <file> [-kd <description>] | -f <device> [--detail] [-e <on/mixed/rawread/off> [-k <file>] [-kd <description>] [-a <index>] [--protect | --unprotect] [--ckod] ]
Type 'man stenc' for more information.

驱动器是 HP,所以我需要使用,-a 1但是不同的值不会改变结果。改用/dev/sg1也有同样的问题。

磁带是 LTO-4,因此支持加密:

$ mt-st -f /dev/nst0 status
SCSI 2 tape drive:
File number=0, block number=0, partition=0.
Tape block size 0 bytes. Density code 0x46 (LTO-4).
Soft error count since last status=0
General status bits on (41010000):
 BOT ONLINE IM_REP_EN

我运行了 HP Tape & Library Tools 并使用同一磁带进行了加密测试,它通过了,所以驱动器似乎能够设置密钥,只是stenc由于某种原因不能通过程序。

我发现一个 SCSI 手册说 ASC 0x26 是“参数列表中的无效字段”,这并没有真正解释太多。

有没有其他人以前见过这个错误,或者有任何想法如何让驱动器接受密钥?

linux
  • 4 4 个回答
  • 872 Views

4 个回答

  • Voted
  1. Best Answer
    Malvineous
    2017-07-22T19:43:33+08:002017-07-22T19:43:33+08:00

    像往常一样,数小时的故障排除毫无意义,但在公共论坛上发布问题会立即揭示问题。

    stenc 1.0.7 中有一个错误,如果--detail在空白磁带上使用会导致崩溃。我试图联系作者进行修复,但无法联系到他。

    似乎这次崩溃使驱动器处于不一致的状态,它拒绝接受更多的密钥。修复错误然后在stenc --detail没有崩溃的情况下运行似乎已经解决了这个问题。我现在可以多次设置任何键,并且没有其他问题。

    如果其他人有同样的问题,在stenc-1.0.7/sec/scsiencrypt.cpp第 176 行它说delete status;。您需要在此下方直接添加一个新行,内容为status=NULL;. 这修复了导致崩溃的双重释放错误。

    --- a/src/scsiencrypt.cpp
    +++ b/src/scsiencrypt.cpp
    @@ -174,6 +174,7 @@ SSP_NBES* SSPGetNBES(string tapeDevice,bool retry){
                if(status->nbes.encryptionStatus!=0x01)break;
                if(moves>=MAX_TAPE_READ_BLOCKS)break;
                delete status;
    +           status=NULL; //double free bug fix
                if(!moveTape(tapeDevice,1,true))break;
                moves++;
                status=SSPGetNBES(tapeDevice,false);
    
    • 6
  2. lan
    2018-01-10T10:58:02+08:002018-01-10T10:58:02+08:00

    从 CentOS 7.3 或 7.4(7.2 有效)开始,我在尝试启用加密时遇到了另一个随机出现的非法请求错误。

    我发现 SCSI 命令中的一些保留位未正确初始化。设置时#define DEBUGSCSI可以看到这些位在每次调用时都不同。

    添加以下内容memset()以scsiencrypt.cpp修复它:

    SCSIWriteEncryptOptions():
    
    ...
    
      SSP_KAD kad;
    
    => memset(&kad,0,sizeof(kad));
    
      kad.type=0x00;
    
    • 3
  3. sgielen
    2018-03-20T06:18:05+08:002018-03-20T06:18:05+08:00

    我花了一天时间调试为什么我们的 Quantum LTO7 HH 驱动器在我们使用完全修补的 1.0.7 配置加密时不断给出 Sense 错误stenc,而不管上传时使用的选项如何。

    最后,我们发现在我们的例子中,这是因为我们在生成密钥时设置了一个密钥描述符——使用生成密钥stenc -g 256 -k test.key -kd TESTKEY然后上传它stenc -f /dev/nst0 -e on -k test.key -a 1会失败,而stenc -g 256 -k test.key使用相同的命令上传会成功。希望这对某人有帮助!

    • 2
  4. Dark
    2020-03-09T07:13:53+08:002020-03-09T07:13:53+08:00

    我通过更新固件解决了 IBM SCSI LTO-4 驱动器上的一个稍微不同stenc的错误。出厂固件似乎根本不支持加密。

    我的错误是:

    Status for /dev/nst0
    --------------------------------------------------
    Device Mfg:              IBM     
    Product ID:              ULTRIUM-TD4     
    Product Revision:        74H6
    Sense Code:              Illegal Request (0x05)
     ASC:                    0x24
     ASCQ:                   0x00
    

    这些固件位于 IBM 网站的付费墙后面,但您可以在 IBM FTP 服务器上稍作挖掘(它们不够公开,我觉得我可以直接链接),或者在联想网站上:https ://datacentersupport.lenovo.com/gb/en/products/storage/tape-and-backup/ts3200/6173/downloads/driver-list/component?name=Software%20and%20Utilities

    • 1

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve