diff options
author | paul <paul@FreeBSD.org> | 1994-11-19 18:23:08 +0000 |
---|---|---|
committer | paul <paul@FreeBSD.org> | 1994-11-19 18:23:08 +0000 |
commit | 433a9ec8642588439dfb6102f65b8dcf70e6790f (patch) | |
tree | 204d0141fe11a33d665b2fc2fe068e98472960c3 /sbin/sysinstall | |
parent | b0e421ddac39a73446a4aa3356af0392ab1ae0e6 (diff) | |
download | FreeBSD-src-433a9ec8642588439dfb6102f65b8dcf70e6790f.zip FreeBSD-src-433a9ec8642588439dfb6102f65b8dcf70e6790f.tar.gz |
Changed the MBR partition type field from being a string to
a decimal value.
I don't have the time to deal with users typing in partition names
such as "FreeBSD" at the moment so just allow the numerical id to be
specified for the moment.
Diffstat (limited to 'sbin/sysinstall')
-rw-r--r-- | sbin/sysinstall/editor.c | 2 | ||||
-rw-r--r-- | sbin/sysinstall/mbr.c | 24 | ||||
-rw-r--r-- | sbin/sysinstall/mbr.h | 8 |
3 files changed, 21 insertions, 13 deletions
diff --git a/sbin/sysinstall/editor.c b/sbin/sysinstall/editor.c index cdf70ee..f4933bd 100644 --- a/sbin/sysinstall/editor.c +++ b/sbin/sysinstall/editor.c @@ -103,7 +103,7 @@ toggle_press(WINDOW *window, struct field field) field.spare++; if (!field.misc[field.spare]) field.spare = 0; - sprintf(field.field, "%", field.misc[field.spare]); + sprintf(field.field, "%s", field.misc[field.spare]); return (key); break; case '\n': diff --git a/sbin/sysinstall/mbr.c b/sbin/sysinstall/mbr.c index e7189b7..8202087 100644 --- a/sbin/sysinstall/mbr.c +++ b/sbin/sysinstall/mbr.c @@ -358,7 +358,7 @@ edit_mbr(int disk) ok = 0; while (!ok && (key != ESC)) { for (i=0; i < NDOSPART; i++) { - sprintf(mbr_field[(i*12)+1].field, "%s", part_type(mbr->dospart[i].dp_typ)); + sprintf(mbr_field[(i*12)+1].field, "%d", mbr->dospart[i].dp_typ); sprintf(mbr_field[(i*12)+2].field, "%ld", mbr->dospart[i].dp_start); sprintf(mbr_field[(i*12)+3].field, "%d", mbr->dospart[i].dp_scyl); sprintf(mbr_field[(i*12)+4].field, "%d", mbr->dospart[i].dp_shd); @@ -383,6 +383,7 @@ edit_mbr(int disk) mbr_field[cur_field].field); /* Propagate changes to MBR */ for (i=0; i < NDOSPART; i++) { + mbr->dospart[i].dp_typ = atoi(mbr_field[(i*12)+1].field); mbr->dospart[i].dp_start = atoi(mbr_field[(i*12)+2].field); mbr->dospart[i].dp_scyl = atoi(mbr_field[(i*12)+3].field); mbr->dospart[i].dp_shd = atoi(mbr_field[(i*12)+4].field); @@ -417,6 +418,20 @@ edit_mbr(int disk) cur_field = next; } + /* Clear active flags */ + for (i=0; i < NDOSPART; i++) + mbr->dospart[i].dp_flag = 0; + + /* Find first FreeBSD partition and make it active */ + + disk_list[disk].inst_part = -1; + for (i=0; i < NDOSPART; i++) + if (mbr->dospart[i].dp_typ == MBR_PTYPE_FreeBSD) { + disk_list[disk].inst_part = i; + mbr->dospart[i].dp_flag = ACTIVE; + break; + } + sprintf(scratch, "\nWriting a new master boot record can erase the current disk contents.\n\n Are you sure you want to write the new MBR?\n"); dialog_clear_norefresh(); if (!dialog_yesno("Write new MBR?", scratch, -1, -1)) { @@ -428,13 +443,6 @@ edit_mbr(int disk) } } - /* Find first FreeBSD partition, as kernel would upon boot */ - disk_list[disk].inst_part = -1; - for (i=0; i < NDOSPART; i++) - if (mbr->dospart[i].dp_typ == MBR_PTYPE_FreeBSD) { - disk_list[disk].inst_part = i; - break; - } if (disk_list[disk].inst_part == -1) { sprintf(errmsg, "\nThere is no space allocated to FreeBSD on %s\n", diff --git a/sbin/sysinstall/mbr.h b/sbin/sysinstall/mbr.h index 8ae2380..81e9437 100644 --- a/sbin/sysinstall/mbr.h +++ b/sbin/sysinstall/mbr.h @@ -1,6 +1,6 @@ struct field mbr_field[] = { { 0, 25, 31, -1, -1, -1, -1, -1, -1, "Master Boot Record (MBR) editor", F_TITLE, 0, 0}, - { 4, 8, 30, 30, 2, 49, 2, 50, 2, "Uknown", F_EDIT, 0, 0}, + { 4, 8, 5, 5, 2, 49, 2, 50, 2, "000", F_EDIT, 0, 0}, { 5, 31, 7, 10, 3, 1, 3, 1, 3, "0", F_EDIT, 0, 0}, { 6, 5, 5, 10, 4, 2, 6, 2, 4, "0", F_EDIT, 0, 0}, { 6, 14, 5, 10, 5, 2, 6, 3, 5, "0", F_EDIT, 0, 0}, @@ -12,7 +12,7 @@ struct field mbr_field[] = { { 9, 9, 6, 10, 11, 7, 12, 9, 11, "0", F_EDIT, 0, 0}, { 9, 27, 5, 10, 12, 7, 12, 10, 12, "0", F_EDIT, 0, 0}, {10, 10, 10, 10, 13, 10, 25, 11, 13, "Not Active", F_EDIT, 0, 0}, - { 4, 47, 30, 30, 14, 50, 14, 12, 14, "Uknown", F_EDIT, 0, 0}, + { 4, 47, 5, 5, 14, 50, 14, 12, 14, "000", F_EDIT, 0, 0}, { 5, 70, 7, 10, 15, 13, 15, 13, 15, "0", F_EDIT, 0, 0}, { 6, 44, 5, 10, 16, 14, 18, 14, 16, "0", F_EDIT, 0, 0}, { 6, 54, 5, 10, 17, 14, 18, 15, 17, "0", F_EDIT, 0, 0}, @@ -24,7 +24,7 @@ struct field mbr_field[] = { { 9, 48, 6, 10, 23, 19, 24, 21, 23, "0", F_EDIT, 0, 0}, { 9, 66, 5, 10, 24, 20, 24, 22, 24, "0", F_EDIT, 0, 0}, {10, 49, 10, 10, 25, 22, 37, 23, 25, "Not Active", F_EDIT, 0, 0}, - {14, 8, 30, 30, 26, 12, 26, 24, 26, "Uknown", F_EDIT, 0, 0}, + {14, 8, 5, 5, 26, 12, 26, 24, 26, "000", F_EDIT, 0, 0}, {15, 31, 7, 10, 27, 25, 27, 25, 27, "0", F_EDIT, 0, 0}, {16, 5, 5, 10, 28, 26, 30, 26, 28, "0", F_EDIT, 0, 0}, {16, 14, 5, 10, 29, 26, 30, 27, 29, "0", F_EDIT, 0, 0}, @@ -36,7 +36,7 @@ struct field mbr_field[] = { {19, 9, 6, 10, 35, 31, 36, 33, 35, "0", F_EDIT, 0, 0}, {19, 27, 5, 10, 36, 31, 36, 34, 36, "0", F_EDIT, 0, 0}, {20, 10, 10, 10, 37, 34, 49, 35, 37, "Not Active", F_EDIT, 0, 0}, - {14, 47, 30, 30, 38, 24, 38, 36, 38, "Uknown", F_EDIT, 0, 0}, + {14, 47, 5, 5, 38, 24, 38, 36, 38, "000", F_EDIT, 0, 0}, {15, 70, 7, 10, 39, 37, 39, 37, 39, "0", F_EDIT, 0, 0}, {16, 44, 5, 10, 40, 38, 42, 38, 40, "0", F_EDIT, 0, 0}, {16, 54, 5, 10, 41, 38, 42, 39, 41, "0", F_EDIT, 0, 0}, |