KDE Partition Manager and KPMcore 2.2.0 are now released with a proper LUKS support! This is a fairly big feature release but it also got tested more than usual, so a lot of bugs were fixed (including some crashes). Unfortunately there is still one more reproducible crash (bug 363294) on exit when file open/save dialogs are used (and very similar crashes actually exist in some other KDE programs, e.g. kdebugdialog or Marble). If anybody has any idea how to fix it I would be grateful.
Changes in this release:
- Much improved LUKS support. We used to just detect LUKS container.
- Now KDE Partition Manager can create LUKS volumes and format inner file system. Since default options are used (except for the key size which was increased) we recommend cryptsetup 1.6 or later. At the moment we restrict the choice of new inner file systems to ext234, Btrfs, swap, ReiserFS, Reiser4, XFS, JFS, ZFS and LVM physical volumes when formatting new encrypted partitions but if you create other file systems manually using command line tools they will still work in KDE Partition Manager (other than detection support for LVM PV, the support for LVM is not implemented but this might change soon as a result of GSoC project, there is already some LVM PV resize support in git master). If you think it makes sense to whitelist other file systems and there is a valid use case please leave a comment.
- LUKS volumes can be opened/closed.
- Resize support for filesystems encrypted with LUKS (obviously you can’t do this while LUKS volume is closed, you have to decrypt it first). To the best of my knowledge, no other partition manager can do this.
- To prevent data loss, you can only move LUKS partitions that are closed. A few bugs were fixed in KDE Partition Manager to properly support unmovable but resizeable partitions (i.e. LUKS when it is closed).
- Filesystems inside LUKS can be checked for errors, mounted, labels can be set, etc. All other stuff like free space reporting also works (and space taken up by LUKS metadata is taken into the account).
- Opened LUKS partitions now cannot be removed, you have to close them first.
- Copying LUKS partition works but only when they are closed.
- More widespread use of C++11 features.
- Fixed a couple of bugs present from KF5 porting. Also new Qt5 signal/slot syntax is used, so moc is used much less often
- Clobbering (deleting file system signature) deleted partitions was fixed.
- Some other bugs were fixed, e.g. NILFS2 resizing support was fixed.
- ntfslabel from ntfs-3g is now used for setting NTFS labels.
- A crash when partitions were deleted (mainly extended but not only) was fixed.
- Compilation with Clang was fixed.
There is also a slightly older (e.g. now we use KPasswordDialog to unlock LUKS partitions) video demonstrating LUKS support.
Note for packagers: Calamares 2.2.2 will most likely work with KPMcore 2.2.0 after recompilation but Calamares 2.3 will be recommended as soon as it is released. Older versions of KDE Partition Manager are not compatible with KPMcore 2.2.0, so you need to update KPMcore and KDE Partition Manager at the same time. Qt 5.6.1 also fixes one minor NTFS bug in KPMcore but unfortunately it is not released yet.
There are already packages for Arch and Gentoo, hopefully other distros will package it too.
27 comments on “KDE Partition Manager 2.2.0”
I was able to find and decrypt the luks partition on the root drive with 2.2, but it does not see anything on my other luks encrypted drives. All that is shown is that no valid partition table was found on each drive.
Are they external hard drives? If yes, then it is very likely that your external hard drives do not have partition table. In this case partition manager can’t do much anyway. You wouldn’t be able to resize/move partitions, etc…
That’s why I usually create GPT partition tables on my external hard drives. Well, it reduces drive capacity by 1 or 2 MiB but that’s negligible.
Yep, that is it. It’s a internal drive but I encrypted the whole thing instead of creating a partition first. Thanks for your help!
Well, current KPM can also create LUKS encrypted partitions from GUI. Just make sure you have a reasonably new cryptsetup. Ideally 1.7, but 1.6 should also work. Anything older will use less secure algorithms.
I should also point out that I encrypted the entire drive with LUKS.
Well, if it’s LUKS drive spanning entire drive (no partition table) you can only open/close LUKS volume. Usually desktop environments can do that already, e.g. from Dolphin or Nautilus…
i get this when trying to compile
mint@mint ~/apps/partitionmanager/build $ cmake ..
CMake Warning at /usr/share/ECM/modules/ECMQueryQmake.cmake:22 (message):
Failed call: qmake-qt5 -query “QT_INSTALL_PLUGINS”
Call Stack (most recent call first):
CMake Error at /usr/share/ECM/modules/ECMQueryQmake.cmake:23 (message):
QMake call failed: No such file or directory
Call Stack (most recent call first):
— Configuring incomplete, errors occurred!
See also “/home/mint/apps/partitionmanager/build/CMakeFiles/CMakeOutput.log”.
See also “/home/mint/apps/partitionmanager/build/CMakeFiles/CMakeError.log”.
Well, try running qmake-qt5 -query QT_INSTALL_PLUGINS manually and see the error but I think you are missing some build dependencies, possibly Qt5…
Thank you for this masterpiece, this is truly great work. hope you work gets adopted in most linux systems soon.
in linux mint it is also possible to create luks devices with the disk manager.
But how strong is the encryption there and in your manager ? 128bit or 256 bit aes ?
or is 256bit aes only available with command line ?
Thanks, keep it up
We specifically ask cryptsetup to use 512 bits. You can see for yourself in the source. So 512 bits actually uses 2 keys 256 bit each. Two keys is something to do with XTS disk encryption mode.
All other options are cryptsetup defaults. That’s why 1.7ish version of cryptsetup is recommended. Well, 1.6 has good enough defaults too but anything before has weak defaults.
I don’t know what key size disk manager uses… You can try to create it and see… Unfortunately Linux Mint ships really outdated version of KPM as far as I’m aware…
when i try to download http://git.0pointer.net/?p=libatasmart.git it says Invalid request ? i need this right ? its stated in your install.txt
Where exactly that link is, can’t find it. I only see this link there: http://0pointer.de/blog/projects/being-smart.html
And if you want direct link to git repo it is: http://git.0pointer.net/libatasmart.git/
But you should probably try to get libatasmart from your distro rather than compile it yourself.
also i come no further because this wont work for me.
“$ cmake ..
If all dependencies are met, cmake configures the build directory.
3. Build and install
mh.. that build and install. thats why i searched for a os that already has this in it, but i dont want to give up, maybe i learn something useful for the future.
Well, post the error message. Otherwise there is no way to tell what’s wrong. Most likely cmake will tell what dependency is missing. If you are compiling partition manager, make sure KPMcore is installed too (this is a big chunk of partition manager that was split into a separate library to be used by other projects, e.g. Calamares installer)
ah okay didnt installed kpmcore..
i wonder if is there a way to build an installer for this ? which work with ark installer.
Imagine just click install.. and it does everything alone. This is how i feel linux could be, like virtualbox did with their installer. How hard is it to programm something like this ? thx
make: *** Es wurden keine Ziele angegeben und keine „make“-Steuerdatei gefunden. Schluss.
maybe im to stupid.. it cannot find anything when i typ “make” into the terminal in the directory build.
mh..i dont know why i just cannot accomplish this like everyone else.. makes me sad
At the moment installers for GNU/Linux aren’t really working nicely, package manager would not know anything about it, so it won’t be updated with the rest of the system. That’s how users are usually getting software. These instructions are more meant for the packagers.
You can just fill the bug report with Mint people asking them to package it.
Well, you also need to install make as well as the compiler (g++). On Mint you can try sudo apt install build-essential, it might help.
seems like there is also a speedup in startup time!
thank you so much (:
Are you sure you are comparing the same devices. Some devices are faster, some are slower (e.g. usb sticks). I though most of the startup time is taken by libparted backend which didn’t had any optimizations besides adding LUKS support. Although, if you have a lot of LUKS devices then there were optimizations. The function that finds LUKS mapper name is now much faster.
I actually have some very incomplete and experimental backend which is not based on libparted but uses tools like lsusb and udevadm to find devices and partitions (and potentially sfdisk later to edit partitions). And that one is definitely faster. But I don’t know if or when that code might be ready. But if we ever want to support polkit and move away from running KPM as root than we either need to wrap up libpartedbackend as some extra executable or replace the libparted backend with something new.
THANKS FOR THE GOOD WORK!