summaryrefslogtreecommitdiff
path: root/lib/libdisk/write_disk.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libdisk/write_disk.c')
-rw-r--r--lib/libdisk/write_disk.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/libdisk/write_disk.c b/lib/libdisk/write_disk.c
index 83c17b12f3e4..54025b277e52 100644
--- a/lib/libdisk/write_disk.c
+++ b/lib/libdisk/write_disk.c
@@ -339,6 +339,9 @@ Write_Disk(struct disk *d1)
#endif
#ifdef PC98
+ if (d1->bootipl)
+ write_block(fd,WHERE(0,d1),d1->bootipl);
+
mbr = read_block(fd,WHERE(1,d1));
memcpy(mbr+DOSPARTOFF,dp,sizeof *dp * NDOSPART);
/* XXX - for entire FreeBSD(98) */
@@ -348,6 +351,10 @@ Write_Disk(struct disk *d1)
PC98_EntireDisk = 1;
if (PC98_EntireDisk == 0)
write_block(fd,WHERE(1,d1),mbr);
+
+ if (d1->bootmenu)
+ for (i = 0; i * 512 < d1->bootmenu_size; i++)
+ write_block(fd,WHERE(2+i,d1),&d1->bootmenu[i * 512]);
#else
mbr = read_block(fd,WHERE(0,d1));
if (d1->bootmgr)