{"id":57977,"date":"2026-10-28T18:08:24","date_gmt":"2026-10-28T10:08:24","guid":{"rendered":"https:\/\/www.amagicsoft.com\/?p=57977"},"modified":"2026-10-29T14:31:55","modified_gmt":"2026-10-29T06:31:55","slug":"gpt-header","status":"publish","type":"post","link":"https:\/\/www.amagicsoft.com\/jp\/kb\/disk-partition\/gpt-header.html","title":{"rendered":"GPT\u30d8\u30c3\u30c0\u30fc\uff1a\u69cb\u9020\u3001\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3001\u304a\u3088\u3073CRC32"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"57977\" class=\"elementor elementor-57977\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-qnki7lj dtec-docx-root dtec-post-57977 e-flex e-con-boxed e-con e-parent\" data-id=\"qnki7lj\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-675lq7a elementor-widget elementor-widget-text-editor\" data-id=\"675lq7a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div><div><p class=\"otl-paragraph\">A <strong>GPT header<\/strong> is a metadata structure that describes a disk&#8217;s GUID Partition Table. It identifies the disk, locates the partition entry array, defines usable disk boundaries, and stores checksums used to detect metadata corruption. GPT maintains primary and backup headers for redundancy. Understanding their byte layout and CRC32 fields helps explain how partition information is validated and why a damaged header does not necessarily mean the underlying files are lost.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-p0tmjmw elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents\" data-id=\"p0tmjmw\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;headings_by_tags&quot;:[&quot;h2&quot;,&quot;h3&quot;],&quot;exclude_headings_by_selector&quot;:&quot;.faq-no-toc, h2:contains(Data Recovery Assessment)&quot;,&quot;marker_view&quot;:&quot;bullets&quot;,&quot;no_headings_message&quot;:&quot;No headings were found on this page.&quot;,&quot;icon&quot;:{&quot;value&quot;:&quot;fas fa-circle&quot;,&quot;library&quot;:&quot;fa-solid&quot;},&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"table-of-contents.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-toc__header\">\n\t\t\t\t\t\t<h4 class=\"elementor-toc__header-title\">\n\t\t\t\tTable of Contents\t\t\t<\/h4>\n\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--expand\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__p0tmjmw\" aria-expanded=\"true\" aria-label=\"Open table of contents\"><i aria-hidden=\"true\" class=\"fas fa-chevron-down\"><\/i><\/div>\n\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--collapse\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__p0tmjmw\" aria-expanded=\"true\" aria-label=\"Close table of contents\"><i aria-hidden=\"true\" class=\"fas fa-chevron-up\"><\/i><\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<div id=\"elementor-toc__p0tmjmw\" class=\"elementor-toc__body\">\n\t\t\t<div class=\"elementor-toc__spinner-container\">\n\t\t\t\t<i class=\"elementor-toc__spinner eicon-animation-spin eicon-loading\" aria-hidden=\"true\"><\/i>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-35369av elementor-widget elementor-widget-heading\" data-id=\"35369av\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">What Is a GPT Header?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fjcsz2l elementor-widget elementor-widget-text-editor\" data-id=\"fjcsz2l\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The GPT header is part of the GUID Partition Table (GPT), the disk partitioning scheme defined by the UEFI specification.<\/p>\n<p>Unlike the older Master Boot Record (MBR) scheme, GPT maintains two copies of its partition metadata: one near the beginning of the disk and another near the end.<\/p>\n<p>Each GPT header contains information required to locate and interpret its associated partition entry array, including:<\/p>\n<ul><li>A signature identifying the GPT format.<\/li><li>The GPT header revision and size.<\/li><li>The header&#8217;s own location and the alternate header&#8217;s location.<\/li><li>The first and last usable logical block addresses.<\/li><li>A unique disk identifier.<\/li><li>The location and dimensions of the partition entry array.<\/li><li>CRC32 checksums for metadata integrity.<\/li><\/ul>\n<p>The GPT header does not directly store filenames, folder structures, or file contents. Those belong to file systems inside the partitions.<\/p>\n<p>For an overview of the partitioning scheme, see <a href=\"https:\/\/www.amagicsoft.com\/wiki\/learn-what-gpt-is.html\">GPT (GUID Partition Table)<\/a>. The official definitions are provided in the <a href=\"https:\/\/uefi.org\/specs\/UEFI\/2.10\/05_GUID_Partition_Table_Format.html\" rel=\"nofollow\">UEFI Specification, Section 5.3<\/a>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5pkkdxh elementor-widget elementor-widget-heading\" data-id=\"5pkkdxh\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Where Is the GPT Header Located?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b3ev8pk elementor-widget elementor-widget-text-editor\" data-id=\"b3ev8pk\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>GPT places its primary and backup metadata at opposite ends of a disk.<\/p>\n<p>For a conventional GPT disk:<\/p>\n<table><tbody><tr><td><p><strong>Location<\/strong><\/p><\/td><td><p><strong>Contents<\/strong><\/p><\/td><\/tr><tr><td><p>LBA 0<\/p><\/td><td><p>Protective MBR<\/p><\/td><\/tr><tr><td><p>LBA 1<\/p><\/td><td><p>Primary GPT Header<\/p><\/td><\/tr><tr><td><p>Following LBAs<\/p><\/td><td><p>Primary Partition Entry Array<\/p><\/td><\/tr><tr><td><p>Usable LBA range<\/p><\/td><td><p>Space available for partitions<\/p><\/td><\/tr><tr><td><p>LBAs before the final block<\/p><\/td><td><p>Backup Partition Entry Array<\/p><\/td><\/tr><tr><td><p>Last LBA<\/p><\/td><td><p>Backup GPT Header<\/p><\/td><\/tr><\/tbody><\/table>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ilg7a5u elementor-widget elementor-widget-image\" data-id=\"ilg7a5u\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/www.amagicsoft.com\/wp-content\/uploads\/2026\/10\/GPT-Header-location.webp\" title=\"\" alt=\"GPT-Header-location\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-i2dtzkf elementor-widget elementor-widget-text-editor\" data-id=\"i2dtzkf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The protective MBR helps prevent legacy MBR-only tools from treating the GPT disk as unallocated.<\/p>\n<p>It is different from the GPT header itself. For a comparison with traditional partition metadata, see <a href=\"https:\/\/www.amagicsoft.com\/wiki\/mbr-partition-table.html\">MBR Partition Table<\/a>.<\/p>\n<h3>Logical Sectors and Byte Addresses<\/h3>\n<p>GPT uses logical block addresses (LBAs), not absolute byte offsets, to identify its structures.<\/p>\n<p>To convert an LBA into a byte offset:<\/p>\n<p><strong>Byte offset = LBA \u00d7 Logical block size<\/strong><\/p>\n<p>For example:<\/p>\n<ul><li>On a disk with 512-byte logical blocks, the primary header begins at byte offset <code class=\"dtec-inline-code\">512<\/code> (<code class=\"dtec-inline-code\">0x200<\/code>).<\/li><li>On a disk with 4,096-byte logical blocks, the primary header begins at byte offset <code class=\"dtec-inline-code\">4096<\/code> (<code class=\"dtec-inline-code\">0x1000<\/code>).<\/li><\/ul>\n<p>The header typically occupies 92 bytes within a logical block, although the format permits larger headers up to the logical block size.<\/p>\n<p>A 92-byte header should not be confused with a 512-byte sector. The remaining bytes of a 512-byte header block are reserved and must be zero.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-sdigumn elementor-widget elementor-widget-heading\" data-id=\"sdigumn\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">GPT Header Structure: Fields, Offsets, and Sizes<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4445649 elementor-widget elementor-widget-text-editor\" data-id=\"4445649\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div><div><p class=\"otl-paragraph\">The GPT header structure is defined in <a class=\"hyperlink\" href=\"https:\/\/uefi.org\/specs\/UEFI\/2.10\/05_GUID_Partition_Table_Format.html\" target=\"_Blank\">UEFI Specification 2.10, Table 5.5<\/a>.<\/p><p class=\"otl-paragraph\">The following offsets are relative to the beginning of the GPT header, not to the beginning of the disk.<\/p><table class=\"outline-table\" border=\"1\"><tbody><tr><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\"><strong>Field<\/strong><\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\"><strong>Offset (Hex)<\/strong><\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\"><strong>Size<\/strong><\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\"><strong>Purpose<\/strong><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">Signature<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\"><code>0x00<\/code><\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">8 bytes<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">Identifies the GPT header<\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">Revision<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\"><code>0x08<\/code><\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">4 bytes<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">GPT format revision<\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">HeaderSize<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\"><code>0x0C<\/code><\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">4 bytes<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">Header length in bytes<\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">HeaderCRC32<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\"><code>0x10<\/code><\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">4 bytes<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">Checksum of the header<\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">Reserved<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\"><code>0x14<\/code><\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">4 bytes<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">Must be zero<\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">MyLBA<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\"><code>0x18<\/code><\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">8 bytes<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">Location of this header<\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">AlternateLBA<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\"><code>0x20<\/code><\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">8 bytes<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">Location of the other header<\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">FirstUsableLBA<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\"><code>0x28<\/code><\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">8 bytes<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">First usable partition block<\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">LastUsableLBA<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\"><code>0x30<\/code><\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">8 bytes<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">Last usable partition block<\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">DiskGUID<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\"><code>0x38<\/code><\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">16 bytes<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">Unique disk identifier<\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">PartitionEntryLBA<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\"><code>0x48<\/code><\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">8 bytes<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">Start of the associated entry array<\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">NumberOfPartitionEntries<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\"><code>0x50<\/code><\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">4 bytes<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">Number of entry slots<\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">SizeOfPartitionEntry<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\"><code>0x54<\/code><\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">4 bytes<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">Size of each entry<\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">PartitionEntryArrayCRC32<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\"><code>0x58<\/code><\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">4 bytes<\/p><\/td><td colspan=\"1\" rowspan=\"1\" align=\"left\" valign=\"top\" width=\"185\" height=\"38.375\"><p class=\"otl-paragraph\">Checksum of the entry array<\/p><\/td><\/tr><\/tbody><\/table><p class=\"otl-paragraph\">The defined fields occupy offsets <code>0x00<\/code> through <code>0x5B<\/code>, totaling 92 bytes. Bytes from <code>0x5C<\/code> to the end of the logical block are reserved.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7be063d elementor-widget elementor-widget-html\" data-id=\"7be063d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- Amagicsoft GPT Header Hex Explorer \u2014 paste this entire snippet into ONE Elementor HTML widget. -->\r\n<div id=\"as-gpt-header-hex-v45\" aria-label=\"Interactive synthetic GPT header hex inspector\">\r\n  <div class=\"asgh-top\">\r\n    <div>\r\n      <div class=\"asgh-eyebrow\">DISK METADATA \/ HEX INSPECTOR<\/div>\r\n      <div class=\"asgh-heading\">GPT Header \u2014 Byte Explorer<\/div>\r\n    <\/div>\r\n    <span class=\"asgh-demo\">SYNTHETIC EXAMPLE \u00b7 NO LIVE DISK ACCESS<\/span>\r\n  <\/div>\r\n  <div class=\"asgh-toolbar\">\r\n    <div class=\"asgh-toggle\" role=\"group\" aria-label=\"GPT header copy\">\r\n      <button type=\"button\" data-copy=\"primary\" aria-pressed=\"true\">Primary \u00b7 LBA 1<\/button>\r\n      <button type=\"button\" data-copy=\"backup\" aria-pressed=\"false\">Backup \u00b7 LBA 99,999<\/button>\r\n    <\/div>\r\n    <div class=\"asgh-sector\" id=\"asgh-sector-info\">512-byte logical block \u00b7 GPT header: 92 bytes<\/div>\r\n  <\/div>\r\n  <div class=\"asgh-main\">\r\n    <div class=\"asgh-hex-panel\">\r\n      <div class=\"asgh-panel-title\"><span>SECTOR HEX VIEW<\/span><span class=\"asgh-panel-meta\">16 bytes \/ row \u00b7 Click a byte<\/span><\/div>\r\n      <div class=\"asgh-hex-scroll\" tabindex=\"0\" aria-label=\"Hexadecimal sector bytes, horizontally scrollable\">\r\n        <div class=\"asgh-hex-table\">\r\n          <div class=\"asgh-hdr asgh-hex-row\" aria-hidden=\"true\"><span>OFFSET<\/span><span>00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F<\/span><span>ASCII<\/span><\/div>\r\n          <div class=\"asgh-hex-data\" role=\"group\" aria-label=\"512 synthetic sector bytes\"><\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n    <div class=\"asgh-fields-panel\">\r\n      <div class=\"asgh-panel-title\"><span>GPT HEADER FIELDS<\/span><span class=\"asgh-panel-meta\">Offset \u00b7 Size<\/span><\/div>\r\n      <div class=\"asgh-fields\" role=\"group\" aria-label=\"Select GPT header field\"><\/div>\r\n    <\/div>\r\n  <\/div>\r\n  <div class=\"asgh-details\" aria-live=\"polite\">\r\n    <div class=\"asgh-detail-label\"><span class=\"asgh-dot\"><\/span><span class=\"asgh-chosen\">MyLBA<\/span> <span class=\"asgh-range\">0x18\u20130x1F \u00b7 8 bytes<\/span><\/div>\r\n    <div class=\"asgh-detail-value\"><\/div>\r\n    <div class=\"asgh-detail-note\"><\/div>\r\n    <div class=\"asgh-crc-line\"><\/div>\r\n  <\/div>\r\n  <div class=\"asgh-footer\">Teaching model: 100,000 logical blocks \u00b7 128 \u00d7 128-byte entries \u00b7 both arrays contain 16,384 zero bytes. All values and CRC32 checksums are computed from the synthetic bytes.<\/div>\r\n<\/div>\r\n<style>\r\n#as-gpt-header-hex-v45{box-sizing:border-box;max-width:1050px;margin:12px auto 22px;background:#111722;color:#d9e2f1;border:1px solid #303a4d;border-radius:12px;overflow:hidden;font:13px\/1.45 system-ui,-apple-system,\"Segoe UI\",Arial,sans-serif;box-shadow:0 9px 26px #1118271c}\r\n#as-gpt-header-hex-v45 *{box-sizing:border-box}\r\n#as-gpt-header-hex-v45 button{font-family:inherit;cursor:pointer}\r\n#as-gpt-header-hex-v45 button:focus-visible,#as-gpt-header-hex-v45 [tabindex]:focus-visible{outline:2px solid #70a5f8;outline-offset:2px}\r\n#as-gpt-header-hex-v45 .asgh-top{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:16px 19px 13px;background:#182133;border-bottom:1px solid #30394b}\r\n#as-gpt-header-hex-v45 .asgh-eyebrow{font:600 10px\/1.6 system-ui,sans-serif;letter-spacing:1.55px;color:#90a4bf}\r\n#as-gpt-header-hex-v45 .asgh-heading{font-size:17px;font-weight:650;letter-spacing:-.25px;color:#f2f6fc}\r\n#as-gpt-header-hex-v45 .asgh-demo{font-size:10px;color:#c5b7ff;background:#302846;padding:5px 8px;border:1px solid #51416e;border-radius:5px;text-align:center}\r\n#as-gpt-header-hex-v45 .asgh-toolbar{padding:11px 18px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;border-bottom:1px solid #30394b}\r\n#as-gpt-header-hex-v45 .asgh-toggle{display:flex;gap:3px;padding:3px;background:#090e17;border:1px solid #354052;border-radius:6px}\r\n#as-gpt-header-hex-v45 .asgh-toggle button{border:0;border-radius:4px;background:transparent;color:#a8b7ce;padding:7px 12px;font-size:12px;font-weight:600;line-height:1.4;white-space:nowrap}\r\n#as-gpt-header-hex-v45 .asgh-toggle button[aria-pressed=\"true\"]{background:#2b405f;color:#f7fbff;box-shadow:inset 0 0 0 1px #4e709b}\r\n#as-gpt-header-hex-v45 .asgh-sector{font:11px\/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;color:#92a5c0}\r\n#as-gpt-header-hex-v45 .asgh-main{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);min-height:345px}\r\n#as-gpt-header-hex-v45 .asgh-hex-panel{min-width:0;border-right:1px solid #30394b}\r\n#as-gpt-header-hex-v45 .asgh-panel-title{height:36px;padding:0 14px;display:flex;justify-content:space-between;align-items:center;background:#192334;border-bottom:1px solid #30394b;font-size:10px;font-weight:650;letter-spacing:.9px;color:#b8c9e1}\r\n#as-gpt-header-hex-v45 .asgh-panel-meta{font-size:10px;font-weight:400;letter-spacing:0;color:#879bb6}\r\n#as-gpt-header-hex-v45 .asgh-hex-scroll{height:312px;overflow:auto;overscroll-behavior:contain;scrollbar-color:#52617b #172031;scrollbar-width:thin}\r\n#as-gpt-header-hex-v45 .asgh-hex-table{min-width:625px;font:11.5px\/1.7 ui-monospace,\"Cascadia Mono\",Consolas,\"Courier New\",monospace;white-space:nowrap;font-variant-numeric:tabular-nums}\r\n#as-gpt-header-hex-v45 .asgh-hex-row{display:grid;grid-template-columns:84px 383px 133px;align-items:center;column-gap:7px;padding:0 10px}\r\n#as-gpt-header-hex-v45 .asgh-hdr{position:sticky;top:0;height:27px;z-index:2;border-bottom:1px solid #304056;color:#8397b4;background:#131b29;font-size:10px}\r\n#as-gpt-header-hex-v45 .asgh-hex-line{height:23px}\r\n#as-gpt-header-hex-v45 .asgh-hex-line:nth-child(even){background:#141d2b}\r\n#as-gpt-header-hex-v45 .asgh-offset{color:#8d9fba;letter-spacing:.15px}\r\n#as-gpt-header-hex-v45 .asgh-byte-cols{display:grid;grid-template-columns:repeat(16,1fr);gap:1px}\r\n#as-gpt-header-hex-v45 .asgh-hex-cell,#as-gpt-header-hex-v45 .asgh-ascii-cell{display:inline-flex;align-items:center;justify-content:center;height:21px;border-radius:2px;color:#dce6f4;cursor:pointer;user-select:none}\r\n#as-gpt-header-hex-v45 .asgh-hex-cell:hover,#as-gpt-header-hex-v45 .asgh-ascii-cell:hover{background:#2f435e}\r\n#as-gpt-header-hex-v45 .asgh-ascii-cols{display:grid;grid-template-columns:repeat(16,1fr);gap:0;font-size:11px;color:#adbed6}\r\n#as-gpt-header-hex-v45 .asgh-hex-cell.asgh-selected,#as-gpt-header-hex-v45 .asgh-ascii-cell.asgh-selected{background:#2962aa;color:#fff}\r\n#as-gpt-header-hex-v45 .asgh-hex-cell.asgh-hot,#as-gpt-header-hex-v45 .asgh-ascii-cell.asgh-hot{box-shadow:inset 0 0 0 1px #b4d1ff}\r\n#as-gpt-header-hex-v45 .asgh-fields{height:312px;overflow:auto;scrollbar-color:#52617b #172031;scrollbar-width:thin;padding:5px}\r\n#as-gpt-header-hex-v45 .asgh-field{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center;width:100%;padding:5px 9px;margin:1px 0;text-align:left;background:transparent;color:#bdc9da;border:1px solid transparent;border-radius:4px;font-size:11.5px;line-height:1.4}\r\n#as-gpt-header-hex-v45 .asgh-field span:last-child{font:10px\/1.4 ui-monospace,Consolas,monospace;color:#7e93b1}\r\n#as-gpt-header-hex-v45 .asgh-field:hover{background:#26354c}\r\n#as-gpt-header-hex-v45 .asgh-field.asgh-selected{background:#213d62;border-color:#355e93;color:#fff}\r\n#as-gpt-header-hex-v45 .asgh-field.asgh-selected span:last-child{color:#c2dafb}\r\n#as-gpt-header-hex-v45 .asgh-details{padding:12px 18px 14px;border-top:1px solid #313e53;background:#172132;min-height:106px}\r\n#as-gpt-header-hex-v45 .asgh-detail-label{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-weight:700;color:#f1f5fc}\r\n#as-gpt-header-hex-v45 .asgh-dot{width:8px;height:8px;border-radius:2px;background:#67a4f6;flex:none}\r\n#as-gpt-header-hex-v45 .asgh-range{font:11px ui-monospace,Consolas,monospace;font-weight:400;color:#95adcb}\r\n#as-gpt-header-hex-v45 .asgh-detail-value{font:600 15px\/1.5 ui-monospace,\"Cascadia Mono\",Consolas,monospace;color:#f8fcff;margin-top:4px;overflow-wrap:anywhere}\r\n#as-gpt-header-hex-v45 .asgh-detail-note{color:#abbdd5;font-size:12px;margin-top:3px}\r\n#as-gpt-header-hex-v45 .asgh-crc-line{font:10.5px\/1.5 ui-monospace,Consolas,monospace;color:#9dc8ef;margin-top:7px}\r\n#as-gpt-header-hex-v45 .asgh-footer{padding:10px 18px;background:#101724;border-top:1px solid #2b3647;color:#8b9fbb;font-size:11px}\r\n@media(max-width:760px){#as-gpt-header-hex-v45 .asgh-top{padding:13px;align-items:flex-start;flex-direction:column;gap:7px}#as-gpt-header-hex-v45 .asgh-main{grid-template-columns:1fr}#as-gpt-header-hex-v45 .asgh-hex-panel{border-right:0;border-bottom:1px solid #30394b}#as-gpt-header-hex-v45 .asgh-hex-scroll{height:235px}#as-gpt-header-hex-v45 .asgh-fields{height:158px}#as-gpt-header-hex-v45 .asgh-toolbar{padding:10px 12px}#as-gpt-header-hex-v45 .asgh-sector{font-size:10px}#as-gpt-header-hex-v45 .asgh-details{padding:12px}#as-gpt-header-hex-v45 .asgh-footer{padding:10px 12px}}\r\n@media(max-width:420px){#as-gpt-header-hex-v45 .asgh-toggle{width:100%}#as-gpt-header-hex-v45 .asgh-toggle button{flex:1;padding:7px 6px;font-size:11px}#as-gpt-header-hex-v45 .asgh-panel-meta{font-size:9px}}\r\n<\/style>\r\n<script>\r\n(function(){\r\n  'use strict';\r\n  const root=document.getElementById('as-gpt-header-hex-v45');\r\n  if(!root||root.dataset.initialized==='yes')return;\r\n  root.dataset.initialized='yes';\r\n  const $=(q)=>root.querySelector(q);\r\n  const fields=[\r\n    ['Signature',0,8,'Eight ASCII bytes identifying the GPT header.'],\r\n    ['Revision',8,4,'The GPT header format revision, not the UEFI firmware version.'],\r\n    ['HeaderSize',12,4,'Header size in bytes; this sets the length used in the header CRC32 calculation.'],\r\n    ['HeaderCRC32',16,4,'CRC32 of the first HeaderSize bytes, calculated with this four-byte field temporarily zeroed.'],\r\n    ['Reserved',20,4,'This reserved four-byte field must contain zero.'],\r\n    ['MyLBA',24,8,'The logical block address where the selected header actually resides.'],\r\n    ['AlternateLBA',32,8,'The logical block address of the other GPT header copy.'],\r\n    ['FirstUsableLBA',40,8,'First logical block allowed for partition contents.'],\r\n    ['LastUsableLBA',48,8,'Last logical block allowed for partition contents.'],\r\n    ['DiskGUID',56,16,'The 16-byte disk identifier. Its first three GUID components are stored little-endian.'],\r\n    ['PartitionEntryLBA',72,8,'Start LBA of the partition entry array belonging to this header.'],\r\n    ['NumberOfPartitionEntries',80,4,'Number of reserved partition entry slots, including unused entries.'],\r\n    ['SizeOfPartitionEntry',84,4,'Byte length of each individual partition entry.'],\r\n    ['PartitionEntryArrayCRC32',88,4,'CRC32 over entry count \u00d7 entry size bytes in this copy\u2019s partition entry array.'],\r\n    ['Reserved sector bytes',92,420,'Bytes after the 92-byte header up to the end of this 512-byte logical block must be zero.']\r\n  ];\r\n  const hex=(v,n=2)=>v.toString(16).toUpperCase().padStart(n,'0');\r\n  const crc32=(bytes)=>{\r\n    let c=0xFFFFFFFF;\r\n    for(const b of bytes){c^=b;for(let k=0;k<8;k++)c=(c&1)?((c>>>1)^0xEDB88320):(c>>>1);}\r\n    return (c^0xFFFFFFFF)>>>0;\r\n  };\r\n  const array=new Uint8Array(128*128); \/\/ All 128 synthetic GPT entries unused.\r\n  const arrayCRC=crc32(array);\r\n  const guid=[0xC3,0xD2,0xE1,0xF0,0xA5,0xB4,0x6D,0x4C,0x8E,0x9F,0x10,0x20,0x30,0x40,0x50,0x60];\r\n  const makeHeader=(side)=>{\r\n    const b=new Uint8Array(512);const d=new DataView(b.buffer);\r\n    [69,70,73,32,80,65,82,84].forEach((v,i)=>b[i]=v);\r\n    d.setUint32(8,0x00010000,true);d.setUint32(12,92,true);\r\n    d.setBigUint64(24,BigInt(side==='primary'?1:99999),true);\r\n    d.setBigUint64(32,BigInt(side==='primary'?99999:1),true);\r\n    d.setBigUint64(40,34n,true);d.setBigUint64(48,99966n,true);\r\n    b.set(guid,56);\r\n    d.setBigUint64(72,BigInt(side==='primary'?2:99967),true);\r\n    d.setUint32(80,128,true);d.setUint32(84,128,true);\r\n    d.setUint32(88,arrayCRC,true);\r\n    d.setUint32(16,crc32(b.subarray(0,92)),true);\r\n    return b;\r\n  };\r\n  const samples={primary:makeHeader('primary'),backup:makeHeader('backup')};\r\n  const sanity=samples.primary[16]===0x67&&new DataView(samples.primary.buffer).getUint32(16,true)===0x76EF8C67&&new DataView(samples.backup.buffer).getUint32(16,true)===0x98B5EBC6&&arrayCRC===0xAB54D286;\r\n  if(!sanity){root.innerText='The synthetic GPT sample failed its internal checksum check.';return;}\r\n  let side='primary',selected=5,hot=-1;\r\n  const selectField=(n)=>{selected=n;hot=-1;render();};\r\n  const findField=(offset)=>fields.findIndex(f=>offset>=f[1]&&offset<f[1]+f[2]);\r\n  function decoded(f,b){\r\n    const d=new DataView(b.buffer);const [name,o,len]=f;\r\n    if(name==='Signature')return 'EFI PART';\r\n    if(name==='DiskGUID')return 'f0e1d2c3-b4a5-4c6d-8e9f-102030405060';\r\n    if(name==='Reserved sector bytes')return '420 zero bytes';\r\n    if(name==='HeaderCRC32'||name==='PartitionEntryArrayCRC32'||name==='Revision')return '0x'+hex(d.getUint32(o,true),8);\r\n    if(len===4)return d.getUint32(o,true).toLocaleString('en-US')+(name==='HeaderSize'||name==='SizeOfPartitionEntry'?' bytes':'');\r\n    if(len===8)return d.getBigUint64(o,true).toLocaleString('en-US');\r\n    return Array.from(b.subarray(o,o+len),v=>hex(v)).join(' ');\r\n  }\r\n  const fieldWrap=$('.asgh-fields');\r\n  fieldWrap.innerHTML=fields.map((f,i)=>'<button type=\"button\" class=\"asgh-field\" data-field=\"'+i+'\" aria-pressed=\"false\"><span>'+f[0]+'<\/span><span>0x'+hex(f[1])+' \u00b7 '+f[2]+'B<\/span><\/button>').join('');\r\n  fieldWrap.addEventListener('click',e=>{const btn=e.target.closest('button[data-field]');if(btn)selectField(Number(btn.dataset.field));});\r\n  const cellClick=e=>{\r\n    const el=e.target.closest('[data-index]');if(!el)return;\r\n    hot=Number(el.dataset.index);selected=findField(hot);render();\r\n  };\r\n  $('.asgh-hex-data').addEventListener('click',cellClick);\r\n  $('.asgh-hex-data').addEventListener('keydown',e=>{if(e.key==='Enter'||e.key===' '){if(e.target.closest('[data-index]')){e.preventDefault();cellClick(e);}}});\r\n  $('.asgh-toggle').addEventListener('click',e=>{const btn=e.target.closest('button[data-copy]');if(!btn)return;side=btn.dataset.copy;hot=-1;render();});\r\n  function render(){\r\n    const b=samples[side],lba=side==='primary'?1:99999,base=lba*512;\r\n    root.querySelectorAll('[data-copy]').forEach(button=>button.setAttribute('aria-pressed',String(button.dataset.copy===side)));\r\n    const text=[];\r\n    for(let row=0;row<32;row++){\r\n      const first=row*16,bytes=[],ascii=[];\r\n      for(let col=0;col<16;col++){\r\n        const i=first+col,on=i>=fields[selected][1]&&i<fields[selected][1]+fields[selected][2];\r\n        const klass=(on?' asgh-selected':'')+(i===hot?' asgh-hot':'');\r\n        bytes.push('<span class=\"asgh-hex-cell'+klass+'\" data-index=\"'+i+'\" tabindex=\"0\" role=\"button\" aria-label=\"Byte 0x'+hex(i,3)+': '+hex(b[i])+'\">'+hex(b[i])+'<\/span>');\r\n        const char=b[i]>=32&&b[i]<=126?String.fromCharCode(b[i]):'.';\r\n        ascii.push('<span class=\"asgh-ascii-cell'+klass+'\" data-index=\"'+i+'\" tabindex=\"0\" role=\"button\" aria-label=\"ASCII for byte 0x'+hex(i,3)+'\">'+(char==='&'?'&amp;':char==='<'?'&lt;':char==='>'?'&gt;':char)+'<\/span>');\r\n      }\r\n      text.push('<div class=\"asgh-hex-row asgh-hex-line\"><span class=\"asgh-offset\">'+hex(base+first,8)+'<\/span><span class=\"asgh-byte-cols\">'+bytes.join('')+'<\/span><span class=\"asgh-ascii-cols\">'+ascii.join('')+'<\/span><\/div>');\r\n    }\r\n    $('.asgh-hex-data').innerHTML=text.join('');\r\n    root.querySelectorAll('[data-field]').forEach(button=>{\r\n      const yes=Number(button.dataset.field)===selected;\r\n      button.classList.toggle('asgh-selected',yes);button.setAttribute('aria-pressed',String(yes));\r\n    });\r\n    const f=fields[selected],start=f[1],end=start+f[2]-1;\r\n    $('.asgh-chosen').textContent=f[0];\r\n    $('.asgh-range').textContent='0x'+hex(start)+'\u20130x'+hex(end)+' \u00b7 '+f[2]+' bytes';\r\n    $('.asgh-detail-value').textContent=decoded(f,b);\r\n    $('.asgh-detail-note').textContent=f[3]+(hot>=0?' \u00b7 Clicked relative byte offset: 0x'+hex(hot):'');\r\n    const hdrCRC=new DataView(b.buffer).getUint32(16,true);\r\n    const check=b.slice(0,92);check.fill(0,16,20);\r\n    const ok=crc32(check)===hdrCRC;\r\n    $('.asgh-crc-line').textContent='Header CRC32: 0x'+hex(hdrCRC,8)+' \u00b7 '+(ok?'MATCH':'MISMATCH')+'  |  Entry array CRC32: 0x'+hex(arrayCRC,8)+' \u00b7 MATCH';\r\n  }\r\n  render();\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-r3js7bz elementor-widget elementor-widget-text-editor\" data-id=\"r3js7bz\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div><div><h3>Signature and Revision<\/h3><p>A valid GPT header begins with the ASCII signature <code>EFI PART<\/code>.<\/p><p>The eight bytes are:<\/p><p><code>45 46 49 20 50 41 52 54<\/code><\/p><p>The standard GPT revision 1.0 is represented by the little-endian bytes:<\/p><p><code>00 00 01 00<\/code><\/p><p>These represent the numeric value <code>0x00010000<\/code>. The GPT header revision is not the same as the UEFI specification version.<\/p><p>The commonly used header size is 92 bytes, encoded as:<\/p><p><code>5C 00 00 00<\/code><\/p><h3>Disk GUID and Byte Order<\/h3><p>The DiskGUID field occupies 16 bytes, beginning at offset <code>0x38<\/code>.<\/p><p>It identifies the GPT disk. It is different from the unique partition GUID stored inside each individual partition entry.<\/p><p>A GUID also introduces an important detail when interpreting raw hexadecimal data: its first three components use little-endian byte order, while its final eight bytes retain their displayed order.<\/p><p>For example, the illustrative GUID:<\/p><p><code>f0e1d2c3-b4a5-4c6d-8e9f-102030405060<\/code><\/p><p>is stored as:<\/p><p><code>C3 D2 E1 F0 A5 B4 6D 4C 8E 9F 10 20 30 40 50 60<\/code><\/p><p>Reading all 16 raw bytes directly from left to right would produce an incorrect textual GUID.<\/p><h3>Partition Entry Array Fields<\/h3><p>Three fields define the partition entry array:<\/p><ul><li><code>PartitionEntryLBA<\/code> identifies where the array starts.<\/li><li><code>NumberOfPartitionEntries<\/code> defines its entry count.<\/li><li><code>SizeOfPartitionEntry<\/code> defines the size of each entry.<\/li><\/ul><p>The array byte length is calculated as:<\/p><p><strong>Array size = Number of entries \u00d7 Entry size<\/strong><\/p><p>For an array containing 128 entries, each 128 bytes:<\/p><p><code>128 \u00d7 128 = 16,384 bytes<\/code><\/p><p>With 512-byte logical blocks:<\/p><p><code>16,384 \u00f7 512 = 32 logical blocks<\/code><\/p><p>This is the partition entry array&#8217;s reserved space, not the space occupied by actual file data.<\/p><p>The current UEFI specification defines the entry size as <code>128 \u00d7 2^n<\/code> bytes, where <code>n<\/code> is a nonnegative integer. Typical GPT disks use 128-byte entries.\u00a0<\/p><p><span style=\"color: inherit; font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; letter-spacing: inherit; text-align: inherit; text-transform: inherit;\">Each slot in the partition entry array describes one partition through its type GUID, unique partition GUID, LBA boundaries, attributes, and name. For a field-by-field explanation of the <\/span><strong style=\"color: inherit; font-family: inherit; font-size: inherit; font-style: inherit; letter-spacing: inherit; text-align: inherit; text-transform: inherit;\">GPT partition entry structure<\/strong><span style=\"color: inherit; font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; letter-spacing: inherit; text-align: inherit; text-transform: inherit;\">, including byte offsets and GUID encoding, see our <\/span><a style=\"text-align: inherit;\" href=\"https:\/\/www.amagicsoft.com\/kb\/disk-partition\/gpt-partition-entry.html\">GPT Partition Entry: Structure, Array, and GUID Fields<\/a><span style=\"color: inherit; font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; letter-spacing: inherit; text-align: inherit; text-transform: inherit;\"> guide.<\/span><\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ccwq6oo elementor-widget elementor-widget-heading\" data-id=\"ccwq6oo\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Primary and Backup GPT Headers: What Changes?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c76j99q elementor-widget elementor-widget-text-editor\" data-id=\"c76j99q\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The primary and backup GPT headers have the same field structure, but they do not contain identical bytes.<\/p>\n<p>Their locations and some internal pointers differ.<\/p>\n<p>Consider an illustrative GPT disk with:<\/p>\n<ul><li>100,000 logical blocks, numbered <code class=\"dtec-inline-code\">0<\/code> through <code class=\"dtec-inline-code\">99,999<\/code>.<\/li><li>A logical block size of 512 bytes.<\/li><li>An entry array containing 128 slots of 128 bytes each.<\/li><li>A 32-block partition entry array at each end.<\/li><\/ul>\n<p>The layout is:<\/p>\n<table><tbody><tr><td><p><strong>Structure<\/strong><\/p><\/td><td><p><strong>Primary GPT<\/strong><\/p><\/td><td><p><strong>Backup GPT<\/strong><\/p><\/td><\/tr><tr><td><p>Header LBA<\/p><\/td><td><p><code class=\"dtec-inline-code\">1<\/code><\/p><\/td><td><p><code class=\"dtec-inline-code\">99,999<\/code><\/p><\/td><\/tr><tr><td><p>MyLBA<\/p><\/td><td><p><code class=\"dtec-inline-code\">1<\/code><\/p><\/td><td><p><code class=\"dtec-inline-code\">99,999<\/code><\/p><\/td><\/tr><tr><td><p>AlternateLBA<\/p><\/td><td><p><code class=\"dtec-inline-code\">99,999<\/code><\/p><\/td><td><p><code class=\"dtec-inline-code\">1<\/code><\/p><\/td><\/tr><tr><td><p>PartitionEntryLBA<\/p><\/td><td><p><code class=\"dtec-inline-code\">2<\/code><\/p><\/td><td><p><code class=\"dtec-inline-code\">99,967<\/code><\/p><\/td><\/tr><tr><td><p>Entry array extent<\/p><\/td><td><p><code class=\"dtec-inline-code\">2\u201333<\/code><\/p><\/td><td><p><code class=\"dtec-inline-code\">99,967\u201399,998<\/code><\/p><\/td><\/tr><tr><td><p>FirstUsableLBA<\/p><\/td><td><p><code class=\"dtec-inline-code\">34<\/code><\/p><\/td><td><p><code class=\"dtec-inline-code\">34<\/code><\/p><\/td><\/tr><tr><td><p>LastUsableLBA<\/p><\/td><td><p><code class=\"dtec-inline-code\">99,966<\/code><\/p><\/td><td><p><code class=\"dtec-inline-code\">99,966<\/code><\/p><\/td><\/tr><tr><td><p>Header size<\/p><\/td><td><p>92 bytes<\/p><\/td><td><p>92 bytes<\/p><\/td><\/tr><\/tbody><\/table>\n<p>These positions follow directly from the disk size and the two 32-block partition entry arrays.<\/p>\n<p>For example:<\/p>\n<p><strong>Backup array start = Last LBA \u2212 Array blocks<\/strong><\/p>\n<p><code class=\"dtec-inline-code\">99,999 \u2212 32 = 99,967<\/code><\/p>\n<p>The final usable block must precede that backup array:<\/p>\n<p><code class=\"dtec-inline-code\">99,967 \u2212 1 = 99,966<\/code><\/p>\n<p>Both headers therefore describe the same usable disk range but point to different physical locations for their partition entry arrays.<\/p>\n<p>This arrangement allows GPT-aware software to check the backup metadata when the primary copy is damaged.<\/p>\n<p>However, the presence of two copies does not guarantee that either copy is valid or current.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7v2kl0j elementor-widget elementor-widget-heading\" data-id=\"7v2kl0j\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Worked Example: Decoding the GPT Header from Hexadecimal Bytes<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-guic7jm elementor-widget elementor-widget-text-editor\" data-id=\"guic7jm\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The following example uses deliberately constructed GPT metadata, not bytes captured from a physical disk.<\/p>\n<p>It describes the same 100,000-block disk used above.<\/p>\n<p>The example contains zero populated partitions. All 128 partition entry slots are zero-filled, allowing both entry array checksums to be calculated from a completely defined input.<\/p>\n<h3>Step 1: Identify the Header<\/h3>\n<p>At the beginning of the primary header, the first 16 bytes are:<\/p>\n<p><code class=\"dtec-inline-code\">45 46 49 20 50 41 52 54 00 00 01 00 5C 00 00 00<\/code><\/p>\n<p>Split the sequence by field:<\/p>\n<table><tbody><tr><td><p><strong>Byte range<\/strong><\/p><\/td><td><p><strong>Hex bytes<\/strong><\/p><\/td><td><p><strong>Decoded meaning<\/strong><\/p><\/td><\/tr><tr><td><p><code class=\"dtec-inline-code\">0x00\u20130x07<\/code><\/p><\/td><td><p><code class=\"dtec-inline-code\">45 46 49 20 50 41 52 54<\/code><\/p><\/td><td><p><code class=\"dtec-inline-code\">EFI PART<\/code><\/p><\/td><\/tr><tr><td><p><code class=\"dtec-inline-code\">0x08\u20130x0B<\/code><\/p><\/td><td><p><code class=\"dtec-inline-code\">00 00 01 00<\/code><\/p><\/td><td><p>Revision <code class=\"dtec-inline-code\">0x00010000<\/code><\/p><\/td><\/tr><tr><td><p><code class=\"dtec-inline-code\">0x0C\u20130x0F<\/code><\/p><\/td><td><p><code class=\"dtec-inline-code\">5C 00 00 00<\/code><\/p><\/td><td><p>Header size: 92 bytes<\/p><\/td><\/tr><\/tbody><\/table>\n<p>The signature, revision, and header size match the expected format.<\/p>\n<p>That establishes a plausible header, but it does not by itself prove that the GPT is valid.<\/p>\n<h3>Step 2: Decode the Location Fields<\/h3>\n<p>The primary header contains:<\/p>\n<table><tbody><tr><td><p><strong>Field<\/strong><\/p><\/td><td><p><strong>Stored bytes<\/strong><\/p><\/td><td><p><strong>Decoded value<\/strong><\/p><\/td><\/tr><tr><td><p>MyLBA<\/p><\/td><td><p><code class=\"dtec-inline-code\">01 00 00 00 00 00 00 00<\/code><\/p><\/td><td><p><code class=\"dtec-inline-code\">1<\/code><\/p><\/td><\/tr><tr><td><p>AlternateLBA<\/p><\/td><td><p><code class=\"dtec-inline-code\">9F 86 01 00 00 00 00 00<\/code><\/p><\/td><td><p><code class=\"dtec-inline-code\">99,999<\/code><\/p><\/td><\/tr><tr><td><p>FirstUsableLBA<\/p><\/td><td><p><code class=\"dtec-inline-code\">22 00 00 00 00 00 00 00<\/code><\/p><\/td><td><p><code class=\"dtec-inline-code\">34<\/code><\/p><\/td><\/tr><tr><td><p>LastUsableLBA<\/p><\/td><td><p><code class=\"dtec-inline-code\">7E 86 01 00 00 00 00 00<\/code><\/p><\/td><td><p><code class=\"dtec-inline-code\">99,966<\/code><\/p><\/td><\/tr><tr><td><p>PartitionEntryLBA<\/p><\/td><td><p><code class=\"dtec-inline-code\">02 00 00 00 00 00 00 00<\/code><\/p><\/td><td><p><code class=\"dtec-inline-code\">2<\/code><\/p><\/td><\/tr><\/tbody><\/table>\n<p>These values use little-endian byte order.<\/p>\n<p>For example, the bytes <code class=\"dtec-inline-code\">9F 86 01 00 00 00 00 00<\/code> represent <code class=\"dtec-inline-code\">0x000000000001869F<\/code>, or decimal <code class=\"dtec-inline-code\">99,999<\/code>.<\/p>\n<p>The backup header reverses <code class=\"dtec-inline-code\">MyLBA<\/code> and <code class=\"dtec-inline-code\">AlternateLBA<\/code> and changes <code class=\"dtec-inline-code\">PartitionEntryLBA<\/code> to <code class=\"dtec-inline-code\">99,967<\/code>.<\/p>\n<h3>Step 3: Compare the Header Checksums<\/h3>\n<p>For this specific synthetic example, using the DiskGUID shown earlier and a zero-filled 16,384-byte partition entry array, the calculated values are:<\/p>\n<table><tbody><tr><td><p><strong>Checksum<\/strong><\/p><\/td><td><p><strong>Primary GPT<\/strong><\/p><\/td><td><p><strong>Backup GPT<\/strong><\/p><\/td><\/tr><tr><td><p>HeaderCRC32<\/p><\/td><td><p><code class=\"dtec-inline-code\">0x76EF8C67<\/code><\/p><\/td><td><p><code class=\"dtec-inline-code\">0x98B5EBC6<\/code><\/p><\/td><\/tr><tr><td><p>PartitionEntryArrayCRC32<\/p><\/td><td><p><code class=\"dtec-inline-code\">0xAB54D286<\/code><\/p><\/td><td><p><code class=\"dtec-inline-code\">0xAB54D286<\/code><\/p><\/td><\/tr><\/tbody><\/table>\n<p>The header checksums differ because the headers contain different location fields.<\/p>\n<p>The partition entry array checksums match because the two arrays contain identical zero-filled bytes.<\/p>\n<p>These are calculated example values, not universal GPT checksum constants. A different disk GUID, partition layout, or metadata change would produce different results.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cm4sicc elementor-widget elementor-widget-heading\" data-id=\"cm4sicc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">How GPT Header CRC32 Validation Works<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-p5arsqh elementor-widget elementor-widget-text-editor\" data-id=\"p5arsqh\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>GPT uses two separate CRC32 checksums to detect changes in its partition metadata:<\/p><ul><li><code class=\"dtec-inline-code\">HeaderCRC32<\/code> verifies the GPT header itself.<\/li><li><code class=\"dtec-inline-code\">PartitionEntryArrayCRC32<\/code> verifies the associated partition entry array.<\/li><\/ul><p>Both use the standard CRC-32 algorithm, but they cover different byte ranges.<\/p><h3>HeaderCRC32: How the Checksum Is Calculated<\/h3><p>The <code class=\"dtec-inline-code\">HeaderCRC32<\/code> field occupies four bytes at header-relative offset <code class=\"dtec-inline-code\">0x10<\/code>.<\/p><p>According to the <a href=\"https:\/\/uefi.org\/specs\/UEFI\/2.10\/05_GUID_Partition_Table_Format.html\" rel=\"nofollow\">UEFI Specification<\/a>, the checksum must be calculated with this field temporarily set to zero.<\/p><p>The verification process follows five steps:<\/p><ol><li><strong>Read the header.<\/strong> Obtain the GPT header bytes from a disk image and determine the <code class=\"dtec-inline-code\">HeaderSize<\/code> field at offset <code class=\"dtec-inline-code\">0x0C<\/code>.<\/li><li><strong>Record the stored CRC32.<\/strong> Read the four bytes at offsets <code class=\"dtec-inline-code\">0x10\u20130x13<\/code> as a little-endian 32-bit value.<\/li><li><strong>Zero the checksum field.<\/strong> In a temporary copy, replace these four bytes with <code class=\"dtec-inline-code\">00 00 00 00<\/code>.<\/li><li><strong>Calculate CRC32.<\/strong> Compute the standard CRC-32 checksum over exactly <code class=\"dtec-inline-code\">HeaderSize<\/code> bytes.<\/li><li><strong>Compare the results.<\/strong> If the calculated value matches the stored value, the header passes its CRC32 integrity check.<\/li><\/ol><p>For a standard 92-byte GPT header, the calculation covers offsets <code class=\"dtec-inline-code\">0x00\u20130x5B<\/code>, not the entire 512-byte logical sector.<\/p><p>A standard CRC-32 calculator or Python&#8217;s <code class=\"dtec-inline-code\">zlib.crc32()<\/code> can perform the calculation. The algorithm uses the reflected polynomial <code class=\"dtec-inline-code\">0xEDB88320<\/code>, an initial register value of <code class=\"dtec-inline-code\">0xFFFFFFFF<\/code>, and a final XOR of <code class=\"dtec-inline-code\">0xFFFFFFFF<\/code>.<\/p><h3>Example: Verifying a GPT Header CRC32<\/h3><p>Consider the synthetic GPT header used earlier in this article.<\/p><table><tbody><tr><td><p><strong>Item<\/strong><\/p><\/td><td><p><strong>Value<\/strong><\/p><\/td><\/tr><tr><td><p>HeaderSize<\/p><\/td><td><p><code class=\"dtec-inline-code\">92 bytes<\/code><\/p><\/td><\/tr><tr><td><p>Stored HeaderCRC32<\/p><\/td><td><p><code class=\"dtec-inline-code\">0x76EF8C67<\/code><\/p><\/td><\/tr><tr><td><p>Stored bytes<\/p><\/td><td><p><code class=\"dtec-inline-code\">67 8C EF 76<\/code><\/p><\/td><\/tr><tr><td><p>CRC field during calculation<\/p><\/td><td><p><code class=\"dtec-inline-code\">00 00 00 00<\/code><\/p><\/td><\/tr><tr><td><p>Calculated CRC32<\/p><\/td><td><p><code class=\"dtec-inline-code\">0x76EF8C67<\/code><\/p><\/td><\/tr><tr><td><p>Validation result<\/p><\/td><td><p>Match<\/p><\/td><\/tr><\/tbody><\/table><p>The calculated checksum matches the stored value, indicating that the example header passes its CRC32 check.<\/p><p>If even one covered byte changes without updating the stored checksum, the calculation will generally produce a different result.<\/p><blockquote class=\"dtec-callout dtec-callout-warning\"><p><strong>Important:<\/strong> Always perform the calculation on a temporary copy or read-only working data. Do not overwrite checksum bytes on the original disk.<\/p><\/blockquote>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-570ea0d elementor-widget elementor-widget-html\" data-id=\"570ea0d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- Amagicsoft \/ GPT Header CRC32 \/ exact synthetic worked example. -->\r\n<!-- Paste this entire snippet into one Elementor HTML widget. It has visible static fallback when JavaScript is disabled. -->\r\n<div id=\"amagicsoft-gpt-crc32-example-1028\" role=\"region\" aria-label=\"GPT header CRC32 worked example\">\r\n  <div class=\"ac32-top\">\r\n    <div class=\"ac32-kicker\">GPT METADATA \u00b7 INTERACTIVE EXAMPLE<\/div>\r\n    <div class=\"ac32-name\">Verify a GPT Header CRC32<\/div>\r\n    <div class=\"ac32-sub\">92-byte synthetic header \u00b7 512-byte logical sectors \u00b7 no disk access<\/div>\r\n  <\/div>\r\n  <div class=\"ac32-steps\" role=\"group\" aria-label=\"CRC32 verification stages\">\r\n    <button type=\"button\" data-stage=\"0\" class=\"ac32-step active\" aria-pressed=\"true\"><span>1<\/span> Read<\/button>\r\n    <button type=\"button\" data-stage=\"1\" class=\"ac32-step\" aria-pressed=\"false\"><span>2<\/span> Zero<\/button>\r\n    <button type=\"button\" data-stage=\"2\" class=\"ac32-step\" aria-pressed=\"false\"><span>3<\/span> Calculate<\/button>\r\n    <button type=\"button\" data-stage=\"3\" class=\"ac32-step\" aria-pressed=\"false\"><span>4<\/span> Compare<\/button>\r\n  <\/div>\r\n  <div class=\"ac32-main\">\r\n    <div class=\"ac32-heading\"><span>HEADER BYTES<\/span><span>Relative offsets \u00b7 16 bytes per row<\/span><\/div>\r\n    <div class=\"ac32-hexscroll\" tabindex=\"0\" aria-label=\"Header bytes, horizontally scrollable on narrow screens\">\r\n      <div class=\"ac32-hex\">\r\n        <div class=\"ac32-hrow ac32-colhead\"><span>OFFSET<\/span><div class=\"ac32-cols\">00&nbsp; 01&nbsp; 02&nbsp; 03&nbsp; 04&nbsp; 05&nbsp; 06&nbsp; 07&nbsp; 08&nbsp; 09&nbsp; 0A&nbsp; 0B&nbsp; 0C&nbsp; 0D&nbsp; 0E&nbsp; 0F<\/div><\/div>\r\n        <div class=\"ac32-hrow\"><span class=\"ac32-offset\">00<\/span><div class=\"ac32-bytes\"><span class=\"ac32-byte\" data-b=\"0\" title=\"Header offset 0x00\">45<\/span><span class=\"ac32-byte\" data-b=\"1\" title=\"Header offset 0x01\">46<\/span><span class=\"ac32-byte\" data-b=\"2\" title=\"Header offset 0x02\">49<\/span><span class=\"ac32-byte\" data-b=\"3\" title=\"Header offset 0x03\">20<\/span><span class=\"ac32-byte\" data-b=\"4\" title=\"Header offset 0x04\">50<\/span><span class=\"ac32-byte\" data-b=\"5\" title=\"Header offset 0x05\">41<\/span><span class=\"ac32-byte\" data-b=\"6\" title=\"Header offset 0x06\">52<\/span><span class=\"ac32-byte\" data-b=\"7\" title=\"Header offset 0x07\">54<\/span><span class=\"ac32-byte\" data-b=\"8\" title=\"Header offset 0x08\">00<\/span><span class=\"ac32-byte\" data-b=\"9\" title=\"Header offset 0x09\">00<\/span><span class=\"ac32-byte\" data-b=\"10\" title=\"Header offset 0x0A\">01<\/span><span class=\"ac32-byte\" data-b=\"11\" title=\"Header offset 0x0B\">00<\/span><span class=\"ac32-byte\" data-b=\"12\" title=\"Header offset 0x0C\">5C<\/span><span class=\"ac32-byte\" data-b=\"13\" title=\"Header offset 0x0D\">00<\/span><span class=\"ac32-byte\" data-b=\"14\" title=\"Header offset 0x0E\">00<\/span><span class=\"ac32-byte\" data-b=\"15\" title=\"Header offset 0x0F\">00<\/span><\/div><\/div>\r\n        <div class=\"ac32-hrow\"><span class=\"ac32-offset\">10<\/span><div class=\"ac32-bytes\"><span class=\"ac32-byte ac32-field\" data-b=\"16\" title=\"Header offset 0x10\">67<\/span><span class=\"ac32-byte ac32-field\" data-b=\"17\" title=\"Header offset 0x11\">8C<\/span><span class=\"ac32-byte ac32-field\" data-b=\"18\" title=\"Header offset 0x12\">EF<\/span><span class=\"ac32-byte ac32-field\" data-b=\"19\" title=\"Header offset 0x13\">76<\/span><span class=\"ac32-byte\" data-b=\"20\" title=\"Header offset 0x14\">00<\/span><span class=\"ac32-byte\" data-b=\"21\" title=\"Header offset 0x15\">00<\/span><span class=\"ac32-byte\" data-b=\"22\" title=\"Header offset 0x16\">00<\/span><span class=\"ac32-byte\" data-b=\"23\" title=\"Header offset 0x17\">00<\/span><span class=\"ac32-byte ac32-my\" data-b=\"24\" title=\"Header offset 0x18\">01<\/span><span class=\"ac32-byte\" data-b=\"25\" title=\"Header offset 0x19\">00<\/span><span class=\"ac32-byte\" data-b=\"26\" title=\"Header offset 0x1A\">00<\/span><span class=\"ac32-byte\" data-b=\"27\" title=\"Header offset 0x1B\">00<\/span><span class=\"ac32-byte\" data-b=\"28\" title=\"Header offset 0x1C\">00<\/span><span class=\"ac32-byte\" data-b=\"29\" title=\"Header offset 0x1D\">00<\/span><span class=\"ac32-byte\" data-b=\"30\" title=\"Header offset 0x1E\">00<\/span><span class=\"ac32-byte\" data-b=\"31\" title=\"Header offset 0x1F\">00<\/span><\/div><\/div>\r\n        <div class=\"ac32-hrow\"><span class=\"ac32-offset\">20<\/span><div class=\"ac32-bytes\"><span class=\"ac32-byte\" data-b=\"32\" title=\"Header offset 0x20\">9F<\/span><span class=\"ac32-byte\" data-b=\"33\" title=\"Header offset 0x21\">86<\/span><span class=\"ac32-byte\" data-b=\"34\" title=\"Header offset 0x22\">01<\/span><span class=\"ac32-byte\" data-b=\"35\" title=\"Header offset 0x23\">00<\/span><span class=\"ac32-byte\" data-b=\"36\" title=\"Header offset 0x24\">00<\/span><span class=\"ac32-byte\" data-b=\"37\" title=\"Header offset 0x25\">00<\/span><span class=\"ac32-byte\" data-b=\"38\" title=\"Header offset 0x26\">00<\/span><span class=\"ac32-byte\" data-b=\"39\" title=\"Header offset 0x27\">00<\/span><span class=\"ac32-byte\" data-b=\"40\" title=\"Header offset 0x28\">22<\/span><span class=\"ac32-byte\" data-b=\"41\" title=\"Header offset 0x29\">00<\/span><span class=\"ac32-byte\" data-b=\"42\" title=\"Header offset 0x2A\">00<\/span><span class=\"ac32-byte\" data-b=\"43\" title=\"Header offset 0x2B\">00<\/span><span class=\"ac32-byte\" data-b=\"44\" title=\"Header offset 0x2C\">00<\/span><span class=\"ac32-byte\" data-b=\"45\" title=\"Header offset 0x2D\">00<\/span><span class=\"ac32-byte\" data-b=\"46\" title=\"Header offset 0x2E\">00<\/span><span class=\"ac32-byte\" data-b=\"47\" title=\"Header offset 0x2F\">00<\/span><\/div><\/div>\r\n        <div class=\"ac32-hrow\"><span class=\"ac32-offset\">30<\/span><div class=\"ac32-bytes\"><span class=\"ac32-byte\" data-b=\"48\" title=\"Header offset 0x30\">7E<\/span><span class=\"ac32-byte\" data-b=\"49\" title=\"Header offset 0x31\">86<\/span><span class=\"ac32-byte\" data-b=\"50\" title=\"Header offset 0x32\">01<\/span><span class=\"ac32-byte\" data-b=\"51\" title=\"Header offset 0x33\">00<\/span><span class=\"ac32-byte\" data-b=\"52\" title=\"Header offset 0x34\">00<\/span><span class=\"ac32-byte\" data-b=\"53\" title=\"Header offset 0x35\">00<\/span><span class=\"ac32-byte\" data-b=\"54\" title=\"Header offset 0x36\">00<\/span><span class=\"ac32-byte\" data-b=\"55\" title=\"Header offset 0x37\">00<\/span><span class=\"ac32-byte\" data-b=\"56\" title=\"Header offset 0x38\">C3<\/span><span class=\"ac32-byte\" data-b=\"57\" title=\"Header offset 0x39\">D2<\/span><span class=\"ac32-byte\" data-b=\"58\" title=\"Header offset 0x3A\">E1<\/span><span class=\"ac32-byte\" data-b=\"59\" title=\"Header offset 0x3B\">F0<\/span><span class=\"ac32-byte\" data-b=\"60\" title=\"Header offset 0x3C\">A5<\/span><span class=\"ac32-byte\" data-b=\"61\" title=\"Header offset 0x3D\">B4<\/span><span class=\"ac32-byte\" data-b=\"62\" title=\"Header offset 0x3E\">6D<\/span><span class=\"ac32-byte\" data-b=\"63\" title=\"Header offset 0x3F\">4C<\/span><\/div><\/div>\r\n        <div class=\"ac32-hrow\"><span class=\"ac32-offset\">40<\/span><div class=\"ac32-bytes\"><span class=\"ac32-byte\" data-b=\"64\" title=\"Header offset 0x40\">8E<\/span><span class=\"ac32-byte\" data-b=\"65\" title=\"Header offset 0x41\">9F<\/span><span class=\"ac32-byte\" data-b=\"66\" title=\"Header offset 0x42\">10<\/span><span class=\"ac32-byte\" data-b=\"67\" title=\"Header offset 0x43\">20<\/span><span class=\"ac32-byte\" data-b=\"68\" title=\"Header offset 0x44\">30<\/span><span class=\"ac32-byte\" data-b=\"69\" title=\"Header offset 0x45\">40<\/span><span class=\"ac32-byte\" data-b=\"70\" title=\"Header offset 0x46\">50<\/span><span class=\"ac32-byte\" data-b=\"71\" title=\"Header offset 0x47\">60<\/span><span class=\"ac32-byte\" data-b=\"72\" title=\"Header offset 0x48\">02<\/span><span class=\"ac32-byte\" data-b=\"73\" title=\"Header offset 0x49\">00<\/span><span class=\"ac32-byte\" data-b=\"74\" title=\"Header offset 0x4A\">00<\/span><span class=\"ac32-byte\" data-b=\"75\" title=\"Header offset 0x4B\">00<\/span><span class=\"ac32-byte\" data-b=\"76\" title=\"Header offset 0x4C\">00<\/span><span class=\"ac32-byte\" data-b=\"77\" title=\"Header offset 0x4D\">00<\/span><span class=\"ac32-byte\" data-b=\"78\" title=\"Header offset 0x4E\">00<\/span><span class=\"ac32-byte\" data-b=\"79\" title=\"Header offset 0x4F\">00<\/span><\/div><\/div>\r\n        <div class=\"ac32-hrow\"><span class=\"ac32-offset\">50<\/span><div class=\"ac32-bytes\"><span class=\"ac32-byte\" data-b=\"80\" title=\"Header offset 0x50\">80<\/span><span class=\"ac32-byte\" data-b=\"81\" title=\"Header offset 0x51\">00<\/span><span class=\"ac32-byte\" data-b=\"82\" title=\"Header offset 0x52\">00<\/span><span class=\"ac32-byte\" data-b=\"83\" title=\"Header offset 0x53\">00<\/span><span class=\"ac32-byte\" data-b=\"84\" title=\"Header offset 0x54\">80<\/span><span class=\"ac32-byte\" data-b=\"85\" title=\"Header offset 0x55\">00<\/span><span class=\"ac32-byte\" data-b=\"86\" title=\"Header offset 0x56\">00<\/span><span class=\"ac32-byte\" data-b=\"87\" title=\"Header offset 0x57\">00<\/span><span class=\"ac32-byte\" data-b=\"88\" title=\"Header offset 0x58\">86<\/span><span class=\"ac32-byte\" data-b=\"89\" title=\"Header offset 0x59\">D2<\/span><span class=\"ac32-byte\" data-b=\"90\" title=\"Header offset 0x5A\">54<\/span><span class=\"ac32-byte\" data-b=\"91\" title=\"Header offset 0x5B\">AB<\/span><span class=\"ac32-absent\" aria-hidden=\"true\">\u00b7\u00b7<\/span><span class=\"ac32-absent\" aria-hidden=\"true\">\u00b7\u00b7<\/span><span class=\"ac32-absent\" aria-hidden=\"true\">\u00b7\u00b7<\/span><span class=\"ac32-absent\" aria-hidden=\"true\">\u00b7\u00b7<\/span><\/div><\/div>\r\n      <\/div>\r\n    <\/div>\r\n    <div class=\"ac32-legend\"><span><i class=\"ac32-violet\"><\/i>Stored checksum \u00b7 0x10\u20130x13<\/span><span><i class=\"ac32-gold\"><\/i>Editable byte \u00b7 0x18<\/span><\/div>\r\n    <div class=\"ac32-metrics\">\r\n      <div class=\"ac32-stat\"><div class=\"ac32-label\">Stored HeaderCRC32 <small>Little-endian: 67 8C EF 76<\/small><\/div><div class=\"ac32-num\">0x76EF8C67<\/div><\/div>\r\n      <div class=\"ac32-stat\"><div class=\"ac32-label\">CRC input <small>Header bytes 0x00\u20130x5B<\/small><\/div><div class=\"ac32-num\">92 <span>bytes<\/span><\/div><\/div>\r\n      <div class=\"ac32-stat\"><div class=\"ac32-label\">Calculated CRC32 <small>Checksum field set to zero<\/small><\/div><div class=\"ac32-num\" data-calculated>\u2014<\/div><\/div>\r\n    <\/div>\r\n    <div class=\"ac32-status\" data-status aria-live=\"polite\"><div class=\"ac32-statusTitle\" data-statusTitle>Step 1 \u00b7 Read the stored value<\/div><div class=\"ac32-statusBody\" data-statusBody>The four highlighted bytes store <code>0x76EF8C67<\/code> in little-endian order. Select <strong>Zero<\/strong> to see how the input is prepared.<\/div><\/div>\r\n    <div class=\"ac32-bottom\">\r\n      <button type=\"button\" class=\"ac32-tamper\" data-tamper aria-pressed=\"false\">Change one byte (0x18)<\/button>\r\n      <button type=\"button\" class=\"ac32-reset\" data-reset>Reset example<\/button>\r\n      <span class=\"ac32-change\" data-change>Original sample<\/span>\r\n    <\/div>\r\n  <\/div>\r\n  <div class=\"ac32-foot\">CRC-32\/IEEE \u00b7 Reflected polynomial <code>0xEDB88320<\/code> \u00b7 Init <code>0xFFFFFFFF<\/code> \u00b7 Final XOR <code>0xFFFFFFFF<\/code>. <strong>Teaching sample, not captured disk data.<\/strong><\/div>\r\n<\/div>\r\n<style>\r\n#amagicsoft-gpt-crc32-example-1028{--ink:#21314b;--muted:#5e7087;--line:#dce4ef;--blue:#166bc4;--paper:#fff;--background:#f5f8fc;max-width:930px;margin:20px auto;border:1px solid #d8e3ee;border-radius:12px;overflow:hidden;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Arial,sans-serif;font-size:13px;line-height:1.45;box-shadow:0 9px 28px rgba(25,45,75,.065)}\r\n#amagicsoft-gpt-crc32-example-1028 *{box-sizing:border-box}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-top{padding:17px 21px 15px;background:#162b47;color:#fff}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-kicker{color:#a8c4e8;letter-spacing:1.25px;font-weight:800;font-size:10px}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-name{font-weight:750;font-size:20px;line-height:1.3;margin:4px 0}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-sub{color:#b6c8dd;font-size:11px}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-steps{padding:12px 16px;background:#f3f6fb;border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);gap:9px}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-step{display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #cbd7e7;border-radius:7px;background:#fff;padding:8px 10px;color:#415470;cursor:pointer;font:650 12px\/1.3 system-ui,-apple-system,Segoe UI,Arial,sans-serif;transition:background .15s,border-color .15s}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-step span{border-radius:50%;width:20px;height:20px;display:grid;place-items:center;background:#e6eef8;color:#2b608d;font-size:11px}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-step.active{background:#e3efff;border-color:#5890d4;color:#134e89}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-step.active span{background:#1f69b9;color:#fff}\r\n#amagicsoft-gpt-crc32-example-1028 button:focus-visible,#amagicsoft-gpt-crc32-example-1028 .ac32-hexscroll:focus-visible{outline:2px solid #398eff;outline-offset:2px}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-main{padding:15px 18px 16px}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-heading{display:flex;justify-content:space-between;gap:12px;color:#62758d;font-size:10px;letter-spacing:.7px;font-weight:800;margin:0 0 7px}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-heading span:last-child{font-weight:450;letter-spacing:0}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-hexscroll{overflow:auto;padding:10px 11px;background:#111d2d;border:1px solid #2b3d54;border-radius:7px;scrollbar-color:#58708e #111d2d}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-hex{min-width:596px;max-width:735px;font:12px\/1.25 ui-monospace,Consolas,'Courier New',monospace;font-variant-numeric:tabular-nums}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-hrow{display:grid;grid-template-columns:52px 1fr;gap:11px;align-items:center;min-height:27px}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-hrow.ac32-colhead{color:#88a9d6;border-bottom:1px solid #293e58;margin-bottom:4px;min-height:25px;font-size:10px}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-offset{color:#7a96b6}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-cols{white-space:nowrap;word-spacing:2px}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-bytes{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:4px;text-align:center}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-byte,#amagicsoft-gpt-crc32-example-1028 .ac32-absent{border-radius:3px;padding:4px 2px;color:#d2e2f4;white-space:nowrap}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-byte.ac32-field{background:#50406a;color:#f1deff;box-shadow:inset 0 0 0 1px #906ab9}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-byte.ac32-zero{background:#664189;color:#fff;font-weight:800;box-shadow:inset 0 0 0 1px #c3a0f0}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-byte.ac32-my.ac32-edited{background:#87502c;color:#fff;font-weight:800;box-shadow:inset 0 0 0 1px #ffc079}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-absent{opacity:.23}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-legend{display:flex;gap:10px 18px;flex-wrap:wrap;color:#63748c;font-size:11px;margin:9px 0 12px}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-legend span{display:flex;align-items:center;gap:6px}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-violet{background:#9c72c9}#amagicsoft-gpt-crc32-example-1028 .ac32-gold{background:#d99549}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-stat{border:1px solid #dce5f0;background:#f7faff;border-radius:7px;padding:10px 12px;min-width:0}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-label{font-size:11px;font-weight:750;color:#4a6080}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-label small{display:block;color:#7b8ca2;font-size:10px;font-weight:450;margin-top:2px}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-num{font:700 19px\/1.3 ui-monospace,Consolas,'Courier New',monospace;color:#1c487a;margin-top:8px;min-height:25px;letter-spacing:-.6px}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-num span{font-size:13px;letter-spacing:0}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-status{background:#edf5ff;border-left:3px solid #3c7cbd;border-radius:4px;padding:11px 14px;margin-top:12px;min-height:74px}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-status.ok{background:#eaf7f0;border-color:#37996d}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-status.bad{background:#fff0ed;border-color:#d56652}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-statusTitle{font-weight:800;font-size:12px;color:#254a74}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-status.ok .ac32-statusTitle{color:#267250}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-status.bad .ac32-statusTitle{color:#a54231}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-statusBody{margin-top:4px;color:#50637b;font-size:12px}\r\n#amagicsoft-gpt-crc32-example-1028 code{font:inherit;font-family:ui-monospace,Consolas,monospace;background:#e3eaf2;padding:1px 3px;border-radius:3px;color:#315072}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-bottom{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:12px}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-bottom button{appearance:none;border:1px solid #b8cce2;background:#fff;color:#315d87;padding:8px 11px;border-radius:6px;cursor:pointer;font:650 11px system-ui,-apple-system,Segoe UI,Arial,sans-serif}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-bottom .ac32-tamper[aria-pressed=\"true\"]{background:#fff0e7;border-color:#dfa366;color:#95511c}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-change{color:#788a9f;font-size:11px;margin-left:auto}\r\n#amagicsoft-gpt-crc32-example-1028 .ac32-foot{padding:10px 18px;background:#eef3f9;color:#647790;border-top:1px solid #dbe5f0;font-size:10.5px}\r\n@media(max-width:590px){#amagicsoft-gpt-crc32-example-1028 .ac32-top{padding:14px 13px}#amagicsoft-gpt-crc32-example-1028 .ac32-steps{padding:9px;gap:5px}#amagicsoft-gpt-crc32-example-1028 .ac32-step{gap:4px;padding:7px 2px;font-size:10px}#amagicsoft-gpt-crc32-example-1028 .ac32-step span{width:17px;height:17px}#amagicsoft-gpt-crc32-example-1028 .ac32-main{padding:12px 9px}#amagicsoft-gpt-crc32-example-1028 .ac32-heading{padding:0 4px}#amagicsoft-gpt-crc32-example-1028 .ac32-metrics{gap:5px}#amagicsoft-gpt-crc32-example-1028 .ac32-stat{padding:8px 6px}#amagicsoft-gpt-crc32-example-1028 .ac32-label{font-size:10px}#amagicsoft-gpt-crc32-example-1028 .ac32-label small{font-size:9px}#amagicsoft-gpt-crc32-example-1028 .ac32-num{font-size:13px;letter-spacing:-.7px}#amagicsoft-gpt-crc32-example-1028 .ac32-foot{padding:9px 11px}}\r\n<\/style>\r\n<script>\r\n(function(){\r\n'use strict';\r\nvar root=document.getElementById('amagicsoft-gpt-crc32-example-1028');\r\nif(!root || root.dataset.initialized==='1')return;\r\nroot.dataset.initialized='1';\r\nvar bytes=new Uint8Array([69,70,73,32,80,65,82,84,0,0,1,0,92,0,0,0,103,140,239,118,0,0,0,0,1,0,0,0,0,0,0,0,159,134,1,0,0,0,0,0,34,0,0,0,0,0,0,0,126,134,1,0,0,0,0,0,195,210,225,240,165,180,109,76,142,159,16,32,48,64,80,96,2,0,0,0,0,0,0,0,128,0,0,0,128,0,0,0,134,210,84,171]);\r\nvar stored=(bytes[16]|(bytes[17]<<8)|(bytes[18]<<16)|(bytes[19]<<24))>>>0;\r\nvar step=0,changed=false;\r\nfunction formatCRC(n){return '0x'+(n>>>0).toString(16).toUpperCase().padStart(8,'0');}\r\nfunction crc32(a){\r\n  var crc=0xFFFFFFFF;\r\n  for(var i=0;i<a.length;i++){\r\n    crc^=a[i];\r\n    for(var b=0;b<8;b++)crc=(crc&1)?((crc>>>1)^0xEDB88320):(crc>>>1);\r\n  }\r\n  return(crc^0xFFFFFFFF)>>>0;\r\n}\r\nfunction render(){\r\n  \/\/ Work in browser memory only: preserve the original stored checksum at 0x10\u20130x13.\r\n  var input=bytes.slice(0,92);\r\n  if(changed)input[24]=0;\r\n  input.fill(0,16,20);\r\n  var computed=crc32(input),match=computed===stored;\r\n  var display=bytes.slice(0,92);\r\n  if(changed)display[24]=0;\r\n  if(step>=1)display.fill(0,16,20);\r\n  root.querySelectorAll('[data-b]').forEach(function(el){\r\n    var i=Number(el.getAttribute('data-b'));\r\n    el.textContent=display[i].toString(16).toUpperCase().padStart(2,'0');\r\n    el.classList.toggle('ac32-zero',step>=1 && i>=16 && i<=19);\r\n    el.classList.toggle('ac32-edited',changed && i===24);\r\n  });\r\n  root.querySelectorAll('[data-stage]').forEach(function(el){\r\n    var on=Number(el.getAttribute('data-stage'))===step;\r\n    el.classList.toggle('active',on);el.setAttribute('aria-pressed',String(on));\r\n  });\r\n  root.querySelector('[data-calculated]').textContent=step>=2?formatCRC(computed):'\u2014';\r\n  root.querySelector('[data-tamper]').setAttribute('aria-pressed',String(changed));\r\n  root.querySelector('[data-tamper]').textContent=changed?'Undo byte change':'Change one byte (0x18)';\r\n  root.querySelector('[data-change]').textContent=changed?'Changed MyLBA: 01 \u2192 00':'Original sample';\r\n  var status=root.querySelector('[data-status]');\r\n  status.classList.toggle('ok',step===3 && match);\r\n  status.classList.toggle('bad',step===3 && !match);\r\n  var title=root.querySelector('[data-statusTitle]'),body=root.querySelector('[data-statusBody]');\r\n  if(step===0){title.textContent='Step 1 \u00b7 Read the stored value';body.innerHTML='The highlighted bytes <code>67 8C EF 76<\/code> store <code>0x76EF8C67<\/code> in little-endian order. This value is saved for comparison.';}\r\n  if(step===1){title.textContent='Step 2 \u00b7 Prepare CRC input';body.innerHTML='In a temporary copy, offsets <code>0x10\u20130x13<\/code> become <code>00 00 00 00<\/code>. The original checksum remains unchanged for verification.';}\r\n  if(step===2){title.textContent='Step 3 \u00b7 Calculate CRC32 over exactly 92 bytes';body.innerHTML='The browser calculates CRC-32\/IEEE directly from bytes <code>0x00\u20130x5B<\/code>, with the CRC field zeroed. Result: <code>'+formatCRC(computed)+'<\/code>.';}\r\n  if(step===3){title.textContent=match?'\u2713 MATCH \u00b7 Header CRC32 passes':'\u2715 MISMATCH \u00b7 Header CRC32 fails';body.innerHTML='Stored: <code>'+formatCRC(stored)+'<\/code> &nbsp; Calculated: <code>'+formatCRC(computed)+'<\/code>. '+(match?'The header bytes agree with the stored checksum.':'A byte changed while the stored checksum stayed the same.');}\r\n}\r\nroot.querySelectorAll('[data-stage]').forEach(function(btn){btn.addEventListener('click',function(){step=Number(btn.getAttribute('data-stage'));render();});});\r\nroot.querySelector('[data-tamper]').addEventListener('click',function(){changed=!changed;if(step<2)step=3;render();});\r\nroot.querySelector('[data-reset]').addEventListener('click',function(){step=0;changed=false;render();});\r\nif(stored!==0x76EF8C67){root.querySelector('[data-statusBody]').textContent='Unexpected data error: source CRC does not match the example.';return;}\r\nrender();\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2aa80a1 elementor-widget elementor-widget-text-editor\" data-id=\"2aa80a1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div><div><h3 class=\"otl-heading\">PartitionEntryArrayCRC32: Validating Partition Entries<\/h3><p class=\"otl-paragraph\">The second checksum, <code>PartitionEntryArrayCRC32<\/code>, is stored at header-relative offset <code>0x58<\/code>.<\/p><p class=\"otl-paragraph\">Unlike <code>HeaderCRC32<\/code>, it covers the partition entry array rather than the header.<\/p><p class=\"otl-paragraph\">Its calculation length is:<\/p><p class=\"otl-paragraph\"><strong>NumberOfPartitionEntries \u00d7 SizeOfPartitionEntry<\/strong><\/p><p class=\"otl-paragraph\">For an array containing 128 entries of 128 bytes each:<\/p><p class=\"otl-paragraph\"><code>128 \u00d7 128 = 16,384 bytes<\/code><\/p><p class=\"otl-paragraph\">To verify this checksum, calculate CRC32 over the entire 16,384-byte array and compare the result with the checksum stored in the GPT header.<\/p><p class=\"otl-paragraph\">No checksum field needs to be zeroed within the partition entry array.<\/p><p class=\"otl-paragraph\">The primary and backup arrays must be checked separately because they occupy different locations. Any unused padding after the array&#8217;s final entry is excluded from the calculation.<\/p><h3 class=\"otl-heading\">Why Both Checksums Matter<\/h3><p class=\"otl-paragraph\">The two checksums answer different questions:<\/p><ul><li class=\"otl-paragraph\"><strong>HeaderCRC32:<\/strong> Do the header bytes match the checksum stored in the header?<\/li><li class=\"otl-paragraph\"><strong>PartitionEntryArrayCRC32:<\/strong> Do the partition entry bytes match the checksum stored in the header?<\/li><\/ul><p class=\"otl-paragraph\">A GPT header may pass its own CRC32 check while its partition entry array is corrupted.<\/p><p class=\"otl-paragraph\">Similarly, both checksums may pass even when partition boundaries are logically incorrect or the metadata is outdated.<\/p><p class=\"otl-paragraph\"><strong>CRC32 verifies metadata integrity, not disk health or file recoverability.<\/strong> Additional checks are necessary to determine whether partition entries are consistent and the underlying file systems remain accessible.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c7al36i elementor-widget elementor-widget-heading\" data-id=\"c7al36i\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">How to Check Whether a GPT Header Is Valid<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-tgo87zt elementor-widget elementor-widget-text-editor\" data-id=\"tgo87zt\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>UEFI specifies that GPT-aware software must check the header signature, header CRC, <code class=\"dtec-inline-code\">MyLBA<\/code>, and the CRC of the associated partition entry array. For the primary GPT, it must also examine the alternate header.<\/p>\n<p>A practical inspection should include these additional consistency checks:<\/p>\n<table><tbody><tr><td><p><strong>Check<\/strong><\/p><\/td><td><p><strong>Expected condition<\/strong><\/p><\/td><td><p><strong>Why it matters<\/strong><\/p><\/td><\/tr><tr><td><p>Signature<\/p><\/td><td><p><code class=\"dtec-inline-code\">EFI PART<\/code><\/p><\/td><td><p>Identifies the structure<\/p><\/td><\/tr><tr><td><p>Header size<\/p><\/td><td><p>At least 92 bytes; no larger than a logical block<\/p><\/td><td><p>Defines the checksum range<\/p><\/td><\/tr><tr><td><p>HeaderCRC32<\/p><\/td><td><p>Matches recalculated CRC32<\/p><\/td><td><p>Detects header-byte changes<\/p><\/td><\/tr><tr><td><p>MyLBA<\/p><\/td><td><p>Matches the physical header location<\/p><\/td><td><p>Detects misplaced metadata<\/p><\/td><\/tr><tr><td><p>AlternateLBA<\/p><\/td><td><p>Points to the other header<\/p><\/td><td><p>Supports redundant layout validation<\/p><\/td><\/tr><tr><td><p>PartitionEntryLBA<\/p><\/td><td><p>Points to an array within disk bounds<\/p><\/td><td><p>Prevents invalid array addressing<\/p><\/td><\/tr><tr><td><p>PartitionEntryArrayCRC32<\/p><\/td><td><p>Matches actual array bytes<\/p><\/td><td><p>Detects entry-array corruption<\/p><\/td><\/tr><tr><td><p>Usable LBA range<\/p><\/td><td><p>Ordered, in bounds, and outside metadata regions<\/p><\/td><td><p>Checks layout consistency<\/p><\/td><\/tr><tr><td><p>Primary\/backup metadata<\/p><\/td><td><p>Consistent where required<\/p><\/td><td><p>Detects conflicting copies<\/p><\/td><\/tr><\/tbody><\/table>\n<p><strong>Passing these checks does not verify individual file systems or files.<\/strong> Partition entry boundaries also need to be checked for validity and overlap.<\/p>\n<p>The <a href=\"https:\/\/uefi.org\/specs\/UEFI\/2.10\/05_GUID_Partition_Table_Format.html\" rel=\"nofollow\">UEFI GPT validation requirements<\/a> provide the normative basis for deciding whether GPT metadata is valid.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-y8mn6s1 elementor-widget elementor-widget-heading\" data-id=\"y8mn6s1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">What Happens When a GPT Header Is Corrupted?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bcd9z2h elementor-widget elementor-widget-text-editor\" data-id=\"bcd9z2h\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The consequences depend on which metadata remains usable.<\/p>\n<h3>Primary Header Damaged, Backup Valid<\/h3>\n<p>If the primary GPT is invalid, GPT-aware software must examine the header at the last logical block and validate its associated partition entry array.<\/p>\n<p>A valid backup can provide the metadata necessary to reconstruct the primary copy, subject to the platform&#8217;s recovery policies.<\/p>\n<p>Such a repair writes partition metadata and should not be attempted casually on a disk containing important, unsecured data.<\/p>\n<h3>Backup Header Damaged, Primary Valid<\/h3>\n<p>The primary partition layout may still be readable.<\/p>\n<p>However, the backup needs restoration to preserve GPT redundancy.<\/p>\n<p>An apparently accessible disk can therefore still have damaged backup metadata.<\/p>\n<h3>Both Headers Invalid<\/h3>\n<p>If neither header is valid, the disk has no valid GPT header under the UEFI validation rules.<\/p>\n<p>This does not necessarily mean that every partition or file has been physically erased.<\/p>\n<p>Partition metadata, file system metadata, and file contents occupy different areas of the disk.<\/p>\n<p>When important files are involved, preserve the original disk and distinguish <a href=\"https:\/\/www.amagicsoft.com\/hdd-recovery\/lost-partition-recovery.html\">lost partition data recovery<\/a> from rewriting the partition table.<\/p>\n<h3>Valid Header but Incorrect Partition Information<\/h3>\n<p>A structurally valid header is not sufficient to establish that its partition entries describe the current disk correctly.<\/p>\n<p>For example, stale GPT metadata can remain at the end of a disk after legacy partitioning software changes the disk layout.<\/p>\n<p>A valid-looking backup must therefore be evaluated alongside the protective MBR, current disk capacity, partition entries, and other available evidence.<\/p>\n<p>UEFI specifically warns against relying on stale GPT structures after a disk has been reformatted to legacy MBR.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8x2gc3r elementor-widget elementor-widget-heading\" data-id=\"8x2gc3r\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">How to Inspect a GPT Header Safely<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4j22ly9 elementor-widget elementor-widget-text-editor\" data-id=\"4j22ly9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>For detailed analysis, use a disk image or a hexadecimal viewer with read-only access.<\/p>\n<ol><li>Confirm the correct physical disk and its reported logical block size.<\/li><li>If the disk has important data, capture a suitable image before modifying any metadata. An unstable or failing disk requires an appropriate acquisition approach.<\/li><li>Open the image in a hex editor without enabling write operations.<\/li><li>Locate the primary header at LBA <code class=\"dtec-inline-code\">1<\/code>, corresponding to byte offset <code class=\"dtec-inline-code\">LogicalBlockSize \u00d7 1<\/code>.<\/li><li>Check the signature at offset <code class=\"dtec-inline-code\">0x00<\/code> and interpret the other fields using the header-relative offsets.<\/li><li>Determine the last LBA from the image or disk capacity, then inspect the backup header.<\/li><li>Compare field values, header checksums, and the associated partition entry arrays.<\/li><\/ol>\n<p>Windows Disk Management and PowerShell&#8217;s <code class=\"dtec-inline-code\">Get-Disk<\/code> can identify the disk&#8217;s partition style, but their ordinary summary views do not provide a complete byte-level GPT header validation.<\/p>\n<p>Do not initialize, format, or run DiskPart <code class=\"dtec-inline-code\">clean<\/code> merely because a disk reports an invalid or missing partition. Likewise, CHKDSK is a file system repair tool, not a general GPT header reconstruction method.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-70iji5n elementor-widget elementor-widget-heading\" data-id=\"70iji5n\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Limitations and Important Edge Cases<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d0tb8gr elementor-widget elementor-widget-text-editor\" data-id=\"d0tb8gr\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Several conditions affect GPT header interpretation.<\/p>\n<p><strong>Different logical block sizes.<\/strong> A 4Kn disk uses 4,096-byte logical blocks. The primary header remains at LBA <code class=\"dtec-inline-code\">1<\/code>, but its absolute byte offset differs from that on a 512-byte logical-sector disk.<\/p>\n<p><strong>Larger GPT headers.<\/strong> A header may exceed 92 bytes within the permitted logical block size. CRC32 must use the actual validated <code class=\"dtec-inline-code\">HeaderSize<\/code>, not an assumed constant.<\/p>\n<p><strong>Disk resizing or cloning.<\/strong> If a disk is enlarged, the old backup header may no longer be at the final LBA. GPT metadata must be evaluated against the current device size before making corrections.<\/p>\n<p><strong>CRC32 is not cryptographic authentication.<\/strong> Matching checksums do not prove that metadata is authentic or free from deliberate manipulation.<\/p>\n<p><strong>Physical media problems.<\/strong> Read errors, intermittent connections, or controller failures can prevent reliable inspection. Repeated attempts on failing hardware may make recovery more difficult.<\/p>\n<p>These limitations explain why GPT validation requires several related checks rather than a single signature or checksum comparison.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-un79217 elementor-widget elementor-widget-heading\" data-id=\"un79217\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Conclusion<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-vutwe1j elementor-widget elementor-widget-text-editor\" data-id=\"vutwe1j\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The <strong>GPT header<\/strong> provides the location, boundaries, identifiers, and integrity information required to interpret a GUID Partition Table. Its structure is defined by explicit byte offsets, and its primary and backup copies provide redundant metadata at opposite ends of a disk.<\/p>\n<p>Correct analysis requires more than locating <code class=\"dtec-inline-code\">EFI PART<\/code>. The header CRC32, partition entry array CRC32, LBA pointers, usable boundaries, and primary\/backup consistency must be evaluated together.<\/p>\n<p>Understanding these relationships makes it possible to recognize valid GPT metadata, identify inconsistencies, and distinguish partition-table corruption from actual loss of file data.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-o9fa5ec elementor-widget elementor-widget-heading\" data-id=\"o9fa5ec\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">FAQ<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-p92v8j9 faq-no-toc dtec-faq elementor-widget elementor-widget-elementskit-faq\" data-id=\"p92v8j9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"elementskit-faq.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"ekit-wid-con\" >\n                <div class=\"elementskit-single-faq elementor-repeater-item-n6ogjza\">\n            <div class=\"elementskit-faq-header\">\n                <h3 class=\"elementskit-faq-title\">What is the GPT header signature?<\/h3>\n            <\/div>\n            <div class=\"elementskit-faq-body\">\n                The GPT header signature is the eight-character ASCII sequence <code>EFI PART<\/code>. In hexadecimal, it is <code>45 46 49 20 50 41 52 54<\/code>. It appears at the beginning of both primary and backup headers. Finding this sequence alone does not establish that the entire GPT is valid.            <\/div>\n        <\/div>\n                <div class=\"elementskit-single-faq elementor-repeater-item-3t078ob\">\n            <div class=\"elementskit-faq-header\">\n                <h3 class=\"elementskit-faq-title\">How many bytes is a GPT header?<\/h3>\n            <\/div>\n            <div class=\"elementskit-faq-body\">\n                The commonly used GPT header is 92 bytes. The <code>HeaderSize<\/code> field defines its actual length, which must be at least 92 bytes and no greater than the logical block size. The remaining bytes of the logical block are reserved.            <\/div>\n        <\/div>\n                <div class=\"elementskit-single-faq elementor-repeater-item-qzka7p8\">\n            <div class=\"elementskit-faq-header\">\n                <h3 class=\"elementskit-faq-title\">Where are the primary and backup GPT headers stored?<\/h3>\n            <\/div>\n            <div class=\"elementskit-faq-body\">\n                The primary GPT header is stored at LBA <code>1<\/code>. The backup header is stored at the disk's last logical block. Each header's <code>MyLBA<\/code> identifies its own location, while <code>AlternateLBA<\/code> identifies the other header.            <\/div>\n        <\/div>\n                <div class=\"elementskit-single-faq elementor-repeater-item-oksd6qp\">\n            <div class=\"elementskit-faq-header\">\n                <h3 class=\"elementskit-faq-title\">Why do primary and backup GPT headers have different CRC32 values?<\/h3>\n            <\/div>\n            <div class=\"elementskit-faq-body\">\n                Their location fields differ, including <code>MyLBA<\/code>, <code>AlternateLBA<\/code>, and usually <code>PartitionEntryLBA<\/code>. Since these bytes are covered by HeaderCRC32, the calculated checksums will generally differ even when both headers accurately describe the same disk.            <\/div>\n        <\/div>\n                <div class=\"elementskit-single-faq elementor-repeater-item-unjhxku\">\n            <div class=\"elementskit-faq-header\">\n                <h3 class=\"elementskit-faq-title\">Can a GPT header pass CRC32 validation while the disk is damaged?<\/h3>\n            <\/div>\n            <div class=\"elementskit-faq-body\">\n                Yes. The header CRC protects only the header bytes. It does not verify file contents, physical sector health, or every partition boundary rule. The partition entry array has a separate checksum, and the file systems require their own validation.            <\/div>\n        <\/div>\n                <div class=\"elementskit-single-faq elementor-repeater-item-6q66qpp\">\n            <div class=\"elementskit-faq-header\">\n                <h3 class=\"elementskit-faq-title\">Can a damaged GPT header be recovered from the backup?<\/h3>\n            <\/div>\n            <div class=\"elementskit-faq-body\">\n                Potentially. If the backup header and its associated partition entry array are valid and consistent with the current disk layout, they can provide metadata for reconstructing the primary GPT. Any reconstruction modifies disk metadata and should follow data preservation and validation.            <\/div>\n        <\/div>\n                <div class=\"elementskit-single-faq elementor-repeater-item-j9f4f3r\">\n            <div class=\"elementskit-faq-header\">\n                <h3 class=\"elementskit-faq-title\">Is the GPT Disk GUID the same as a partition GUID?<\/h3>\n            <\/div>\n            <div class=\"elementskit-faq-body\">\n                No. The <code>DiskGUID<\/code> field in the GPT header identifies the disk. Individual partition entries contain separate identifiers, including a partition type GUID and a unique partition GUID. These values have different roles and should not be confused.            <\/div>\n        <\/div>\n                                <script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What is the GPT header signature?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The GPT header signature is the eight-character ASCII sequence <code>EFI PART<\/code>. In hexadecimal, it is <code>45 46 49 20 50 41 52 54<\/code>. It appears at the beginning of both primary and backup headers. Finding this sequence alone does not establish that the entire GPT is valid.\"}},{\"@type\":\"Question\",\"name\":\"How many bytes is a GPT header?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The commonly used GPT header is 92 bytes. The <code>HeaderSize<\/code> field defines its actual length, which must be at least 92 bytes and no greater than the logical block size. The remaining bytes of the logical block are reserved.\"}},{\"@type\":\"Question\",\"name\":\"Where are the primary and backup GPT headers stored?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The primary GPT header is stored at LBA <code>1<\/code>. The backup header is stored at the disk's last logical block. Each header's <code>MyLBA<\/code> identifies its own location, while <code>AlternateLBA<\/code> identifies the other header.\"}},{\"@type\":\"Question\",\"name\":\"Why do primary and backup GPT headers have different CRC32 values?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Their location fields differ, including <code>MyLBA<\/code>, <code>AlternateLBA<\/code>, and usually <code>PartitionEntryLBA<\/code>. Since these bytes are covered by HeaderCRC32, the calculated checksums will generally differ even when both headers accurately describe the same disk.\"}},{\"@type\":\"Question\",\"name\":\"Can a GPT header pass CRC32 validation while the disk is damaged?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. The header CRC protects only the header bytes. It does not verify file contents, physical sector health, or every partition boundary rule. The partition entry array has a separate checksum, and the file systems require their own validation.\"}},{\"@type\":\"Question\",\"name\":\"Can a damaged GPT header be recovered from the backup?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Potentially. If the backup header and its associated partition entry array are valid and consistent with the current disk layout, they can provide metadata for reconstructing the primary GPT. Any reconstruction modifies disk metadata and should follow data preservation and validation.\"}},{\"@type\":\"Question\",\"name\":\"Is the GPT Disk GUID the same as a partition GUID?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. The <code>DiskGUID<\/code> field in the GPT header identifies the disk. Individual partition entries contain separate identifiers, including a partition type GUID and a unique partition GUID. These values have different roles and should not be confused.\"}}]}<\/script>\n                \n    <\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>A GPT header is a metadata structure that describes a disk&#8217;s GUID Partition Table. It identifies the disk, locates the partition entry array, defines usable disk boundaries, and stores checksums used to detect metadata corruption. GPT maintains primary and backup headers for redundancy. Understanding their byte layout and CRC32 fields helps explain how partition information is validated and why a damaged header does not necessarily mean the underlying files are lost. Table of Contents What Is a GPT Header? The GPT header is part of the GUID Partition Table (GPT), the disk partitioning scheme defined by the UEFI specification. Unlike the older Master Boot Record (MBR) scheme, GPT maintains two [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":57978,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[842],"tags":[841],"class_list":["post-57977","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-disk-partition","tag-knowledge-base"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.0 (Yoast SEO v27.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>GPT Header: Structure, Backup &amp; CRC32 | Amagicsoft<\/title>\n<meta name=\"description\" content=\"Explore GPT header fields, primary and backup layouts, CRC32 checks, and why logical block size changes GPT metadata locations.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.amagicsoft.com\/jp\/kb\/disk-partition\/gpt-header.html\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GPT Header: Structure, Backup &amp; CRC32\" \/>\n<meta property=\"og:description\" content=\"Explore GPT header fields, primary and backup layouts, CRC32 checks, and why logical block size changes GPT metadata locations.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.amagicsoft.com\/jp\/kb\/disk-partition\/gpt-header.html\" \/>\n<meta property=\"og:site_name\" content=\"Amagicsoft\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/amagicsoft.2024\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-28T10:08:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-29T06:31:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.amagicsoft.com\/wp-content\/uploads\/2026\/10\/GPT-Header-Structure-Backup-CRC32.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1350\" \/>\n\t<meta property=\"og:image:height\" content=\"760\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Vasilii\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Amagicsoft\" \/>\n<meta name=\"twitter:site\" content=\"@Amagicsoft\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"Vasilii\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"19\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.amagicsoft.com\\\/kb\\\/disk-partition\\\/gpt-header.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.amagicsoft.com\\\/kb\\\/disk-partition\\\/gpt-header.html\"},\"author\":{\"name\":\"Vasilii\",\"@id\":\"https:\\\/\\\/www.amagicsoft.com\\\/zh\\\/#\\\/schema\\\/person\\\/5cc725a7bfa9bc0e962db26a19dfb8c2\"},\"headline\":\"GPT Header: Structure, Backup &#038; CRC32\",\"datePublished\":\"2026-10-28T10:08:24+00:00\",\"dateModified\":\"2026-10-29T06:31:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.amagicsoft.com\\\/kb\\\/disk-partition\\\/gpt-header.html\"},\"wordCount\":3152,\"publisher\":{\"@id\":\"https:\\\/\\\/www.amagicsoft.com\\\/zh\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.amagicsoft.com\\\/kb\\\/disk-partition\\\/gpt-header.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.amagicsoft.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/GPT-Header-Structure-Backup-CRC32.webp\",\"keywords\":[\"Knowledge Base\"],\"articleSection\":[\"Disk &amp; Partition\"],\"inLanguage\":\"ja\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.amagicsoft.com\\\/kb\\\/disk-partition\\\/gpt-header.html\",\"url\":\"https:\\\/\\\/www.amagicsoft.com\\\/kb\\\/disk-partition\\\/gpt-header.html\",\"name\":\"GPT Header: Structure, Backup & CRC32 | Amagicsoft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.amagicsoft.com\\\/zh\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.amagicsoft.com\\\/kb\\\/disk-partition\\\/gpt-header.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.amagicsoft.com\\\/kb\\\/disk-partition\\\/gpt-header.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.amagicsoft.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/GPT-Header-Structure-Backup-CRC32.webp\",\"datePublished\":\"2026-10-28T10:08:24+00:00\",\"dateModified\":\"2026-10-29T06:31:55+00:00\",\"description\":\"Explore GPT header fields, primary and backup layouts, CRC32 checks, and why logical block size changes GPT metadata locations.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.amagicsoft.com\\\/kb\\\/disk-partition\\\/gpt-header.html#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.amagicsoft.com\\\/kb\\\/disk-partition\\\/gpt-header.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/www.amagicsoft.com\\\/kb\\\/disk-partition\\\/gpt-header.html#primaryimage\",\"url\":\"https:\\\/\\\/www.amagicsoft.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/GPT-Header-Structure-Backup-CRC32.webp\",\"contentUrl\":\"https:\\\/\\\/www.amagicsoft.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/GPT-Header-Structure-Backup-CRC32.webp\",\"width\":1350,\"height\":760,\"caption\":\"GPT Header Structure, Backup & CRC32\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.amagicsoft.com\\\/kb\\\/disk-partition\\\/gpt-header.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.amagicsoft.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GPT Header: Structure, Backup &#038; CRC32\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.amagicsoft.com\\\/zh\\\/#website\",\"url\":\"https:\\\/\\\/www.amagicsoft.com\\\/zh\\\/\",\"name\":\"Amagicsoft\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.amagicsoft.com\\\/zh\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.amagicsoft.com\\\/zh\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.amagicsoft.com\\\/zh\\\/#organization\",\"name\":\"Amagicsoft\",\"url\":\"https:\\\/\\\/www.amagicsoft.com\\\/zh\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/www.amagicsoft.com\\\/zh\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.amagicsoft.com\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/cropped-logo_512x512-1.webp\",\"contentUrl\":\"https:\\\/\\\/www.amagicsoft.com\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/cropped-logo_512x512-1.webp\",\"width\":512,\"height\":512,\"caption\":\"Amagicsoft\"},\"image\":{\"@id\":\"https:\\\/\\\/www.amagicsoft.com\\\/zh\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/amagicsoft.2024\\\/\",\"https:\\\/\\\/x.com\\\/Amagicsoft\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.amagicsoft.com\\\/zh\\\/#\\\/schema\\\/person\\\/5cc725a7bfa9bc0e962db26a19dfb8c2\",\"name\":\"Vasilii\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/12fbd3cf5c3fd435565e0ee05fea6fb3ae89413aafdccfb30c0c821c69a44d12?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/12fbd3cf5c3fd435565e0ee05fea6fb3ae89413aafdccfb30c0c821c69a44d12?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/12fbd3cf5c3fd435565e0ee05fea6fb3ae89413aafdccfb30c0c821c69a44d12?s=96&d=mm&r=g\",\"caption\":\"Vasilii\"},\"description\":\"Vasilii is a data recovery specialist with around 10 years of hands-on experience in the field. Throughout his career, he has successfully solved thousands of complex cases involving deleted files, formatted drives, lost partitions, and RAW file systems. His expertise covers both manual recovery methods using professional tools like hex editors and advanced automated solutions with recovery software. Vasilii's mission is to make reliable data recovery knowledge accessible to both IT professionals and everyday users, helping them safeguard their valuable digital assets.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/vasilii-zaitsev-65894b376\\\/\"],\"url\":\"https:\\\/\\\/www.amagicsoft.com\\\/jp\\\/author\\\/vasilii\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"GPT\u30d8\u30c3\u30c0\u30fc\uff1a\u69cb\u9020\u3001\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3001\u304a\u3088\u3073CRC32 | Amagicsoft","description":"GPT\u306e\u30d8\u30c3\u30c0\u30fc\u30d5\u30a3\u30fc\u30eb\u30c9\u3001\u30d7\u30e9\u30a4\u30de\u30ea\u304a\u3088\u3073\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u306e\u30ec\u30a4\u30a2\u30a6\u30c8\u3001CRC32\u30c1\u30a7\u30c3\u30af\u3001\u305d\u3057\u3066\u8ad6\u7406\u30d6\u30ed\u30c3\u30af\u30b5\u30a4\u30ba\u306b\u3088\u3063\u3066GPT\u306e\u30e1\u30bf\u30c7\u30fc\u30bf\u306e\u4fdd\u5b58\u5834\u6240\u304c\u5909\u308f\u308b\u7406\u7531\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u307e\u3059\u3002.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.amagicsoft.com\/jp\/kb\/disk-partition\/gpt-header.html","og_locale":"ja_JP","og_type":"article","og_title":"GPT Header: Structure, Backup & CRC32","og_description":"Explore GPT header fields, primary and backup layouts, CRC32 checks, and why logical block size changes GPT metadata locations.","og_url":"https:\/\/www.amagicsoft.com\/jp\/kb\/disk-partition\/gpt-header.html","og_site_name":"Amagicsoft","article_publisher":"https:\/\/www.facebook.com\/amagicsoft.2024\/","article_published_time":"2026-10-28T10:08:24+00:00","article_modified_time":"2026-10-29T06:31:55+00:00","og_image":[{"width":1350,"height":760,"url":"https:\/\/www.amagicsoft.com\/wp-content\/uploads\/2026\/10\/GPT-Header-Structure-Backup-CRC32.webp","type":"image\/webp"}],"author":"Vasilii","twitter_card":"summary_large_image","twitter_creator":"@Amagicsoft","twitter_site":"@Amagicsoft","twitter_misc":{"\u57f7\u7b46\u8005":"Vasilii","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"19\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.amagicsoft.com\/kb\/disk-partition\/gpt-header.html#article","isPartOf":{"@id":"https:\/\/www.amagicsoft.com\/kb\/disk-partition\/gpt-header.html"},"author":{"name":"Vasilii","@id":"https:\/\/www.amagicsoft.com\/zh\/#\/schema\/person\/5cc725a7bfa9bc0e962db26a19dfb8c2"},"headline":"GPT Header: Structure, Backup &#038; CRC32","datePublished":"2026-10-28T10:08:24+00:00","dateModified":"2026-10-29T06:31:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.amagicsoft.com\/kb\/disk-partition\/gpt-header.html"},"wordCount":3152,"publisher":{"@id":"https:\/\/www.amagicsoft.com\/zh\/#organization"},"image":{"@id":"https:\/\/www.amagicsoft.com\/kb\/disk-partition\/gpt-header.html#primaryimage"},"thumbnailUrl":"https:\/\/www.amagicsoft.com\/wp-content\/uploads\/2026\/10\/GPT-Header-Structure-Backup-CRC32.webp","keywords":["Knowledge Base"],"articleSection":["Disk &amp; Partition"],"inLanguage":"ja"},{"@type":"WebPage","@id":"https:\/\/www.amagicsoft.com\/kb\/disk-partition\/gpt-header.html","url":"https:\/\/www.amagicsoft.com\/kb\/disk-partition\/gpt-header.html","name":"GPT\u30d8\u30c3\u30c0\u30fc\uff1a\u69cb\u9020\u3001\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3001\u304a\u3088\u3073CRC32 | Amagicsoft","isPartOf":{"@id":"https:\/\/www.amagicsoft.com\/zh\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.amagicsoft.com\/kb\/disk-partition\/gpt-header.html#primaryimage"},"image":{"@id":"https:\/\/www.amagicsoft.com\/kb\/disk-partition\/gpt-header.html#primaryimage"},"thumbnailUrl":"https:\/\/www.amagicsoft.com\/wp-content\/uploads\/2026\/10\/GPT-Header-Structure-Backup-CRC32.webp","datePublished":"2026-10-28T10:08:24+00:00","dateModified":"2026-10-29T06:31:55+00:00","description":"GPT\u306e\u30d8\u30c3\u30c0\u30fc\u30d5\u30a3\u30fc\u30eb\u30c9\u3001\u30d7\u30e9\u30a4\u30de\u30ea\u304a\u3088\u3073\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u306e\u30ec\u30a4\u30a2\u30a6\u30c8\u3001CRC32\u30c1\u30a7\u30c3\u30af\u3001\u305d\u3057\u3066\u8ad6\u7406\u30d6\u30ed\u30c3\u30af\u30b5\u30a4\u30ba\u306b\u3088\u3063\u3066GPT\u306e\u30e1\u30bf\u30c7\u30fc\u30bf\u306e\u4fdd\u5b58\u5834\u6240\u304c\u5909\u308f\u308b\u7406\u7531\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u307e\u3059\u3002.","breadcrumb":{"@id":"https:\/\/www.amagicsoft.com\/kb\/disk-partition\/gpt-header.html#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.amagicsoft.com\/kb\/disk-partition\/gpt-header.html"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.amagicsoft.com\/kb\/disk-partition\/gpt-header.html#primaryimage","url":"https:\/\/www.amagicsoft.com\/wp-content\/uploads\/2026\/10\/GPT-Header-Structure-Backup-CRC32.webp","contentUrl":"https:\/\/www.amagicsoft.com\/wp-content\/uploads\/2026\/10\/GPT-Header-Structure-Backup-CRC32.webp","width":1350,"height":760,"caption":"GPT Header Structure, Backup & CRC32"},{"@type":"BreadcrumbList","@id":"https:\/\/www.amagicsoft.com\/kb\/disk-partition\/gpt-header.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.amagicsoft.com\/"},{"@type":"ListItem","position":2,"name":"GPT Header: Structure, Backup &#038; CRC32"}]},{"@type":"WebSite","@id":"https:\/\/www.amagicsoft.com\/zh\/#website","url":"https:\/\/www.amagicsoft.com\/zh\/","name":"\u30a2\u30de\u30b8\u30c3\u30af\u30bd\u30d5\u30c8","description":"","publisher":{"@id":"https:\/\/www.amagicsoft.com\/zh\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.amagicsoft.com\/zh\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Organization","@id":"https:\/\/www.amagicsoft.com\/zh\/#organization","name":"\u30a2\u30de\u30b8\u30c3\u30af\u30bd\u30d5\u30c8","url":"https:\/\/www.amagicsoft.com\/zh\/","logo":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.amagicsoft.com\/zh\/#\/schema\/logo\/image\/","url":"https:\/\/www.amagicsoft.com\/wp-content\/uploads\/2025\/04\/cropped-logo_512x512-1.webp","contentUrl":"https:\/\/www.amagicsoft.com\/wp-content\/uploads\/2025\/04\/cropped-logo_512x512-1.webp","width":512,"height":512,"caption":"Amagicsoft"},"image":{"@id":"https:\/\/www.amagicsoft.com\/zh\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/amagicsoft.2024\/","https:\/\/x.com\/Amagicsoft"]},{"@type":"Person","@id":"https:\/\/www.amagicsoft.com\/zh\/#\/schema\/person\/5cc725a7bfa9bc0e962db26a19dfb8c2","name":"Vasilii","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/secure.gravatar.com\/avatar\/12fbd3cf5c3fd435565e0ee05fea6fb3ae89413aafdccfb30c0c821c69a44d12?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/12fbd3cf5c3fd435565e0ee05fea6fb3ae89413aafdccfb30c0c821c69a44d12?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/12fbd3cf5c3fd435565e0ee05fea6fb3ae89413aafdccfb30c0c821c69a44d12?s=96&d=mm&r=g","caption":"Vasilii"},"description":"\u30d0\u30b7\u30ea\u30a4\u306f\u3001\u3053\u306e\u5206\u91ce\u3067\u7d0410\u5e74\u306e\u5b9f\u52d9\u7d4c\u9a13\u3092\u6301\u3064\u30c7\u30fc\u30bf\u5fa9\u5143\u306e\u30b9\u30da\u30b7\u30e3\u30ea\u30b9\u30c8\u3067\u3059\u3002\u305d\u306e\u30ad\u30e3\u30ea\u30a2\u3092\u901a\u3058\u3066\u3001\u5f7c\u306f\u524a\u9664\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u3001\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3055\u308c\u305f\u30c9\u30e9\u30a4\u30d6\u3001\u5931\u308f\u308c\u305f\u30d1\u30fc\u30c6\u30a3\u30b7\u30e7\u30f3\u3001RAW\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u3092\u542b\u3080\u4f55\u5343\u3082\u306e\u8907\u96d1\u306a\u30b1\u30fc\u30b9\u306e\u89e3\u6c7a\u306b\u6210\u529f\u3057\u3066\u304d\u307e\u3057\u305f\u3002\u5f7c\u306e\u5c02\u9580\u77e5\u8b58\u306f\u300116\u9032\u30a8\u30c7\u30a3\u30bf\u306a\u3069\u306e\u5c02\u9580\u30c4\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u305f\u624b\u52d5\u5fa9\u5143\u65b9\u6cd5\u3068\u3001\u5fa9\u5143\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u3092\u4f7f\u7528\u3057\u305f\u9ad8\u5ea6\u306a\u81ea\u52d5\u5316\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u306e\u4e21\u65b9\u3092\u30ab\u30d0\u30fc\u3057\u3066\u3044\u307e\u3059\u3002\u30d0\u30b7\u30ea\u306e\u4f7f\u547d\u306f\u3001\u4fe1\u983c\u3067\u304d\u308b\u30c7\u30fc\u30bf\u5fa9\u5143\u77e5\u8b58\u3092IT\u30d7\u30ed\u30d5\u30a7\u30c3\u30b7\u30e7\u30ca\u30eb\u3068\u4e00\u822c\u30e6\u30fc\u30b6\u30fc\u306e\u53cc\u65b9\u304c\u5229\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u3001\u8cb4\u91cd\u306a\u30c7\u30b8\u30bf\u30eb\u8cc7\u7523\u3092\u4fdd\u8b77\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u3053\u3068\u3067\u3059\u3002.","sameAs":["https:\/\/www.linkedin.com\/in\/vasilii-zaitsev-65894b376\/"],"url":"https:\/\/www.amagicsoft.com\/jp\/author\/vasilii"}]}},"_links":{"self":[{"href":"https:\/\/www.amagicsoft.com\/jp\/wp-json\/wp\/v2\/posts\/57977","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.amagicsoft.com\/jp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.amagicsoft.com\/jp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.amagicsoft.com\/jp\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.amagicsoft.com\/jp\/wp-json\/wp\/v2\/comments?post=57977"}],"version-history":[{"count":3,"href":"https:\/\/www.amagicsoft.com\/jp\/wp-json\/wp\/v2\/posts\/57977\/revisions"}],"predecessor-version":[{"id":57997,"href":"https:\/\/www.amagicsoft.com\/jp\/wp-json\/wp\/v2\/posts\/57977\/revisions\/57997"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.amagicsoft.com\/jp\/wp-json\/wp\/v2\/media\/57978"}],"wp:attachment":[{"href":"https:\/\/www.amagicsoft.com\/jp\/wp-json\/wp\/v2\/media?parent=57977"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.amagicsoft.com\/jp\/wp-json\/wp\/v2\/categories?post=57977"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.amagicsoft.com\/jp\/wp-json\/wp\/v2\/tags?post=57977"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}