GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was kann beim Einstellen der LTO-Verschlüsselung zu einem „Erkennungsfehler“ führen?

Lösung 1:

Wie üblich bedeuten stundenlange Fehlerbehebung nichts, aber das Posten einer Frage in einem öffentlichen Forum offenbart das Problem sofort.

Es gibt einen Fehler in Stenc 1.0.7, der einen Absturz verursacht, wenn Sie --detail verwenden auf einem leeren Band. Ich habe versucht, den Autor mit einer Lösung zu kontaktieren, kann ihn aber nicht erreichen.

Es scheint, dass dieser Absturz das Laufwerk in einem inkonsistenten Zustand zurücklässt, in dem es sich weigert, weitere Schlüssel zu akzeptieren. Den Fehler beheben und dann stenc --detail ausführen ohne absturz scheint das problem behoben zu sein. Ich kann jetzt beliebige Tasten beliebig oft setzen und es gab keine weiteren Probleme.

Wenn jemand anderes das gleiche Problem hat, in stenc-1.0.7/sec/scsiencrypt.cpp in Zeile 176 steht dort delete status; . Sie müssen direkt darunter eine neue Zeile hinzufügen, die status=NULL; lautet . Dies behebt einen Double-Free-Fehler, der den Absturz verursacht hat.

--- 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);

Lösung 2:

Beginnend mit CentOS 7.3 oder 7.4 (7.2 funktioniert) bin ich auf einen weiteren Illegal Request Error gestoßen, der zufällig erscheint, wenn ich versuche, die Verschlüsselung zu aktivieren.

Ich habe herausgefunden, dass einige Reservebits im SCSI-Befehl nicht richtig initialisiert sind. Beim Setzen von #define DEBUGSCSI man sieht, dass diese Bits bei jedem Aufruf variieren.

Fügen Sie den folgenden memset() hinzu in scsiencrypt.cpp um es zu beheben:

SCSIWriteEncryptOptions():

...

  SSP_KAD kad;

=> memset(&kad,0,sizeof(kad));

  kad.type=0x00;

Lösung 3:

Ich verbrachte einen Tag damit, zu debuggen, warum unser Quantum LTO7 HH-Laufwerk immer wieder einen Sense-Fehler ausgab, als wir die Verschlüsselung darauf mit einem vollständig gepatchten stenc konfigurierten 1.0.7, unabhängig von den beim Hochladen verwendeten Optionen.

Schließlich haben wir herausgefunden, dass es in unserem Fall daran liegt, dass wir beim Generieren des Schlüssels einen Schlüsseldeskriptor festlegen – einen Schlüssel mit stenc -g 256 -k test.key -kd TESTKEY generieren und dann mit stenc -f /dev/nst0 -e on -k test.key -a 1 hochladen würde fehlschlagen, während stenc -g 256 -k test.key dann würde das Hochladen mit demselben Befehl erfolgreich sein. Hoffe, das hilft jemandem!


Linux
  1. Fehlerbehebung „Inakzeptables TLS-Zertifikat“-Fehler in Linux

  2. Was ist ein 500 Internal Server Error?

  3. Woher weiß ich, was die „Errno“ bedeutet?

  4. Was ist :-!! im C-Code?

  5. Was passiert, wenn sich ein Thread verzweigt?

FEHLER:„Wrapt“ kann nicht deinstalliert werden. bei der Installation von tensorflow-gpu~=1.14

Was tun, wenn Strg + C einen Prozess nicht beenden kann?

Was könnte seltsame Zeichen in Vim verursachen?

Was könnte dazu führen, dass der Dateibefehl in Linux eine Textdatei als Binärdaten meldet?

startx-Fehler beim Einrichten des X-Servers auf Archlinux

Was kann ein Signal 11 verursachen?