解決策 1:
いつものように、何時間もトラブルシューティングをしても意味がありませんが、公開フォーラムに質問を投稿すると、すぐに問題が明らかになります。
--detail
を使用するとクラッシュするバグが stenc 1.0.7 にあります。 空のテープで。作者に連絡して修正を試みましたが、連絡が取れません.
このクラッシュにより、ドライブは一貫性のない状態のままになり、それ以上のキーを受け入れることを拒否しているようです。バグを修正してから stenc --detail
を実行する クラッシュなしで問題が解決したようです。任意のキーを何度でも設定できるようになり、それ以上の問題はありません.
他の誰かが同じ問題を抱えている場合は、stenc-1.0.7/sec/scsiencrypt.cpp
で 176 行目に delete status;
と書かれています .このすぐ下に status=NULL;
という新しい行を追加する必要があります .これにより、クラッシュの原因となった double-free エラーが修正されます。
--- 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);
解決策 2:
CentOS 7.3 または 7.4 (7.2 は動作) 以降、暗号化を有効にしようとするとランダムに表示される別の Illegal Request Error に遭遇しました。
SCSI コマンドの一部の予約ビットが正しく初期化されていないことがわかりました。 #define DEBUGSCSI
を設定する場合 これらのビットは呼び出しごとに異なることがわかります。
次の memset()
を追加します scsiencrypt.cpp
で 修正するには:
SCSIWriteEncryptOptions():
...
SSP_KAD kad;
=> memset(&kad,0,sizeof(kad));
kad.type=0x00;
解決策 3:
完全にパッチを適用した stenc
を使用して暗号化を構成しているときに、Quantum LTO7 HH ドライブが Sense エラーを出し続ける理由をデバッグするのに 1 日を費やしました アップロード時に使用したオプションに関係なく、1.0.7.
最後に、私たちの場合、キーを生成するときにキー記述子を設定したためであることがわかりました – 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
の間、失敗します その後、同じコマンドを使用してアップロードすると成功します。これが誰かの役に立てば幸いです!