gparted/include/exfat.h

51 lines
1.5 KiB
C
Raw Normal View History

/* Copyright (C) 2011 Curtis Gedak
*
* 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_EXFAT_H
#define GPARTED_EXFAT_H
#include "FileSystem.h"
#include "OperationDetail.h"
#include "Partition.h"
namespace GParted
{
class exfat : public FileSystem
{
public:
FS get_filesystem_support();
void set_used_sectors(Partition& partition);
bool create(const Partition& new_partition, OperationDetail& operationdetail);
void read_label(Partition& partition);
bool write_label(const Partition& partition, OperationDetail& operationdetail);
Add support for updating the exFAT UUID (!67) Also with exfatprogs 1.1.0 [1], tune.exfat and exfatlabel gained the capability to report and set the exFAT Volume Serial Number [2][3][4]. This is what blkid and therefore GParted reports as the UUID. Report serial number: # tune.exfat -i /dev/sdb1 exfatprogs version : 1.1.0 volume serial : 0x772ffe5d # echo $? 0 # blkid /dev/sdb1 /dev/sdb1: LABEL="test exfat" UUID="772F-FE5D" TYPE="exfat" PTTYPE="dos" Set serial number: # tune.exfat -I 0xf96ef190 /dev/sdb1 exfatprogs version : 1.1.0 New volume serial : 0xf96ef190 # echo $? 0 tune.exfat exists in earlier releases of exfatprogs so check it has the capability by searching for "Set volume serial" in the help output before enabling this capability. # tune.exfat exfatprogs version : 1.1.0 Usage: tune.exfat -l | --print-label Print volume label -L | --set-label=label Set volume label -i | --print-serial Print volume serial -L | --set-serial=value Set volume serial -V | --version Show version -v | --verbose Print debug -h | --help Show help (Note the cut and paste error reporting the set volume serial flag as '-L' rather than actually '-S'). [1] exfatprogs-1.1.0 version released http://github.com/exfaoprogs/exfatprogs/releases/tag/1.1.0 [2] [tools][feature request] Allow To Change Volume Serial Number ("ID") #138 https://github.com/exfatprogs/exfatprogs/issues/138 [3] exfatlabel:add get/set volume serial option https://github.com/exfatprogs/exfatprogs/commit/b4d9c9eeb5c28b503e103e2c4ec22bc146446d9f [4] exFAT file system specification, 3.1.11 VolumeSerialNumber Field https://docs.microsoft.com/en-us/windows/win32/fileio/exfat-specification#3111-volumeserialnumber-field Closes !67 - Add support for reading exFAT usage and updating the UUID
2021-02-10 07:53:08 -07:00
void read_uuid(Partition& partition);
bool write_uuid(const Partition& partition, OperationDetail& operationdetail);
bool check_repair(const Partition& partition, OperationDetail& operationdetail);
Add support for updating the exFAT UUID (!67) Also with exfatprogs 1.1.0 [1], tune.exfat and exfatlabel gained the capability to report and set the exFAT Volume Serial Number [2][3][4]. This is what blkid and therefore GParted reports as the UUID. Report serial number: # tune.exfat -i /dev/sdb1 exfatprogs version : 1.1.0 volume serial : 0x772ffe5d # echo $? 0 # blkid /dev/sdb1 /dev/sdb1: LABEL="test exfat" UUID="772F-FE5D" TYPE="exfat" PTTYPE="dos" Set serial number: # tune.exfat -I 0xf96ef190 /dev/sdb1 exfatprogs version : 1.1.0 New volume serial : 0xf96ef190 # echo $? 0 tune.exfat exists in earlier releases of exfatprogs so check it has the capability by searching for "Set volume serial" in the help output before enabling this capability. # tune.exfat exfatprogs version : 1.1.0 Usage: tune.exfat -l | --print-label Print volume label -L | --set-label=label Set volume label -i | --print-serial Print volume serial -L | --set-serial=value Set volume serial -V | --version Show version -v | --verbose Print debug -h | --help Show help (Note the cut and paste error reporting the set volume serial flag as '-L' rather than actually '-S'). [1] exfatprogs-1.1.0 version released http://github.com/exfaoprogs/exfatprogs/releases/tag/1.1.0 [2] [tools][feature request] Allow To Change Volume Serial Number ("ID") #138 https://github.com/exfatprogs/exfatprogs/issues/138 [3] exfatlabel:add get/set volume serial option https://github.com/exfatprogs/exfatprogs/commit/b4d9c9eeb5c28b503e103e2c4ec22bc146446d9f [4] exFAT file system specification, 3.1.11 VolumeSerialNumber Field https://docs.microsoft.com/en-us/windows/win32/fileio/exfat-specification#3111-volumeserialnumber-field Closes !67 - Add support for reading exFAT usage and updating the UUID
2021-02-10 07:53:08 -07:00
private:
Glib::ustring serial_to_blkid_uuid(const Glib::ustring& serial);
Glib::ustring random_serial();
};
} //GParted
#endif /* GPARTED_EXFAT_H */