I've done some more investigating and have started to come to the
conclusion that the cause of my filesystem corruption has
something to do with rebooting into DOS.
To help with the debugging, I used tune2fs to set the maximal fsck
count to 1 so that fsck is performed everytime I boot linux.
My 1GB Fireball hard drive is partitioned with DOS occupying the
first ~400MB, my root partition the next ~40MB, /usr is the next
~500MB and swap is the remainder. All four partitions are primary
partitions.
Here's the scenario:
1. Install Linux (from the 2.3.0 Slackware distribution).
2. Reboot into Linux - no problem
3. Repeat 2 ad infinitum... - still no problem.
4. Reboot into DOS but interrupt the boot so that the AUTOEXEC.BAT and
CONFIG.SYS are skipped. (To reduce the number of variables).
5. Reboot into Linux - no problem this time but wait...
6. Repeat step 4.
7. Reboot into Linux - this time the /usr partition is corrupted.
This is reproducible on demand. I must have rebooted forty times
last night!
Here are some potential problems that I have *discounted*:
o secondary cache - disabling it had no effect.
o cdrom - removing the cdrom drive from the ide connector had no effect.
o write cache - turned off by hdparm -W0
Here are some other observations that may be germane:
1. hdparm reports that IDE Block Mode is off (max MultSect is 0)
but when I boot into DOS, it reports that the block mode is 8
sectors.
2. hdparm reports that the PIOMode is 2 (fast) although the max is
4. On the DOS side, it reports PIOMode 4.
3. hdparm -c reports that the eide chipset feature is disabled
(16-bit). On the DOS side, it reports that 32-bit mode is
enabled.
4. The two Linux ext2 partitions are allocated drive letters in DOS.
5. Only the /usr partition is ever corrupted.
All the reboots were done using the three finger salute. On the
Linux side, this is correctly invoking "/sbin/shutdown -t3 -rf
now". I haven't yet checked to see if doing a power cycle between
boots prevents the corruption.
Any suggestions will be gratefully accepted - Name your beer!
------------------------------------------------------------>>>>>>>>>>>>>>>
I have spent the past week trying to install 1.2.8 from the
Slackware distribution onto my new PC. I have been having no end
of trouble, despite the help of a knowledgable friend who has
successfully installed it on his machine.
Here are the symptoms:
I can successfully boot the slackware ramdisk and install a healthy linux.
However, once I start filling the /usr partition, I eventually corrupt
it on a subsequent reboot. I shutdown the machine using:
"sync;sync;sync;shutdown -r now"
This will often work but eventually I get the following messages when I
boot:
EXT2-fs error (device 3/3): ext2_check_blocks_bitmap: Block #204 of the inode table in group 47 is marked free
EXT2-fs error (device 3/3): ext2_check_blocks_bitmap: Block #205 of the inode table in group 47 is marked free
...
EXT2-fs error (device 3/3): ext2_check_blocks_bitmap: Block #253 of the inode table in group 47 is marked free
EXT2-fs error (device 3/3): ext2_check_blocks_bitmap: Wrong free blocks count for group 47, stored = 7579, counted = 2789
EXT2-fs error (device 3/3): ext2_check_blocks_bitmap: Wrong freeed = 521725
EXT2-fs error (device 3/3): ext2_check_inodes_bitmap: Wrong free inodes count in group 47, stored = 1665, counted = 772
These messages occur when /usr (/dev/hda3) is mounted r/w. The boot
continues successfully into multi-user mode.
On the subsequent reboot, the fsck starts mangling the filesystem and the
system rapidly goes from bad to worse.
Here's some information about my system:
The chipset is Intel Triton.
From DOS, MSD shows the following:
The motherboard is American Megatrends.
BIOS Version: P5I437 BIOS V1.3 05-09-1995
BIOS IDBits: FC.01.00
BIOS Date: 10/10/94
Bus Type: ISA/AT/Classic Bus <- what about the four PCI slots?
DMA Control'r:YES
BIOS Dataseg: NONE
C: Fixed Disk, CMOS Type 47
204 Cylinders, 64 Heads
512 Bytes/Sector, 63 Sectors/Track
CMOS Fixed Disk Parameters
528 Cylinders, 64 Heads
63 Sectors/Track
D: Fixed Disk, CMOS Type 0 <- This is my Linux root partition
21 Cylinders, 64 Heads
512 Bytes/Sector, 63 Sectors/Track
CMOS Fixed Disk Parameters
306 Cylinders, 4 Heads
17 Sectors/Track
E: Fixed Disk, CMOS Type 0 <- This is my Linux /usr partition
275 Cylinders, 64 Heads
512 Bytes/Sector, 63 Sectors/Track
CMOS Fixed Disk Parameters
306 Cylinders, 4 Heads
17 Sectors/Track
I am also wondering why D: and E: show up. On my friends Linux system,
his Linux partitions don't show up in DOS.
Any help is greatly appreciated. Is my motherboard a piece of garbage?
Am I missing something obvious? Is there some simple BIOS flag to toggle?
Thanks for your help,