Restoring bootcode

Polytropon freebsd at edvax.de
Sun Apr 29 21:05:57 UTC 2018


On Sun, 29 Apr 2018 23:48:04 +0530, Manish Jain wrote:
> On 04/29/18 22:00, Robert Fitzpatrick via freebsd-questions wrote:
> > Something happens to the bootcode since an upgrade a while back and I've 
> > been starting this 10.4-RELEASE server at the loader OK prompt using 
> > 'set currdev=disk0s1a' and then boot. Here is the server system...
> > 
> > root at dev:~ # gpart show
> > =>      63  41942977  ada0  MBR  (20G)
> >          63  41929587     1  freebsd  [active]  (20G)
> >    41929650     13390        - free -  (6.5M)
> > 
> > =>       0  41929587  ada0s1  BSD  (20G)
> >           0   1024000       1  freebsd-ufs  (500M)
> >     1024000    524288       2  freebsd-swap  (256M)
> >     1548288  20480000       4  freebsd-ufs  (9.8G)
> >    22028288  19901299       5  freebsd-ufs  (9.5G)
> > 
> > I've tried the following to install the boot code, but still ending up 
> > at the loader prompt...
> > 
> > root at dev:~ # gpart bootcode -b /boot/mbr ada0
> > bootcode written to ada0
> > 
> > I also tried with ada0s1 with same result. Clearly I don't understand 
> > how to get this done, can someone help?
> > 
> 
> Hi Robert,
> 
> /boot/mbr needs you to set ada0s1 as the active partition. The easier 
> solution in your case perhaps is:
> 
> gpart bootcode -b /boot/boot0 ada0
> gpart bootcode -b /boot/boot ada0s1

As this seems to be a MBR setup, the commands should probably be:

	# gpart bootcode -b /boot/mbr ada0
	# gpart set -a active -i 1 ada0
	# gpart bootcode -b /boot/boot ada0s1

Step 1 will add the regular MBR boot code, assuming this is a
FreeBSD-only system (no boot manager required).

Step 2 covers the case where the "active" flag has accidentally
been cleared; make sure it is set again (so the system will
recognize the partition s1 as being active, and attempt booting
by transfering control to it).

Step 3 will install the kernel loading mechanism for the slice
that hosts the FreeBSD partitions (and therefore continue booting
the kernel from /boot/kernel/kernel on /dev/ada0s1a, its default
location).

See "man 8 boot" and "man gpart" (sec. EXAMPLES).

Further reading:

http://www.wonkity.com/~wblock/docs/html/disksetup.html#_the_old_standard_mbr

:-)



-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...


More information about the freebsd-questions mailing list