On Thu, Apr 20, 2000 at 05:09:32PM +0200, Roman Seidl wrote:
> I have severe Problems with an IDE Notebook HD. The Partition Table is
> corrupted (this happened in some combination of Linux and Win2k
> Partition editing Software). Now the following happens if you plug the
> drive to an IDE and boot:
> Linux boots until "Partition Check" - hangup during Partition check.
> if booting with "noprobe" Kernel option boot is successfull but disk
> cant be accessed (due to the fact that the disk is not probed...)
> I could Patch the fs/check.c (or driver/block/genhd.c) and comment out the
> partition check.
> Can I then access the /hda device and clean the partition table?
> Has anybody had similar problems or an idea if or how else it could work
> to clean the Partition Table?
No, I don't know what to do without patching the kernel.
What kernel do you have?
[Long ago there was the possibility that the routine extended_partition()
would loop on a rotten partition table. But that was fixed by adding a
loopct check. Now there still is the problem that bread() may try to
read a block past the end of the disk and hang. Do you get I/O error
messages, or is this just a silent hang?]
Roughly speaking the chain of calls is (for recent kernels)
check_partition() <- grok_partitions() <- register_disk() <- ide_geninit()
and grok_partitions() will not read the partition table when minors
is set to 1, so if you set minors to 1 in the call to register_disk()
in ide_geninit() [there is already an #ifdef'd 1] then further partitioning
is not investigated.
Your question means that there should be a boot-time option (and of course
it is trivial to add). More interesting is finding out what went wrong.
If the rotten partition table just pointed at something past the end of the disk
then we understand - another trivial patch will avoid this in the future.
But if somehow some partition code gets confused (and you do not get I/O errors)
then I would be interested in a copy of your MBR and in the output of
"sfdisk -uS -x -l /dev/xxx".
Andries - firstname.lastname@example.org
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to email@example.com
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Sun Apr 23 2000 - 21:00:17 EST