[Bug 197326] boot0cfg -s does not work unless kern.geom.debugflags=0x10
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Wed Feb 4 17:54:52 UTC 2015
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=197326
Bug ID: 197326
Summary: boot0cfg -s does not work unless
kern.geom.debugflags=0x10
Product: Base System
Version: 9.2-STABLE
Hardware: amd64
OS: Any
Status: New
Severity: Affects Many People
Priority: ---
Component: bin
Assignee: freebsd-bugs at FreeBSD.org
Reporter: marcnarc at xiplink.com
I've found a bit of back-and-forth on this online, and indeed r227553 says that
boot0cfg should not require the debugflags hack. However, I can confirm that
it does (this on a recent STABLE 9 build):
/root # boot0cfg -v da0
# flag start chs type end chs offset size
1 0x80 0: 2: 1 0xa5 20:254:63 126 337239
2 0x00 21:173: 1 0xa5 42:254:63 348264 342531
3 0x00 43: 89: 1 0xa5 64:254:63 696402 347823
version=2.0 drive=0x80 mask=0xf ticks=182 bell=# (0x23)
options=packet,update,nosetdrv
volume serial ID 9090-9090
default_selection=F1 (Slice 1)
/root # boot0cfg -s 2 da0
/root # boot0cfg -v da0
# flag start chs type end chs offset size
1 0x80 0: 2: 1 0xa5 20:254:63 126 337239
2 0x00 21:173: 1 0xa5 42:254:63 348264 342531
3 0x00 43: 89: 1 0xa5 64:254:63 696402 347823
version=2.0 drive=0x80 mask=0xf ticks=182 bell=# (0x23)
options=packet,update,nosetdrv
volume serial ID 9090-9090
default_selection=F2 (Slice 2)
/root #
Note that flag 0x80 is still on partition 1. Even though the default menu
selection is partition 2, rebooting at this point will boot partition 1.
However, with kern.geom.debugflags=0x10 the active flag moves to partition 2:
/root # sysctl kern.geom.debugflags=0x10
kern.geom.debugflags: 0 -> 16
/root # boot0cfg -s 2 da0
/root # boot0cfg -v da0
# flag start chs type end chs offset size
1 0x00 0: 2: 1 0xa5 20:254:63 126 337239
2 0x80 21:173: 1 0xa5 42:254:63 348264 342531
3 0x00 43: 89: 1 0xa5 64:254:63 696402 347823
version=2.0 drive=0x80 mask=0xf ticks=182 bell=# (0x23)
options=packet,update,nosetdrv
volume serial ID 9090-9090
default_selection=F2 (Slice 2)
/root #
Some debugging shows that inside boot0cfg's write_mbr() function, the
open(O_WRONLY) call returns -1 unless kern.geom.debugflags=0x10.
At the very least, boot0cfg should report an error when it fails to update the
mbr. Also, r227553 was wrong.
IMHO, boot0cfg should be able to update the mbr regardless of the
kern.geom.debugflags setting. I understand that others feel differently.
Perhaps a compile-time option could be added to let boot0cfg tweak the
kern.geom.debugflags automatically?
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list