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"),
|
||||
partitionPath });
|
||||
|
||||
QString udevTypeRegExp = QStringLiteral("ID_FS_TYPE=(\\w+)");
|
||||
QString udevVersionRegExp = QStringLiteral("ID_FS_VERSION=(\\w+)");
|
||||
QString typeRegExp = QStringLiteral("ID_FS_TYPE=(\\w+)");
|
||||
QString versionRegExp = QStringLiteral("ID_FS_VERSION=(\\w+)");
|
||||
|
||||
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) {
|
||||
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-License-Identifier: GPL-3.0-or-later
|
||||
|
@ -15,6 +15,7 @@ QStringLiteral("udevadm"),
|
|||
|
||||
//Core programs
|
||||
QStringLiteral("blockdev"),
|
||||
QStringLiteral("blkid"),
|
||||
QStringLiteral("partx"),
|
||||
QStringLiteral("sfdisk"),
|
||||
QStringLiteral("wipefs"),
|
||||
|
|
Loading…
Reference in New Issue