mirror of
https://gitlab.gnome.org/GNOME/gparted
synced 2024-10-04 06:59:34 +00:00
b7c9b3e5a6
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
b4d9c9eeb5
[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
51 lines
1.5 KiB
C++
51 lines
1.5 KiB
C++
/* 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);
|
|
void read_uuid(Partition& partition);
|
|
bool write_uuid(const Partition& partition, OperationDetail& operationdetail);
|
|
bool check_repair(const Partition& partition, OperationDetail& operationdetail);
|
|
|
|
private:
|
|
Glib::ustring serial_to_blkid_uuid(const Glib::ustring& serial);
|
|
Glib::ustring random_serial();
|
|
};
|
|
|
|
|
|
} //GParted
|
|
|
|
#endif /* GPARTED_EXFAT_H */
|