Add blkid fallback for file system detection if udev method fails.
This commit is contained in:
parent
ae05c031b7
commit
30bd4d62a9
|
@ -464,12 +464,20 @@ FileSystem::Type SfdiskBackend::detectFileSystem(const QString& partitionPath)
|
||||||
QStringLiteral("--query=property"),
|
QStringLiteral("--query=property"),
|
||||||
partitionPath });
|
partitionPath });
|
||||||
|
|
||||||
QString udevTypeRegExp = QStringLiteral("ID_FS_TYPE=(\\w+)");
|
QString typeRegExp = QStringLiteral("ID_FS_TYPE=(\\w+)");
|
||||||
QString udevVersionRegExp = QStringLiteral("ID_FS_VERSION=(\\w+)");
|
QString versionRegExp = QStringLiteral("ID_FS_VERSION=(\\w+)");
|
||||||
|
|
||||||
QString name = {};
|
QString name = {};
|
||||||
|
|
||||||
rval = runDetectFileSystemCommand(udevCommand, udevTypeRegExp, udevVersionRegExp, name);
|
rval = runDetectFileSystemCommand(udevCommand, typeRegExp, versionRegExp, name);
|
||||||
|
|
||||||
|
// Fallback to blkid. blkid has slightly worse detection but it works on whole block device filesystems.
|
||||||
|
if (rval == FileSystem::Type::Unknown) {
|
||||||
|
ExternalCommand blkidCommand(QStringLiteral("blkid"), { partitionPath });
|
||||||
|
typeRegExp = QStringLiteral("TYPE=\"(\\w+)\"");
|
||||||
|
versionRegExp = QStringLiteral("SEC_TYPE=\"(\\w+)\"");
|
||||||
|
rval = runDetectFileSystemCommand(blkidCommand, typeRegExp, versionRegExp, name);
|
||||||
|
}
|
||||||
|
|
||||||
if (rval == FileSystem::Type::Unknown) {
|
if (rval == FileSystem::Type::Unknown) {
|
||||||
qWarning() << "unknown file system type " << name << " on " << partitionPath;
|
qWarning() << "unknown file system type " << name << " on " << partitionPath;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
SPDX-FileCopyrightText: 2018-2019 Andrius Štikonas <andrius@stikonas.eu>
|
SPDX-FileCopyrightText: 2018-2020 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
SPDX-FileCopyrightText: 2019 Shubham Jangra <aryan100jangid@gmail.com>
|
SPDX-FileCopyrightText: 2019 Shubham Jangra <aryan100jangid@gmail.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
@ -15,6 +15,7 @@ QStringLiteral("udevadm"),
|
||||||
|
|
||||||
//Core programs
|
//Core programs
|
||||||
QStringLiteral("blockdev"),
|
QStringLiteral("blockdev"),
|
||||||
|
QStringLiteral("blkid"),
|
||||||
QStringLiteral("partx"),
|
QStringLiteral("partx"),
|
||||||
QStringLiteral("sfdisk"),
|
QStringLiteral("sfdisk"),
|
||||||
QStringLiteral("wipefs"),
|
QStringLiteral("wipefs"),
|
||||||
|
|
Loading…
Reference in New Issue