diff options
Diffstat (limited to 'lib/libdisk/write_disk.c')
| -rw-r--r-- | lib/libdisk/write_disk.c | 7 |
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) |
