Use batch mode of cryptsetup to format luks volume.

This commit is contained in:
Andrius Štikonas 2016-05-18 00:44:15 +01:00
parent e5d72b7d11
commit 47cb6752ba
1 changed files with 3 additions and 2 deletions

View File

@ -46,7 +46,7 @@ luks::luks(qint64 firstsector,
, m_isCryptOpen(false)
, m_isMounted(false)
{
// m_Create = findExternal(QStringLiteral("cryptsetup")) ? cmdSupportFileSystem : cmdSupportNone;
m_Create = findExternal(QStringLiteral("cryptsetup")) ? cmdSupportFileSystem : cmdSupportNone;
m_SetLabel = cmdSupportNone;
m_GetLabel = cmdSupportFileSystem;
m_UpdateUUID = findExternal(QStringLiteral("cryptsetup")) ? cmdSupportFileSystem : cmdSupportNone;
@ -88,10 +88,11 @@ bool luks::create(Report& report, const QString& deviceNode) const
ExternalCommand createCmd(report, QStringLiteral("cryptsetup"),
{ QStringLiteral("-s"),
QStringLiteral("512"),
QStringLiteral("--batch-mode"),
QStringLiteral("luksFormat"),
deviceNode });
if (!( createCmd.start(-1) &&
createCmd.write(m_passphrase.toUtf8() + '\n' + m_passphrase.toUtf8() + '\n') == 2*(m_passphrase.toUtf8().length() + 1) &&
createCmd.write(m_passphrase.toUtf8() + '\n') == m_passphrase.toUtf8().length() + 1 &&
createCmd.waitFor() && createCmd.exitCode() == 0))
{
return false;