[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Installation help



[This message has also been posted to linux.debian.user.]
In article <9xSj4-6zc-1@gated-at.bofh.it>, Aumnayan D'Letti wrote:
> I am installing the latest stable version of Debian (40rl) and am
> having an issue with how it's seeing my primary HD.
>
> It's set up as the master on the primary IDE chain, which to me
> signifies that it should be seen as IDE1, or HDA. However, the
> partitioner is picking it up as IDE5 (hde). Which posses no problems
> for me until the installation is completed, as there is no /dev/hde.

Welcome to the brave new world of udev.
Device names in /dev are no longer stable.  They get created
on the fly as needed, and they don't always get created
in the same order from one boot to the next.
There's a persistence mechanism but you can't rely
on it yet.

In your case, the debian-installer kernel saw that drive
as hde, but the real kernel sees it as, perhaps, hda.
If you do a kernel update, it might be hde again.
Or if you replace a burned out motherboard.
I've had the installers in Debian-4.0r1 and
Ubuntu-7.10 fail because of this problem.
If you don't know what's going on, it's a show-stopper.

In the case of drives with file systems on them, the best
workaround is to add a volume label to each file system.
Then refer to them by volume label in /etc/fstab
and /boot/grub/menu.lst, not by device name.  When you
call mount, the kernel will search every disk it can find
looking for the matching file system.
Give your swap partition a volume label, too.

This problem afflicts network interfaces, too.  They don't
have volume labels, but they have MAC addresses.
If you only have one Ethernet interface it doesn't matter,
but on a router you should tie the interface names to
MAC addresses.  I created a file
/etc/udev/rules.d/z25_persistent-net.rules containing
these lines
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:30:05:5e:8f:0d", NAME="eth0"
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:e0:29:6a:d7:63", NAME="eth1"
The double equals are tests for matching.  Commas
between tests are logical "and" operators.  A single
equals is an assignment.

If you replace an Ethernet card, remember to add another
line for the new MAC address.
For other devices, look in the /sys directory for the
device and then use udevinfo -a -p to discover its
usable attributes.

I tried to force the kernel to see devices in the same
order every time by listing their drivers in /etc/modules.
It's not worth it.  Use udev/rules.d.  See
http://www.reactivated.net/writing_udev_rules.html and
the remarkably unhelpful
http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-FAQ
You might also get some clues from how they handle it
in Gentoo.
http://webpages.charter.net/decibelshelp/LinuxHelp_UDEVPrimer.html
and http://forums.debian.net/viewtopic.php?t=259  (sort of a Howto)
and http://www.debianadmin.com/rename-network-interface-using-udev-in-linux.html


Cameron




Reply to: