summaryrefslogtreecommitdiff
path: root/gpt.cc
diff options
context:
space:
mode:
authorWeiping Zhang <zhangweiping@didichuxing.com>2018-06-22 00:20:49 +0800
committerWeiping Zhang <zhangweiping@didichuxing.com>2018-06-22 01:19:13 +0800
commit826f8a0d53c2cc0512e2c717793660a87ce63009 (patch)
tree60cd25ef5c5654afe01c97855bcb09b49a5a270d /gpt.cc
parentc41db9e6908d3b756efd47534720c7da095abd19 (diff)
downloadsgdisk-826f8a0d53c2cc0512e2c717793660a87ce63009.tar.gz
Show detail status of header and table
Signed-off-by: Weiping Zhang <zhangweiping@didichuxing.com>
Diffstat (limited to 'gpt.cc')
-rw-r--r--gpt.cc22
1 files changed, 20 insertions, 2 deletions
diff --git a/gpt.cc b/gpt.cc
index 5a14594..163e81e 100644
--- a/gpt.cc
+++ b/gpt.cc
@@ -934,9 +934,27 @@ int GPTData::ForceLoadGPTData(void) {
} // if */
// Check for valid CRCs and warn if there are problems
- if ((mainCrcOk == 0) || (secondCrcOk == 0) || (mainPartsCrcOk == 0) ||
+ if ((validHeaders != 3) || (mainPartsCrcOk == 0) ||
(secondPartsCrcOk == 0)) {
- cerr << "Warning! One or more CRCs don't match. You should repair the disk!\n\n";
+ cerr << "Warning! One or more CRCs don't match. You should repair the disk!\n";
+ // Show detail status of header and table
+ if (validHeaders & 0x1)
+ cerr << "Main header: OK\n";
+ else
+ cerr << "Main header: ERROR\n";
+ if (validHeaders & 0x2)
+ cerr << "Backup header: OK\n";
+ else
+ cerr << "Backup header: ERROR\n";
+ if (mainPartsCrcOk)
+ cerr << "Main partition table: OK\n";
+ else
+ cerr << "Main partition table: ERROR\n";
+ if (secondPartsCrcOk)
+ cerr << "Backup partition table: OK\n";
+ else
+ cerr << "Backup partition table: ERROR\n";
+ cerr << "\n";
state = gpt_corrupt;
} // if
} else {