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

Re: initrd race conditions



Mike Crowe wrote:
Mike Crowe wrote:
On Tue, Feb 07, 2006 at 02:26:54PM +0000, Steven Haslam wrote:
  
I actually had this exact problem myself for the first time this morning
with my X2 system, with an initrd built by initramfs-tools.

Using yaird may help because AIUI it will only load the modules required
to mount the root filesystem during the initramfs stage, or at least
will load those first.
    
Assuming I can persuade the stock 2.6.15 kernel to use yaird rather
than initramfs then I'll give that a go. If I have to compile the
kernel myself I might as well just compile in the drivers I need which
will also solve the problem for me.
  
There shouldn't be any kernel changes required. Just use mkinitrd.yaird to build a new initrd.img.
You can fix the names of network interfaces using udev-- istr that's
available in sarge, even though a kernel that supports it isn't (fun).

e.g. I have:

bash$ cat /etc/udev/rules.d/010_local.rules
    
[snip]

But surely that's too late? The ramdisk will load the drivers before
my root filesystem and therefore that rules file can be seen.

  
I presume that unless you're mounting the root filesystem over nfs, then the ramdisk doesn't try to load net drivers. There's a certain amount of "it works for me" in play here. Hmm. You could well be right-- the machine I'm using that udev tinkering on is using a yaird-built ramdisk, so it definitely *doesn't* load the net drivers.

<tinkers> OTOH, building an initramfs using initramfs-tools takes a copy of your /etc/udev and /etc/modprobe.d at the time it was built, so you just have to update /etc/udev/rules.d and rebuild the initrd.

SRH

Reply to: