mirror of
https://gitlab.gnome.org/GNOME/gparted
synced 2024-08-27 11:40:03 +00:00
![Mike Fleetwood](/assets/img/avatar_default.png)
When composing, describing and implementing the operation just need the code to query and set the Partition object directly containing the file system, instead of the enclosing encryption mapping to make it work. The operation details for setting a new UUID on an encrypted ext4 file system become: Set a new random UUID on [Encrypted] ext4 file system on /dev/sdb4 + calibrate /dev/sdb4 + Set UUID on /dev/mapper/sdb4_crypt to a new, random value + tune2fs -U random /dev/mapper/sdb4_crypt tune2fs 1.41.12 (17-May-2010) Also note the now documented rule in apply_operation_to_disk() which says each operation must leave the status of the encryption mapping and file system as it found it. Bug 774818 - Implement LUKS read-write actions NOT requiring a passphrase
68 lines
2 KiB
C++
68 lines
2 KiB
C++
/* Copyright (C) 2015 Mike Fleetwood
|
|
*
|
|
* 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, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
|
|
#ifndef GPARTED_PARTITIONLUKS_H
|
|
#define GPARTED_PARTITIONLUKS_H
|
|
|
|
#include "Partition.h"
|
|
#include "Utils.h"
|
|
|
|
#include <glibmm/ustring.h>
|
|
|
|
namespace GParted
|
|
{
|
|
|
|
class PartitionLUKS : public Partition
|
|
{
|
|
public:
|
|
PartitionLUKS();
|
|
virtual ~PartitionLUKS();
|
|
virtual PartitionLUKS * clone() const;
|
|
|
|
void set_luks( const Glib::ustring & path,
|
|
FILESYSTEM fstype,
|
|
Sector header_size,
|
|
Sector mapping_size,
|
|
Byte_Value sector_size,
|
|
bool busy );
|
|
|
|
Partition & get_encrypted() { return encrypted; };
|
|
const Partition & get_encrypted() const { return encrypted; };
|
|
|
|
virtual bool sector_usage_known() const;
|
|
virtual Sector estimated_min_size() const;
|
|
virtual Sector get_sectors_used() const;
|
|
virtual Sector get_sectors_unused() const;
|
|
virtual Sector get_sectors_unallocated() const;
|
|
virtual bool have_messages() const;
|
|
virtual std::vector<Glib::ustring> get_messages() const;
|
|
virtual void clear_messages();
|
|
|
|
virtual const Partition & get_filesystem_partition() const;
|
|
virtual Partition & get_filesystem_partition();
|
|
|
|
virtual const Glib::ustring get_filesystem_string() const;
|
|
|
|
private:
|
|
Partition encrypted;
|
|
Sector header_size; // Size of the LUKS header (everything up to the start of the mapping)
|
|
};
|
|
|
|
}//GParted
|
|
|
|
#endif /* GPARTED_PARTITIONLUKS_H */
|