MBR zapped when panicking?

Dimitry Andric dimitry at andric.com
Tue Oct 21 11:17:55 PDT 2003


Hi,

Today I had a -CURRENT machine panic on me with a page fault, and
something happened that I have seen before: the machine refused to
come up afterwards. Closer inspection revealed that the MBR on the
boot disk was totally zapped, filled with seemingly random characters.
Luckily the disk label was still intact, allowing me to recover the
machine reasonably easy. The MBRs on the other disks (see attached
dmesg.txt for more info) wasn't touched by the panic.

Note that all disks in this machine are Dangerously Dedicated (see
attached fdisk-ad[023].txt). I hope that's not totally unsupported,
but what I do observe is that all these DD partitions seem to start at
offset 0 instead of 1, thereby making the MBR actually part of the
partition itself. Could this be a reason for something (GEOM?)
stomping over the MBR when the box panics?

Btw, this panic was a page fault, and I got the nice 'giving up on xxx
buffers' message too... :(  It seems to have panicked somewhere in the
IPv6 stack (see panic.txt for more info), I think I read somewhere
that this has been fixed already? If so, I'll just cvsup and hope it
doesn't happen again...

Anyhow, I'll be keeping some extra spare backups of all my bootsectors
and disklabels. :)

Cheers,
Dimitry
-------------- next part --------------
Copyright (c) 1992-2003 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD 5.1-CURRENT #0: Fri Oct 17 13:39:52 CEST 2003
    root at vfbsd5.dim:/usr/obj/usr/src/sys/TENSOR
Preloaded elf kernel "/boot/kernel/kernel" at 0xc075e000.
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Pentium/P54C (150.00-MHz 586-class CPU)
  Origin = "GenuineIntel"  Id = 0x52c  Stepping = 12
  Features=0x1bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8>
