[gparted] Recognise GRUB2 core.img (#766989)
- From: Curtis Gedak <gedakc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gparted] Recognise GRUB2 core.img (#766989)
- Date: Thu, 16 Jun 2016 16:54:08 +0000 (UTC)
commit 8ac3a0e4ad335171cc67c4b8bc37e0d344ccb199
Author: Mike Fleetwood <mike fleetwood googlemail com>
Date: Fri Jun 3 20:34:09 2016 +0100
Recognise GRUB2 core.img (#766989)
Recognise GRUB2 core.img boot code written to a partition without a file
system. Such setups are possible/likely with GPT partitioned disks as
there is a specific partition type reserved for it [1][2]:
21686148-6449-6E6F-744E-656564454649 (BIOS Boot partition)
[1] GUID Partition Table, Partition types
https://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_type_GUIDs
[2] BIOS boot partition
https://en.wikipedia.org/wiki/BIOS_boot_partition
Bug 766989 - zfsonline support - need file system name support for ZFS
type codes
include/Utils.h | 13 +++++++------
src/GParted_Core.cc | 32 ++++++++++++++++++++------------
src/Utils.cc | 2 ++
3 files changed, 29 insertions(+), 18 deletions(-)
---
diff --git a/include/Utils.h b/include/Utils.h
index 2256788..e14a527 100644
--- a/include/Utils.h
+++ b/include/Utils.h
@@ -90,14 +90,15 @@ enum FILESYSTEM
// Recognised signatures but otherwise unsupported file system types
FS_BITLOCKER = 25,
- FS_LINUX_SWRAID = 26,
- FS_LINUX_SWSUSPEND = 27,
- FS_REFS = 28,
- FS_ZFS = 29,
+ FS_GRUB2_CORE_IMG = 26,
+ FS_LINUX_SWRAID = 27,
+ FS_LINUX_SWSUSPEND = 28,
+ FS_REFS = 29,
+ FS_ZFS = 30,
// Partition space usage colours
- FS_USED = 30,
- FS_UNUSED = 31
+ FS_USED = 31,
+ FS_UNUSED = 32
} ;
enum SIZE_UNIT
diff --git a/src/GParted_Core.cc b/src/GParted_Core.cc
index 9768ab8..5b8c0a8 100644
--- a/src/GParted_Core.cc
+++ b/src/GParted_Core.cc
@@ -1548,19 +1548,27 @@ FILESYSTEM GParted_Core::detect_filesystem_internal( PedDevice * lp_device, PedP
const char * sig2;
FILESYSTEM fstype;
} signatures[] = {
- //offset1, sig1 , offset2, sig2 , fstype
- { 65536LL, "ReIsEr4" , 0LL, NULL , FS_REISER4 },
- { 512LL, "LABELONE" , 536LL, "LVM2", FS_LVM2_PV },
- { 0LL, "LUKS\xBA\xBE", 0LL, NULL , FS_LUKS },
- { 65600LL, "_BHRfS_M" , 0LL, NULL , FS_BTRFS },
- { 3LL, "-FVE-FS-" , 0LL, NULL , FS_BITLOCKER },
- { 1030LL, "\x34\x34" , 0LL, NULL , FS_NILFS2 }
+ //offset1, sig1 , offset2, sig2 , fstype
+ { 65536LL, "ReIsEr4" , 0LL, NULL , FS_REISER4 },
+ { 512LL, "LABELONE" , 536LL, "LVM2", FS_LVM2_PV },
+ { 0LL, "LUKS\xBA\xBE" , 0LL, NULL , FS_LUKS },
+ { 65600LL, "_BHRfS_M" , 0LL, NULL , FS_BTRFS },
+ { 3LL, "-FVE-FS-" , 0LL, NULL , FS_BITLOCKER },
+ { 1030LL, "\x34\x34" , 0LL, NULL , FS_NILFS2 },
+ { 0LL, "\x52\x56\xBE\x1B", 0LL, NULL , FS_GRUB2_CORE_IMG },
+ { 0LL, "\x52\x56\xBE\x6F", 0LL, NULL , FS_GRUB2_CORE_IMG },
+ { 0LL, "\x52\xE8\x28\x01", 0LL, NULL , FS_GRUB2_CORE_IMG },
+ { 0LL, "\x52\xBF\xF4\x81", 0LL, NULL , FS_GRUB2_CORE_IMG }
};
- // Reference:
- // Detecting BitLocker
- // http://blogs.msdn.com/b/si_team/archive/2006/10/26/detecting-bitlocker.aspx
- // Consider validation of BIOS Parameter Block fields as unnecessary for
- // simple recognition only of BitLocker.
+ // For simple BitLocker recognition consider validation of BIOS Parameter block
+ // fields unnecessary.
+ // * Detecting BitLocker
+ // http://blogs.msdn.com/b/si_team/archive/2006/10/26/detecting-bitlocker.aspx
+ //
+ // Recognise GRUB2 core.img just by any of the possible first 4 bytes of x86 CPU
+ // instructions it starts with.
+ // * bootinfoscript v0.74 line 1963 [GRUB2 core.img possible staring 4 bytes]
+ //
https://github.com/arvidjaar/bootinfoscript/blob/b1f711e39d7aa4021f4ad3d31468a8b1e1b3fda7/bootinfoscript#L1963
for ( unsigned int i = 0 ; i < sizeof( signatures ) / sizeof( signatures[0] ) ; i ++ )
{
diff --git a/src/Utils.cc b/src/Utils.cc
index 165c13b..8a8da5e 100644
--- a/src/Utils.cc
+++ b/src/Utils.cc
@@ -115,6 +115,7 @@ Glib::ustring Utils::get_color( FILESYSTEM filesystem )
case FS_UNUSED : return "#FFFFFF" ; //white
case FS_LVM2_PV : return "#B39169" ; //face skin dark
case FS_BITLOCKER : return "#494066" ; //purple shadow
+ case FS_GRUB2_CORE_IMG : return "#666666" ; //~ dark gray
case FS_LUKS : return "#625B81" ; //purple dark
case FS_LINUX_SWRAID : return "#5A4733" ; // ~ dark brown
case FS_LINUX_SWSUSPEND : return "#884631" ; //red dark
@@ -291,6 +292,7 @@ Glib::ustring Utils::get_filesystem_string( FILESYSTEM filesystem )
case FS_UNUSED : return _("unused") ;
case FS_LVM2_PV : return "lvm2 pv" ;
case FS_BITLOCKER : return "bitlocker" ;
+ case FS_GRUB2_CORE_IMG : return "grub2 core.img";
case FS_LUKS : return "luks";
case FS_LINUX_SWRAID : return "linux-raid" ;
case FS_LINUX_SWSUSPEND : return "linux-suspend" ;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]