[sclug] Re: booting / large hard drive nightmare

Graham Swallow lists at Information-Cascade.co.uk
Sun Oct 17 21:16:32 UTC 2004

> Date: Sat, 16 Oct 2004 15:05:22 +0100 (BST)
> From: James Wyper <jrwyper at yahoo.co.uk>
> Subject: [sclug] booting / large hard drive nightmare

	I've always found that once Linux (the kernel) has booted,
	it has no problem with large disks or old ATA hardware.

	LILO uses BIOS to load Linux, from data in /boot/map
	and the first sectors on hda

	Some bios's understand 'lba32', some dont.
	Some disk are mangled with 'OnTrack' (or others from that time)

> No matter what I've tried (having reread the large disk HOWTO several
> times), I cannot get Linux (2.4.19-mdk) to recognise the entire size of
> the 80GB drive unless the OnTrack disk manager boots before Linux does.

	I think this is odd. Am I wrong?
	What exactly are the symptoms?
	Do you mean that it doesnt boot to the kernel?

	It may be that the 'OnTrack disk manager' has written C-H-S
	distorted geometry dependent information, in the fdisk records.
	When I did this, I reformatted under Linux. Then no problem.
	A long time ago I used 'disk-head-doubling', see:
	I would guess that OnTrack does something similar.

	If you dont need it for DOS, get rid of OnTrack.
	It is confusing you (and now me).
	Can you really boot such an old machine from CD? Wow!

	Its good to keep old machines ticking, but you can spend an
	infinite time, shuffling 15 pieces in a 16 piece puzzle,
	retaining boot-ability, avoiding data-loss.
	Its a lot simpler if you can reformat and refit.

> The PC is an old IBM PII with the 33.8GB bios limitation.  It has the
> original 3.2GB hard drive as hda, and a seagate 80GB drive as hdb.  hda
> has one partition mounted as /, hdb has three: hdb1 (/home), hdb5
> (/usr), and hdb6 (swap).  hdb1 is also around 3GB, hdb5 is more or less
> the rest of the disk.

	My usual approach is to create a 100MB partition on hda
	at the START of the disk, and the bios can reach it without
	problem (so LILO can ask the BIOS to load all sectors of
	vmlinux and initrd, which are listed in a (map) sector.)
	Mount that (/hda4/), and make  /boot->/hda4/boot/

	The limit C/H/S of 1024/16/32 of 512byte sectors = 512MB.
	The BIOS limitation of 33.8G means ? 64K/32/32 ??
	(I can only calc 32.8G 34.4 but you can look on the box).
	Each time you run LILO, you create a new /boot/map file
	(list of where the sectors are). Sometimes that file
	is itself above cylinder 1024, so BIOS cant reach it.
	Hence LILO part-1 loads and runs, but only gets so far.

	See also: file:/usr/src/linux/Documentation/ide.txt
	Run "fdisk -l" and focus on the details with a calculator

	try "lba32" in /etc/lilo.conf (but if BIOS rejects it UNDO)

> What I'm considering doing, as I think it's the least-work option, is
> to  swap the contents of hdb1 and hda1 (ie put / on hdb1 and /home on
> hda1), so that the kernel, lilo etc. all reside on the same partition
> as actually gets booted.  I think that in order to do this I need to
> (from a rescue CD or similar):

	This might actually work, if you havent used OnTrack to format
	hdb. Particularly if "lba32" works on it (but not on hda).
	Otherwise its the same problem(s), from a different angle.

	The "least work option" is to get a new drive for hda,
	and fdisk it for BOOT(0.1G), SYS-A(8G), SYS-B(8G), the-rest.

	In 2 years, SYS-B stops being where you put copies of CDROMS,
	and becomes the new-upgraded system.

	Does the 80G disk have a gap to copy up hdb1 (/usr?).
	Can you scratch the 80G disk, and get the 100MB on it?
	Or are you painted into a corner?

	Good Backups
	Good Luck

> use mv to get the contents of hdb1 and hda1 swapped


	cd OLD || exit
	find . | cpio -pvdm NEW

	where OLD is /mnt/hda1/	
	where NEW is /mnt/hdb9/old_root
	done from the boot floppy
	Some CD's have midnight-commander available
	(or use chroot)

   gps (at) Information-Cascade (dot) co.uk

More information about the Sclug mailing list