real memory  = 67108864 (64 MB)
avail memory = 59912192 (57 MB)
Intel Pentium detected, installing workaround for F00F bug
netsmb_dev: loaded
npx0: [FAST]
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcibios: BIOS version 2.10
Using $PIR table, 5 entries at 0xc00fdae0
pcib0: <Host to PCI bridge> at pcibus 0 on motherboard
pci0: <PCI bus> on pcib0
pci_cfgintr: 0:15 INTA BIOS irq 11
pci_cfgintr: 0:16 INTA BIOS irq 10
pci_cfgintr: 0:17 INTA BIOS irq 9
isab0: <PCI-ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX3 WDMA2 controller> port 0xf000-0xf00f at device 7.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata0: [MPSAFE]
ata1: at 0x170 irq 15 on atapci0
ata1: [MPSAFE]
pci0: <display, VGA> at device 15.0 (no driver attached)
fxp0: <Intel 82559 Pro/100 Ethernet> port 0x6100-0x613f mem 0xe4000000-0xe40fffff,0xe4201000-0xe4201fff irq 10 at device 16.0 on pci0
fxp0: Ethernet address 00:d0:b7:a0:8c:26
miibus0: <MII bus> on fxp0
inphy0: <i82555 10/100 media interface> on miibus0
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp1: <Intel 82559 Pro/100 Ethernet> port 0x6200-0x623f mem 0xe4100000-0xe41fffff,0xe4200000-0xe4200fff irq 9 at device 17.0 on pci0
fxp1: Ethernet address 00:d0:b7:a0:8b:0a
miibus1: <MII bus> on fxp1
inphy1: <i82555 10/100 media interface> on miibus1
inphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x64,0x60 on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
fdc0: <Enhanced floppy controller (i82077, NE72065 or clone)> at port 0x3f7,0x3f0-0x3f5 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: Generic chipset (ECP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/16 bytes threshold
ppbus0: <Parallel port bus> on ppc0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x100>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A, console
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
unknown: <PNP0303> can't assign resources (port)
unknown: <PNP0501> can't assign resources (port)
unknown: <PNP0700> can't assign resources (port)
unknown: <PNP0401> can't assign resources (port)
unknown: <PNP0501> can't assign resources (port)
Timecounter "TSC" frequency 150000888 Hz quality 800
Timecounters tick every 10.000 msec
IPsec: Initialized Security Association Processing.
IP Filter: v3.4.31 initialized.  Default = block all, Logging = enabled
GEOM: create disk ad0 dp=0xc1607d70
ad0: 9787MB <QUANTUM FIREBALL lct10 10.2A> [19885/16/63] at ata0-master WDMA2
GEOM: create disk ad2 dp=0xc1607b70
ad2: 6149MB <QUANTUM FIREBALL CR6.4A> [13328/15/63] at ata1-master WDMA2
GEOM: create disk ad3 dp=0xc1607a70
ad3: 4028MB <QUANTUM FIREBALL CR4.2A> [8184/16/63] at ata1-slave WDMA2
Mounting root from ufs:/dev/ad0s1a
fxp0: Microcode loaded, int_delay: 1000 usec  bundle_max: 6
fxp0: Microcode loaded, int_delay: 1000 usec  bundle_max: 6
fxp1: Microcode loaded, int_delay: 1000 usec  bundle_max: 6
fxp1: Microcode loaded, int_delay: 1000 usec  bundle_max: 6
fxp0: Microcode loaded, int_delay: 1000 usec  bundle_max: 6
fxp1: Microcode loaded, int_delay: 1000 usec  bundle_max: 6
Accounting enabled
-------------- next part --------------
******* Working on device /dev/ad0 *******
parameters extracted from in-core disklabel are:
cylinders=19885 heads=16 sectors/track=63 (1008 blks/cyl)

Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=19885 heads=16 sectors/track=63 (1008 blks/cyl)

Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 0, size 20044080 (9787 Meg), flag 80 (active)
	beg: cyl 0/ head 0/ sector 1;
	end: cyl 1023/ head 15/ sector 63
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>
-------------- next part --------------
******* Working on device /dev/ad2 *******
parameters extracted from in-core disklabel are:
cylinders=13328 heads=15 sectors/track=63 (945 blks/cyl)

Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=13328 heads=15 sectors/track=63 (945 blks/cyl)

Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 0, size 12594960 (6149 Meg), flag 0
	beg: cyl 0/ head 0/ sector 1;
	end: cyl 1023/ head 14/ sector 63
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>
-------------- next part --------------
******* Working on device /dev/ad3 *******
parameters extracted from in-core disklabel are:
cylinders=8184 heads=16 sectors/track=63 (1008 blks/cyl)

Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=8184 heads=16 sectors/track=63 (1008 blks/cyl)

Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 0, size 8249472 (4028 Meg), flag 0
	beg: cyl 0/ head 0/ sector 1;
	end: cyl 1023/ head 15/ sector 63
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>
-------------- next part --------------
% sudo gdb -k /boot/kernel/kernel /var/crash/vmcore.1
GNU gdb 5.2.1 (FreeBSD)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-undermydesk-freebsd"...
panic: page fault
panic messages:
---
Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0x20
fault code              = supervisor read, page not present
instruction pointer     = 0x8:0xc04b6dd7
stack pointer           = 0x10:0xc6318ad8
frame pointer           = 0x10:0xc6318ae4
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 13 (swi8: tty:sio clock)
trap number             = 12
panic: page fault
Stack backtrace:

syncing disks, buffers remaining... 893 893 893 893 893 893 893 893 893 893 893 893 893 893 893 893 893 893 893 893
giving up on 672 buffers
Uptime: 5h58m42s
Dumping 64 MB
 16 32 48
---
Reading symbols from /usr/obj/usr/src/sys/TENSOR/modules/usr/src/sys/modules/linux/linux.ko.debug...done.
Loaded symbols for /usr/obj/usr/src/sys/TENSOR/modules/usr/src/sys/modules/linux/linux.ko.debug
#0  doadump () at /usr/src/sys/kern/kern_shutdown.c:240
240             dumping++;
(kgdb) bt
#0  doadump () at /usr/src/sys/kern/kern_shutdown.c:240
#1  0xc04befa1 in boot (howto=256) at /usr/src/sys/kern/kern_shutdown.c:372
#2  0xc04bf2a5 in panic () at /usr/src/sys/kern/kern_shutdown.c:550
#3  0xc061045a in trap_fatal (frame=0xc6318a98, eva=32)
    at /usr/src/sys/i386/i386/trap.c:820
#4  0xc060fbdd in trap (frame=
      {tf_fs = 24, tf_es = 16, tf_ds = 16, tf_edi = -1059161424, tf_esi = 0, tf_ebp = -969831708, tf_isp = -969831740, tf_ebx = -1049732976, tf_edx = -1059161424, tf_ecx = 0, tf_eax = 1, tf_trapno = 12, tf_err = 0, tf_eip = -1068798505, tf_cs = 8, tf_eflags = 66050, tf_esp = -1049733120, tf_ss = -1047585792})
    at /usr/src/sys/i386/i386/trap.c:252
#5  0xc0602748 in calltrap () at {standard input}:102
#6  0xc0526516 in rtfree (rt=0xc16e5890) at /usr/src/sys/net/route.c:279
#7  0xc056d551 in nd6_output (ifp=0xc0de7ab0, origifp=0xc16db000,
    m0=0xc0e05a00, dst=0xc19168dc, rt0=0xc18f1c00)
    at /usr/src/sys/netinet6/nd6.c:1917
#8  0xc056441a in ip6_output (m0=0x500, opt=0x0, ro=0xc18304b0, flags=0,
    im6o=0x0, ifpp=0x0, inp=0xc0e05a46)
    at /usr/src/sys/netinet6/ip6_output.c:961
#9  0xc054286f in tcp_output (tp=0xc1963000)
    at /usr/src/sys/netinet/tcp_output.c:883
#10 0xc05468bf in tcp_timer_delack (xtp=0xc1963000)
    at /usr/src/sys/netinet/tcp_timer.c:198
#11 0xc04cdb3f in softclock (dummy=0x0) at /usr/src/sys/kern/kern_timeout.c:225
#12 0xc04ae011 in ithread_loop (arg=0xc0de4c80)
    at /usr/src/sys/kern/kern_intr.c:534
#13 0xc04ad0d5 in fork_exit (callout=0xc04adea8 <ithread_loop>,
    arg=0xc0de4c80, frame=0xc6318d48) at /usr/src/sys/kern/kern_fork.c:796
(kgdb) q
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 183 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20031021/d80dadfb/attachment.bin


More information about the freebsd-current mailing list