diff --git a/README b/README
index d3f2c91f..4a3abcd9 100644
--- a/README
+++ b/README
@@ -276,6 +276,7 @@ provide this support:
reiser4progs
reiserfsprogs / reiserfs-utils / reiserfs
udftools
+ util-linux - required to create and check MINIX file systems
xfsprogs, xfsdump
diff --git a/gparted.appdata.xml.in b/gparted.appdata.xml.in
index 26fbfb51..aeab647e 100644
--- a/gparted.appdata.xml.in
+++ b/gparted.appdata.xml.in
@@ -16,8 +16,8 @@
<_p>
GParted works with many file systems including: btrfs, ext2, ext3,
- ext4, fat16, fat32, hfs, hfs+, linux-swap, lvm2 pv, nilfs2, ntfs,
- reiserfs, reiser4, udf, ufs, and xfs.
+ ext4, fat16, fat32, hfs, hfs+, linux-swap, lvm2 pv, minix, nilfs2,
+ ntfs, reiserfs, reiser4, udf, ufs, and xfs.
https://gparted.org
diff --git a/include/Makefile.am b/include/Makefile.am
index c46cd665..5b21f084 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -62,6 +62,7 @@ EXTRA_DIST = \
linux_swap.h \
lvm2_pv.h \
luks.h \
+ minix.h \
nilfs2.h \
ntfs.h \
reiser4.h \
diff --git a/include/Utils.h b/include/Utils.h
index f1486598..e606ecae 100644
--- a/include/Utils.h
+++ b/include/Utils.h
@@ -81,26 +81,27 @@ enum FSType
FS_LINUX_SWAP = 16,
FS_LUKS = 17,
FS_LVM2_PV = 18,
- FS_NILFS2 = 19,
- FS_NTFS = 20,
- FS_REISER4 = 21,
- FS_REISERFS = 22,
- FS_UDF = 23,
- FS_UFS = 24,
- FS_XFS = 25,
+ FS_MINIX = 19,
+ FS_NILFS2 = 20,
+ FS_NTFS = 21,
+ FS_REISER4 = 22,
+ FS_REISERFS = 23,
+ FS_UDF = 24,
+ FS_UFS = 25,
+ FS_XFS = 26,
// Recognised signatures but otherwise unsupported file system types
- FS_BITLOCKER = 26,
- FS_GRUB2_CORE_IMG = 27,
- FS_ISO9660 = 28,
- FS_LINUX_SWRAID = 29,
- FS_LINUX_SWSUSPEND = 30,
- FS_REFS = 31,
- FS_ZFS = 32,
+ FS_BITLOCKER = 27,
+ FS_GRUB2_CORE_IMG = 28,
+ FS_ISO9660 = 29,
+ FS_LINUX_SWRAID = 30,
+ FS_LINUX_SWSUSPEND = 31,
+ FS_REFS = 32,
+ FS_ZFS = 33,
// Partition space usage colours
- FS_USED = 33,
- FS_UNUSED = 34
+ FS_USED = 34,
+ FS_UNUSED = 35
} ;
enum SIZE_UNIT
diff --git a/include/minix.h b/include/minix.h
new file mode 100644
index 00000000..64aefd08
--- /dev/null
+++ b/include/minix.h
@@ -0,0 +1,38 @@
+/* Copyright (C) 2018 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 .
+ */
+
+
+#ifndef GPARTED_MINIX_H
+#define GPARTED_MINIX_H
+
+#include "FileSystem.h"
+#include "OperationDetail.h"
+#include "Partition.h"
+
+namespace GParted
+{
+
+class minix : public FileSystem
+{
+public:
+ FS get_filesystem_support();
+ bool create( const Partition & new_partition, OperationDetail & operationdetail );
+ bool check_repair( const Partition & partition, OperationDetail & operationdetail );
+};
+
+} //GParted
+
+#endif /* GPARTED_MINIX_H */
diff --git a/po/POTFILES.in b/po/POTFILES.in
index f9e9e297..154edc2e 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -57,6 +57,7 @@ src/linux_swap.cc
src/lvm2_pv.cc
src/luks.cc
src/main.cc
+src/minix.cc
src/ntfs.cc
src/nilfs2.cc
src/reiser4.cc
diff --git a/src/GParted_Core.cc b/src/GParted_Core.cc
index de69f0e8..903d59ae 100644
--- a/src/GParted_Core.cc
+++ b/src/GParted_Core.cc
@@ -43,6 +43,7 @@
#include "lvm2_pv.h"
#include "luks.h"
#include "reiserfs.h"
+#include "minix.h"
#include "nilfs2.h"
#include "ntfs.h"
#include "xfs.h"
@@ -1445,6 +1446,8 @@ FSType GParted_Core::detect_filesystem( PedDevice * lp_device, PedPartition * lp
return GParted::FS_FAT16 ;
else if ( fsname == "fat32" )
return GParted::FS_FAT32 ;
+ else if ( fsname == "minix" )
+ return FS_MINIX;
else if ( fsname == "nilfs2" )
return GParted::FS_NILFS2 ;
else if ( fsname == "ntfs" )
@@ -4152,6 +4155,7 @@ void GParted_Core::init_filesystems()
FILESYSTEM_MAP[FS_LINUX_SWAP] = new linux_swap();
FILESYSTEM_MAP[FS_LVM2_PV] = new lvm2_pv();
FILESYSTEM_MAP[FS_LUKS] = new luks();
+ FILESYSTEM_MAP[FS_MINIX] = new minix();
FILESYSTEM_MAP[FS_NILFS2] = new nilfs2();
FILESYSTEM_MAP[FS_NTFS] = new ntfs();
FILESYSTEM_MAP[FS_REISER4] = new reiser4();
diff --git a/src/Makefile.am b/src/Makefile.am
index 7b1fd2c0..a886bde8 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -72,6 +72,7 @@ gpartedbin_SOURCES = \
lvm2_pv.cc \
luks.cc \
main.cc \
+ minix.cc \
nilfs2.cc \
ntfs.cc \
reiser4.cc \
diff --git a/src/Utils.cc b/src/Utils.cc
index 05fa9d13..c95255ae 100644
--- a/src/Utils.cc
+++ b/src/Utils.cc
@@ -114,6 +114,7 @@ Glib::ustring Utils::get_color( FSType filesystem )
case FS_USED : return "#F8F8BA" ; // ~ light tan yellow
case FS_UNUSED : return "#FFFFFF" ; //white
case FS_LVM2_PV : return "#B39169" ; //face skin dark
+ case FS_MINIX : return "#9DB8D2" ; // Blue Highlight
case FS_BITLOCKER : return "#494066" ; //purple shadow
case FS_GRUB2_CORE_IMG : return "#666666" ; //~ dark gray
case FS_ISO9660 : return "#D3D3D3" ; // ~ light gray
@@ -227,6 +228,7 @@ int Utils::get_filesystem_label_maxlength( FSType filesystem )
case FS_JFS : return 11 ;
case FS_LINUX_SWAP : return 15 ;
//case FS_LVM2_PV : return ;
+ case FS_MINIX : return 0; // MINIX doesn't support labelling.
case FS_NILFS2 : return 80 ;
case FS_NTFS : return 128 ;
case FS_REISER4 : return 16 ;
@@ -294,6 +296,7 @@ Glib::ustring Utils::get_filesystem_string( FSType filesystem )
case FS_USED : return _("used") ;
case FS_UNUSED : return _("unused") ;
case FS_LVM2_PV : return "lvm2 pv" ;
+ case FS_MINIX : return "minix";
case FS_BITLOCKER : return "bitlocker" ;
case FS_GRUB2_CORE_IMG : return "grub2 core.img";
case FS_ISO9660 : return "iso9660";
@@ -337,6 +340,7 @@ const Glib::ustring Utils::get_filesystem_kernel_name( FSType fstype )
case FS_HFS : return "hfs";
case FS_HFSPLUS : return "hfsplus";
case FS_JFS : return "jfs";
+ case FS_MINIX : return "minix";
case FS_NILFS2 : return "nilfs2";
case FS_NTFS : return "ntfs";
case FS_REISER4 : return "reiser4";
@@ -365,6 +369,7 @@ Glib::ustring Utils::get_filesystem_software( FSType filesystem )
case FS_LINUX_SWAP : return "util-linux" ;
case FS_LVM2_PV : return "lvm2" ;
case FS_LUKS : return "cryptsetup, dmsetup";
+ case FS_MINIX : return "util-linux";
case FS_NILFS2 : return "nilfs-utils" ;
case FS_NTFS : return "ntfs-3g / ntfsprogs" ;
case FS_REISER4 : return "reiser4progs" ;
diff --git a/src/minix.cc b/src/minix.cc
new file mode 100644
index 00000000..78df5af4
--- /dev/null
+++ b/src/minix.cc
@@ -0,0 +1,58 @@
+/* Copyright (C) 2018 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 .
+ */
+
+#include "FileSystem.h"
+#include "OperationDetail.h"
+#include "Partition.h"
+#include "Utils.h"
+#include "minix.h"
+
+#include
+
+namespace GParted
+{
+
+FS minix::get_filesystem_support()
+{
+ FS fs( FS_MINIX );
+
+ fs.busy = FS::GPARTED;
+ fs.move = FS::GPARTED;
+ fs.copy = FS::GPARTED;
+ fs.online_read = FS::GPARTED;
+
+ if ( ! Glib::find_program_in_path( "mkfs.minix").empty() )
+ fs.create = FS::EXTERNAL;
+
+ if ( ! Glib::find_program_in_path( "fsck.minix").empty() )
+ fs.check = FS::EXTERNAL;
+
+ return fs;
+}
+
+bool minix::create( const Partition & new_partition, OperationDetail & operationdetail )
+{
+ return ! execute_command( "mkfs.minix -3 " + Glib::shell_quote( new_partition.get_path() ),
+ operationdetail, EXEC_CHECK_STATUS );
+}
+
+bool minix::check_repair( const Partition & partition, OperationDetail & operationdetail )
+{
+ return ! execute_command( "fsck.minix " + Glib::shell_quote( partition.get_path() ),
+ operationdetail, EXEC_CHECK_STATUS|EXEC_CANCEL_SAFE );
+}
+
+} //GParted