diff --git a/src/config.kcfg b/src/config.kcfg
index 3dc8637..28f06e4 100644
--- a/src/config.kcfg
+++ b/src/config.kcfg
@@ -60,7 +60,7 @@
-
+
220,205,175
187,249,207
@@ -86,6 +86,7 @@
33,137,108
250,230,255
242,155,104
+ 160,210,180
diff --git a/src/config/configurepagefilesystemcolors.ui b/src/config/configurepagefilesystemcolors.ui
index 70053a6..8bfa76d 100644
--- a/src/config/configurepagefilesystemcolors.ui
+++ b/src/config/configurepagefilesystemcolors.ui
@@ -483,7 +483,7 @@
-
- -
+
-
extended:
@@ -496,10 +496,10 @@
- -
+
-
- -
+
-
Qt::Horizontal
@@ -512,7 +512,7 @@
- -
+
-
unformatted:
@@ -525,10 +525,10 @@
- -
+
-
- -
+
-
Qt::Horizontal
@@ -541,7 +541,7 @@
- -
+
-
unknown:
@@ -554,10 +554,10 @@
- -
+
-
- -
+
-
Qt::Horizontal
@@ -590,6 +590,48 @@
-
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ lvm2 pv:
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+ false
+
+
+
+ -
+
+
diff --git a/src/fs/btrfs.cpp b/src/fs/btrfs.cpp
index f911608..a5370d7 100644
--- a/src/fs/btrfs.cpp
+++ b/src/fs/btrfs.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2010 by Volker Lanz *
+ * Copyright (C) 2012 by Volker Lanz *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
diff --git a/src/fs/btrfs.h b/src/fs/btrfs.h
index b8ceabb..c84be1b 100644
--- a/src/fs/btrfs.h
+++ b/src/fs/btrfs.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2010 by Volker Lanz *
+ * Copyright (C) 2012 by Volker Lanz *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
diff --git a/src/fs/exfat.cpp b/src/fs/exfat.cpp
index c6899e7..f111444 100644
--- a/src/fs/exfat.cpp
+++ b/src/fs/exfat.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2010 by Volker Lanz *
+ * Copyright (C) 2012 by Volker Lanz *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
diff --git a/src/fs/exfat.h b/src/fs/exfat.h
index 97ba1b8..b7a154e 100644
--- a/src/fs/exfat.h
+++ b/src/fs/exfat.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2010 by Volker Lanz *
+ * Copyright (C) 2012 by Volker Lanz *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
diff --git a/src/fs/filesystem.cpp b/src/fs/filesystem.cpp
index 0443b3c..6b1eecc 100644
--- a/src/fs/filesystem.cpp
+++ b/src/fs/filesystem.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008,2009 by Volker Lanz *
+ * Copyright (C) 2012 by Volker Lanz *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
@@ -178,6 +178,19 @@ bool FileSystem::backup(Report& report, const Device& sourceDevice, const QStrin
return false;
}
+/** Removes a FileSystem
+ @param report Report to write status information to
+ @param deviceNode the device node for the Partition the FileSystem is on
+ @return true if FileSystem is removed
+*/
+bool FileSystem::remove(Report& report, const QString& deviceNode) const
+{
+ Q_UNUSED(report);
+ Q_UNUSED(deviceNode);
+
+ return true;
+}
+
/** Checks a FileSystem for errors
@param report Report to write status information to
@param deviceNode the device node for the Partition the FileSystem is on
@@ -275,6 +288,7 @@ static const QString* typeNames()
i18nc("@item/plain filesystem name", "zfs"),
i18nc("@item/plain filesystem name", "exfat"),
i18nc("@item/plain filesystem name", "nilfs2"),
+ i18nc("@item/plain filesystem name", "lvm2 pv"),
};
return s;
diff --git a/src/fs/filesystem.h b/src/fs/filesystem.h
index 7002cd8..c60e3b7 100644
--- a/src/fs/filesystem.h
+++ b/src/fs/filesystem.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008,2009 by Volker Lanz *
+ * Copyright (C) 2012 by Volker Lanz *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
@@ -80,8 +80,9 @@ class FileSystem
Zfs = 21,
Exfat = 22,
Nilfs2 = 23,
+ Lvm2_PV = 24,
- __lastType = 24
+ __lastType = 25
};
/** The type of support for a given FileSystem action */
@@ -110,6 +111,7 @@ class FileSystem
virtual bool writeLabel(Report& report, const QString& deviceNode, const QString& newLabel);
virtual bool copy(Report& report, const QString& targetDeviceNode, const QString& sourceDeviceNode) const;
virtual bool backup(Report& report, const Device& sourceDevice, const QString& deviceNode, const QString& filename) const;
+ virtual bool remove(Report& report, const QString& deviceNode) const;
virtual bool check(Report& report, const QString& deviceNode) const;
virtual bool updateUUID(Report& report, const QString& deviceNode) const;
virtual QString readUUID(const QString& deviceNode) const;
diff --git a/src/fs/filesystemfactory.cpp b/src/fs/filesystemfactory.cpp
index b14ef65..a4c1284 100644
--- a/src/fs/filesystemfactory.cpp
+++ b/src/fs/filesystemfactory.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008 by Volker Lanz *
+ * Copyright (C) 2012 by Volker Lanz *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
@@ -34,6 +34,7 @@
#include "fs/jfs.h"
#include "fs/linuxswap.h"
#include "fs/luks.h"
+#include "fs/lvm2_pv.h"
#include "fs/nilfs2.h"
#include "fs/ntfs.h"
#include "fs/ocfs2.h"
@@ -70,6 +71,7 @@ void FileSystemFactory::init()
m_FileSystems.insert(FileSystem::Jfs, new FS::jfs(-1, -1, -1, QString()));
m_FileSystems.insert(FileSystem::LinuxSwap, new FS::linuxswap(-1, -1, -1, QString()));
m_FileSystems.insert(FileSystem::Luks, new FS::luks(-1, -1, -1, QString()));
+ m_FileSystems.insert(FileSystem::Lvm2_PV, new FS::lvm2_pv(-1, -1, -1, QString()));
m_FileSystems.insert(FileSystem::Nilfs2, new FS::nilfs2(-1, -1, -1, QString()));
m_FileSystems.insert(FileSystem::Ntfs, new FS::ntfs(-1, -1, -1, QString()));
m_FileSystems.insert(FileSystem::Ocfs2, new FS::ocfs2(-1, -1, -1, QString()));
@@ -95,6 +97,7 @@ void FileSystemFactory::init()
FS::jfs::init();
FS::linuxswap::init();
FS::luks::init();
+ FS::lvm2_pv::init();
FS::nilfs2::init();
FS::ntfs::init();
FS::ocfs2::init();
@@ -137,6 +140,7 @@ FileSystem* FileSystemFactory::create(FileSystem::Type t, qint64 firstsector, qi
case FileSystem::Jfs: fs = new FS::jfs(firstsector, lastsector, sectorsused, label); break;
case FileSystem::LinuxSwap: fs = new FS::linuxswap(firstsector, lastsector, sectorsused, label); break;
case FileSystem::Luks: fs = new FS::luks(firstsector, lastsector, sectorsused, label); break;
+ case FileSystem::Lvm2_PV: fs = new FS::lvm2_pv(firstsector, lastsector, sectorsused, label); break;
case FileSystem::Nilfs2: fs = new FS::nilfs2(firstsector, lastsector, sectorsused, label); break;
case FileSystem::Ntfs: fs = new FS::ntfs(firstsector, lastsector, sectorsused, label); break;
case FileSystem::Ocfs2: fs = new FS::ocfs2(firstsector, lastsector, sectorsused, label); break;
diff --git a/src/fs/luks.cpp b/src/fs/luks.cpp
index 9c88604..c6dfc13 100644
--- a/src/fs/luks.cpp
+++ b/src/fs/luks.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2010 by Volker Lanz *
+ * Copyright (C) 2012 by Volker Lanz *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
diff --git a/src/fs/luks.h b/src/fs/luks.h
index 177c432..ccf028b 100644
--- a/src/fs/luks.h
+++ b/src/fs/luks.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2010 by Volker Lanz *
+ * Copyright (C) 2012 by Volker Lanz *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
diff --git a/src/fs/lvm2_pv.cpp b/src/fs/lvm2_pv.cpp
new file mode 100644
index 0000000..2b7d564
--- /dev/null
+++ b/src/fs/lvm2_pv.cpp
@@ -0,0 +1,115 @@
+/***************************************************************************
+ * Copyright (C) 2012 by Volker Lanz *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
+ ***************************************************************************/
+
+#include "fs/lvm2_pv.h"
+
+#include "util/externalcommand.h"
+#include "util/capacity.h"
+
+#include
+
+namespace FS
+{
+ FileSystem::CommandSupportType lvm2_pv::m_GetUsed = FileSystem::cmdSupportNone;
+ FileSystem::CommandSupportType lvm2_pv::m_GetLabel = FileSystem::cmdSupportNone;
+ FileSystem::CommandSupportType lvm2_pv::m_Create = FileSystem::cmdSupportNone;
+ FileSystem::CommandSupportType lvm2_pv::m_Grow = FileSystem::cmdSupportNone;
+ FileSystem::CommandSupportType lvm2_pv::m_Shrink = FileSystem::cmdSupportNone;
+ FileSystem::CommandSupportType lvm2_pv::m_Move = FileSystem::cmdSupportNone;
+ FileSystem::CommandSupportType lvm2_pv::m_Check = FileSystem::cmdSupportNone;
+ FileSystem::CommandSupportType lvm2_pv::m_Copy = FileSystem::cmdSupportNone;
+ FileSystem::CommandSupportType lvm2_pv::m_Backup = FileSystem::cmdSupportNone;
+ FileSystem::CommandSupportType lvm2_pv::m_SetLabel = FileSystem::cmdSupportNone;
+ FileSystem::CommandSupportType lvm2_pv::m_UpdateUUID = FileSystem::cmdSupportNone;
+ FileSystem::CommandSupportType lvm2_pv::m_GetUUID = FileSystem::cmdSupportNone;
+
+ lvm2_pv::lvm2_pv(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label) :
+ FileSystem(firstsector, lastsector, sectorsused, label, FileSystem::Lvm2_PV)
+ {
+ }
+
+ void lvm2_pv::init()
+ {
+ m_Create = findExternal("lvm") ? cmdSupportFileSystem : cmdSupportNone;
+ m_Check = findExternal("lvm") ? cmdSupportFileSystem : cmdSupportNone;
+
+ m_GetLabel = cmdSupportCore;
+ m_UpdateUUID = findExternal("lvm") ? cmdSupportFileSystem : cmdSupportNone;
+
+ m_Copy = cmdSupportNone; // Copying PV can confuse LVM
+ m_Move = (m_Check != cmdSupportNone) ? cmdSupportCore : cmdSupportNone;
+
+ m_GetLabel = cmdSupportNone;
+ m_Backup = cmdSupportCore;
+ m_GetUUID = cmdSupportCore;
+ }
+
+ bool lvm2_pv::supportToolFound() const
+ {
+ return
+// m_GetUsed != cmdSupportNone &&
+// m_GetLabel != cmdSupportNone &&
+// m_SetLabel != cmdSupportNone &&
+ m_Create != cmdSupportNone &&
+ m_Check != cmdSupportNone &&
+ m_UpdateUUID != cmdSupportNone &&
+// m_Grow != cmdSupportNone &&
+// m_Shrink != cmdSupportNone &&
+// m_Copy != cmdSupportNone &&
+ m_Move != cmdSupportNone &&
+ m_Backup != cmdSupportNone &&
+ m_GetUUID != cmdSupportNone;
+ }
+
+ FileSystem::SupportTool lvm2_pv::supportToolName() const
+ {
+ return SupportTool("lvm2", KUrl("http://sourceware.org/lvm2/"));
+ }
+
+ qint64 lvm2_pv::maxCapacity() const
+ {
+ return Capacity::unitFactor(Capacity::Byte, Capacity::EiB);
+ }
+
+ bool lvm2_pv::check(Report& report, const QString& deviceNode) const
+ {
+ ExternalCommand cmd(report, "lvm", QStringList() << "pvck" << "-v" << deviceNode);
+ return cmd.run(-1) && cmd.exitCode() == 0;
+ }
+
+ bool lvm2_pv::create(Report& report, const QString& deviceNode) const
+ {
+ ExternalCommand cmd(report, "lvm", QStringList() << "pvcreate" << deviceNode);
+ return cmd.run(-1) && cmd.exitCode() == 0;
+ }
+
+ bool lvm2_pv::remove(Report& report, const QString& deviceNode) const
+ {
+// TODO: check if PV is a member of an exported VG
+ ExternalCommand cmd(report, "lvm", QStringList() << "pvremove" << "-ffy" << deviceNode);
+ cmd.run(-1);
+ return cmd.run(-1) && cmd.exitCode() == 0;
+ }
+
+ bool lvm2_pv::updateUUID(Report& report, const QString& deviceNode) const
+ {
+ ExternalCommand cmd(report, "lvm", QStringList() << "pvchange" << "-u" << deviceNode);
+ return cmd.run(-1) && cmd.exitCode() == 0;
+ }
+}
diff --git a/src/fs/lvm2_pv.h b/src/fs/lvm2_pv.h
new file mode 100644
index 0000000..753538c
--- /dev/null
+++ b/src/fs/lvm2_pv.h
@@ -0,0 +1,89 @@
+/***************************************************************************
+ * Copyright (C) 2012 by Volker Lanz *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
+ ***************************************************************************/
+
+#if !defined(LVM2_PV__H)
+
+#define LVM2_PV__H
+
+#include "util/libpartitionmanagerexport.h"
+
+#include "fs/filesystem.h"
+
+#include
+
+class Report;
+
+class QString;
+
+namespace FS
+{
+ /** LVM2 physical volume.
+ @author Andrius Štikonas
+ */
+ class LIBPARTITIONMANAGERPRIVATE_EXPORT lvm2_pv : public FileSystem
+ {
+ public:
+ lvm2_pv(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label);
+
+ public:
+ static void init();
+
+// virtual qint64 readUsedCapacity(const QString& deviceNode) const;
+ virtual bool check(Report& report, const QString& deviceNode) const;
+ virtual bool create(Report& report, const QString& deviceNode) const;
+ virtual bool remove(Report& report, const QString& deviceNode) const;
+// virtual bool resize(Report& report, const QString& deviceNode, qint64 length) const;
+// virtual bool writeLabel(Report& report, const QString& deviceNode, const QString& newLabel);
+ virtual bool updateUUID(Report& report, const QString& deviceNode) const;
+
+ virtual CommandSupportType supportGetUsed() const { return m_GetUsed; }
+ virtual CommandSupportType supportGetLabel() const { return m_GetLabel; }
+ virtual CommandSupportType supportCreate() const { return m_Create; }
+ virtual CommandSupportType supportGrow() const { return m_Grow; }
+ virtual CommandSupportType supportShrink() const { return m_Shrink; }
+ virtual CommandSupportType supportMove() const { return m_Move; }
+ virtual CommandSupportType supportCheck() const { return m_Check; }
+ virtual CommandSupportType supportCopy() const { return m_Copy; }
+ virtual CommandSupportType supportBackup() const { return m_Backup; }
+ virtual CommandSupportType supportSetLabel() const { return m_SetLabel; }
+ virtual CommandSupportType supportUpdateUUID() const { return m_UpdateUUID; }
+ virtual CommandSupportType supportGetUUID() const { return m_GetUUID; }
+
+// virtual qint64 minCapacity() const;
+ virtual qint64 maxCapacity() const;
+ virtual SupportTool supportToolName() const;
+ virtual bool supportToolFound() const;
+
+ public:
+ static CommandSupportType m_GetUsed;
+ static CommandSupportType m_GetLabel;
+ static CommandSupportType m_Create;
+ static CommandSupportType m_Grow;
+ static CommandSupportType m_Shrink;
+ static CommandSupportType m_Move;
+ static CommandSupportType m_Check;
+ static CommandSupportType m_Copy;
+ static CommandSupportType m_Backup;
+ static CommandSupportType m_SetLabel;
+ static CommandSupportType m_UpdateUUID;
+ static CommandSupportType m_GetUUID;
+ };
+}
+
+#endif
diff --git a/src/fs/nilfs2.cpp b/src/fs/nilfs2.cpp
index 2693e95..1fce21d 100644
--- a/src/fs/nilfs2.cpp
+++ b/src/fs/nilfs2.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2010 by Volker Lanz *
+ * Copyright (C) 2012 by Volker Lanz *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
diff --git a/src/fs/nilfs2.h b/src/fs/nilfs2.h
index ed98e8a..4e54aea 100644
--- a/src/fs/nilfs2.h
+++ b/src/fs/nilfs2.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2010 by Volker Lanz *
+ * Copyright (C) 2012 by Volker Lanz *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
diff --git a/src/jobs/deletefilesystemjob.cpp b/src/jobs/deletefilesystemjob.cpp
index 339edf8..40cac05 100644
--- a/src/jobs/deletefilesystemjob.cpp
+++ b/src/jobs/deletefilesystemjob.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008 by Volker Lanz *
+ * Copyright (C) 2012 by Volker Lanz *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
@@ -61,6 +61,12 @@ bool DeleteFileSystemJob::run(Report& parent)
rval = true;
else
{
+ if (!partition().fileSystem().remove(*report, partition().deviceNode()))
+ {
+ jobFinished(*report, rval);
+ return false;
+ }
+
CoreBackendDevice* backendDevice = CoreBackendManager::self()->backend()->openDevice(device().deviceNode());
if (backendDevice)
diff --git a/src/ops/newoperation.cpp b/src/ops/newoperation.cpp
index 215383b..77b793f 100644
--- a/src/ops/newoperation.cpp
+++ b/src/ops/newoperation.cpp
@@ -26,6 +26,7 @@
#include "jobs/createpartitionjob.h"
#include "jobs/createfilesystemjob.h"
#include "jobs/setfilesystemlabeljob.h"
+#include "jobs/setpartflagsjob.h"
#include "jobs/checkfilesystemjob.h"
#include "fs/filesystem.h"
@@ -48,6 +49,7 @@ NewOperation::NewOperation(Device& d, Partition* p) :
m_NewPartition(p),
m_CreatePartitionJob(new CreatePartitionJob(targetDevice(), newPartition())),
m_CreateFileSystemJob(NULL),
+ m_SetPartFlagsJob(NULL),
m_SetFileSystemLabelJob(NULL),
m_CheckFileSystemJob(NULL)
{
@@ -66,6 +68,12 @@ NewOperation::NewOperation(Device& d, Partition* p) :
m_CreateFileSystemJob = new CreateFileSystemJob(targetDevice(), newPartition());
addJob(createFileSystemJob());
+ if (fs.type() == FileSystem::Lvm2_PV)
+ {
+ m_SetPartFlagsJob = new SetPartFlagsJob(targetDevice(), newPartition(), PartitionTable::FlagLvm);
+ addJob(setPartFlagsJob());
+ }
+
m_SetFileSystemLabelJob = new SetFileSystemLabelJob(newPartition(), fs.label());
addJob(setLabelJob());
diff --git a/src/ops/newoperation.h b/src/ops/newoperation.h
index 62d63d6..dc8e44a 100644
--- a/src/ops/newoperation.h
+++ b/src/ops/newoperation.h
@@ -31,6 +31,7 @@ class OperationStack;
class CreatePartitionJob;
class CreateFileSystemJob;
class SetFileSystemLabelJob;
+class SetPartFlagsJob;
class CheckFileSystemJob;
/** Create a Partition.
@@ -71,6 +72,7 @@ class NewOperation : public Operation
CreatePartitionJob* createPartitionJob() { return m_CreatePartitionJob; }
CreateFileSystemJob* createFileSystemJob() { return m_CreateFileSystemJob; }
+ SetPartFlagsJob* setPartFlagsJob() { return m_SetPartFlagsJob; }
SetFileSystemLabelJob* setLabelJob() { return m_SetFileSystemLabelJob; }
CheckFileSystemJob* checkJob() { return m_CheckFileSystemJob; }
@@ -79,6 +81,7 @@ class NewOperation : public Operation
Partition* m_NewPartition;
CreatePartitionJob* m_CreatePartitionJob;
CreateFileSystemJob* m_CreateFileSystemJob;
+ SetPartFlagsJob* m_SetPartFlagsJob;
SetFileSystemLabelJob* m_SetFileSystemLabelJob;
CheckFileSystemJob* m_CheckFileSystemJob;
};
diff --git a/src/plugins/libparted/libpartedbackend.cpp b/src/plugins/libparted/libpartedbackend.cpp
index a7008cd..e2b99cc 100644
--- a/src/plugins/libparted/libpartedbackend.cpp
+++ b/src/plugins/libparted/libpartedbackend.cpp
@@ -554,6 +554,7 @@ FileSystem::Type LibPartedBackend::detectFileSystem(PedPartition* pedPartition)
else if (s == "crypto_LUKS") rval = FileSystem::Luks;
else if (s == "exfat") rval = FileSystem::Exfat;
else if (s == "nilfs2") rval = FileSystem::Nilfs2;
+ else if (s == "LVM2_member") rval = FileSystem::Lvm2_PV;
else
kWarning() << "blkid: unknown file system type " << s << " on " << pedPath;
}