Next Previous Contents

4.2 Disk Boot Problems Catching

Initial Boot Problem Approach

We hope that you will never need to read this section. The described tool destined to help you catch the problems is written only for x86 (aka ia-32 or i386) platform.

Sometimes after re-partitioning of the disk by Partition Surprise (or any other tool) you may no longer boot the system although all your files are intact and perfect without corruption but you can no longer boot from such disk. In typical case the computer will write message "Non-system disk or disk error..." or it will hang out completely. In such cases:

Non-system disk or disk error...

Your computer BIOS failed to start the very first sector of your disk (called master boot record). Mail us your first 512 bytes of your hard drive, please:

head -qc 512 /dev/hda | gzip >hda-mbr.gz

This first sector really doesn't contain any sensitive information, just the layour of your disk partitions and small computer program to pass control to further sections of your disk.

Computer hang-outs

It isn't visible how far your computer got during the booting process and we need further diagnostic. For such purposes we provide "misc/int13sniff.S" tool - read the following section, please.

int13sniff.S - Disk Function Calls Tracer

You will need a floppy disk in your first floppy drive (/dev/fd0). To prevent any problems please format you disk before using it: fdformat /dev/fd0

Any data on this floppy disk WILL be erased! Even non-formatted disk will be erased during installation of int13sniff!

You may need to modify its parameters, you need to edit ONLY the initial set of #defines in file misc/int13sniff.S. Comments are included inside the source file. Probably the only change you may need is to remove #define of SERIAL_REQUIRE_DSR if you have only 3-wire (aka XON/XOFF or software-handshake) serial cable.

Finally insert your empty floppy disk and compile/install the tracer: cd misc; make int13sniff.fd0

Insert this disk to the non-booting machine and check its BIOS setup: Some computers may have disabled booting from floppy drive and/or specified the booting sequence as C:, A: (unfortunately the C: attempt will hang out). The diskette should be shortly touched by BIOS which will load our supplied disk tracer. Tracer installs itself resident to the memory and passes the control to the hard drive (drive 0x80). Any further reading of disk sectors will be catched and reported to your screen, to all possible serial ports of your computer and also stored back to the floppy disk for later retrieval.

If you want to mail us the report to debug, we usually have to know where the problem exactly lies in your case - we need to see the technical output printed to screen (like "%Read16(drive=0x80,..."). Such output can be acquired by several ways described below. Besides the dump send us the messages TOGETHER with your first disk boot sector (as described above), of course.

The absolutely first characters written to the screen are '1', '3' and ':' (3-character string "13:"). This output isn't processed as normal message and it is never sent to the serial port and/or the floppy disk buffer. These letters are only debugging output during startup of int13sniff phase, include it in the bug report only if int13sniff diskette boot just immediately locks up your machine.

Function trace output to screen

Feature can be disabled by undefining symbol SCREEN_PRINT.

All the messages are always written to the screen (via BIOS), this output should be always possible to write down manually to some piece of paper or into another computer. But you will probably prefer the another two methods described below for storing data.

Function trace output to floppy disk

Feature can be disabled by undefining symbol OUTPUT_STORE_DISK.

Text messages are all immediately stored back to the floppy disk from which you are booting. Every message is stored immediately so the operation is a bit slow but you can remove the diskette without any 'sync' right after all wanted messages are printed on the screen.

When you want to show the stored message log, insert your floppy disk as "/dev/fd0" and type make (in misc directory of Surprise source package).

Function trace output to serial port

Feature can be disabled by undefining symbol SERIAL_BAUDRATE.

Our tracer tries to send everything it writes to screen also to the serial ports of the machine (recognized by BIOS - no multiport serial boards are supported). You will have to get cross-wire serial cable and connect your non-booting computer with another one by it. Warning: It is cross-wire cable - standard modem serial cable is direct and so it is unusable! Also avoid any "gender-changer" adapters as the are also direct 1:1 wired.

If you have connected the two computers, run some terminal program (e.g. minicom) on the healthy one, select the correct serial port you with the cross-wire cable, select the baud rate (9600 8N1 by default, 8N1 is 8 data bits, none parity, 1 stop bit) and finally start capture of the port. Boot your other computer, close the capture file and mail it us.

Next Previous Contents