New Debian Install - HELP!
Kerry Hoath
kerry at gotss.net
Sat Oct 11 23:08:58 EDT 2008
I can answer one of your questions easily enough.
"What the hell does lilo have to do with raid?"
Quite a lot actually. As you probably know; unless you have bios support and
devicemapper set to handle those bios fakeraid situations you can only boot
from a raid1 array, i.e. 1 or more drives beeing mirrored.
Yes 1 drive is a valid raid1 array with no redundancy.
On my raid box, I have 7 drives; each having a 200 meg /boot partition on
them.
If I tell Lilo that /boot is in fact on an md device it will insure that
_all_ of the boot sectors on the raid devices are updated when I run Lilo,
all 7 of them.
It can also place the same code on all 7 mbrs so that if a disk fails and I
pull it out; the system will still boot.
RAID isn't much good if the system it is running on fails to boot with the
loss of a drive.
Of course the rest of the partitions on that box are raid5 and there's a
raid10 section for swap but it is important that Lilo keeps the boot
information consistant across all drives.
The other thing Lilo can do is mark all boot sectors as using bios drive
0x80 on all drives to boot the operating system. This means that if drive 0
(0x80 usually) fails, drive 1 becomes drive 0 and therefor 0x80.
To load sectors from disks at boot time the bios uses int 0x13 and loads the
drive letter into the dl register. numbers 0 through 0x7f are considered
floppy drives etc, drives above 0x80 (or 128 decimal) are the first second
3rd etc hard disks.
Modern bioses allow you to set the boot order so that whatever drive you
like shows as 0x80, either hard disks or usb external hard disks if you
like.
Whilst modern bioses use LBA and soe does grub, Linux needs to know which
drive it is pulling the boot code from for example the first or second drive
etc.
Drives can be detected in a different order in Linux as to that in Windows,
which is why there are mechanisms to override the /dev/xdx mappings to bios
drive numbers.
Note that Linux treats IDE drives as scsi if you are using libata to control
your drives; this has been true for most chipsets since kernel 2.6.12 or so.
/dev/hdx is used for chips that are not under libata control.
libata is the new device framework that supports amung other things, hotplug
sata, sata power management and command queuing, and advanced drive power
management.
If you upgrade from a system that used the old disk drivers your drives will
change names from /dev/hdx to /dev/sdx.
If everything goes correctly which it often does, you get /dev/hda to
/dev/sda however if you only hav /dev/hdc it becomes /dev/sdb as the sd a
through z increase monotomically with each drive detected.
Note that with udev and initial ram disks and the like present in most
modern Linux distributions only a subset of device nodes exist in
/dev/.static and udev creates devices as the kernel initializes hardware and
populates an in memory copy of /dev
You can get around some of this problem in lilo by specifying devices by
there major and minor numbers, root=0x0801
however it is much cleaner to fix the mappings in the boot loader.
There is no way of getting around fiddling in bios config however there are
accessible bioses; those that can send bios setup out through a serial port
or similar. Problem is they only work on a subset of system boards, however
googling for openbios might be of value.
There is also now a PCI version of the pc-wiesel card that will send video
output through a serial port; they're not cheap though.
I am lucky enough to get my wife to read bioses to me when necessary.
Regards, Kerry.
More information about the Speakup
mailing list