diff --git a/src/fs/luks.cpp b/src/fs/luks.cpp index 3d51077..9637eba 100644 --- a/src/fs/luks.cpp +++ b/src/fs/luks.cpp @@ -454,7 +454,7 @@ FileSystem::Type luks::type() const QString luks::suggestedMapperName(const QString& deviceNode) const { - return QStringLiteral("luks-") + readUUID(deviceNode); + return QStringLiteral("luks-") + readOuterUUID(deviceNode); } QString luks::readLabel(const QString& deviceNode) const @@ -507,6 +507,11 @@ QString luks::readUUID(const QString& deviceNode) const { if (m_isCryptOpen && m_innerFs) return m_innerFs->readUUID(mapperName(deviceNode)); + return readOuterUUID(deviceNode); +} + +QString luks::readOuterUUID(const QString &deviceNode) const +{ ExternalCommand cmd(QStringLiteral("cryptsetup"), { QStringLiteral("luksUUID"), deviceNode }); if (cmd.run()) { diff --git a/src/fs/luks.h b/src/fs/luks.h index 1fb1573..f6c13f8 100644 --- a/src/fs/luks.h +++ b/src/fs/luks.h @@ -149,6 +149,9 @@ public: static QString getPayloadOffset(const QString& deviceNode); static bool canEncryptType(FileSystem::Type type); +protected: + virtual QString readOuterUUID(const QString& deviceNode) const; + public: static CommandSupportType m_GetUsed; static CommandSupportType m_GetLabel;