Carl J. Benson wrote:
> Andrea Righi wrote:
>> Carl J. Benson wrote:
>>> Hello.
>>>
>>> I have a cluster of Dell 1950 PowerEdge servers. The S.I. server
>>> and clients have S.I. version 3.8.2 installed. The OS on server
>>> and clients is openSUSE 10.2.
>>>
>>> The client PXE boots OK, and the master script for the image
>>> starts to execute. All goes surprisingly well until this bit
>>> of the master script:
>>>
>>> # Wipe the MBR (Master Boot Record) clean.
>>> logmsg "dd if=/dev/zero of=$DISK0 bs=512 count=1 || shellout"
>>> dd if=/dev/zero of=$DISK0 bs=512 count=1 || shellout
>>>
>>> At which point the script dies because there is no /dev/zero.
>>>
>>> "ls /dev" shows that there are files in /dev, just no /dev/zero.
>>>
>>> If I comment out the dd line, the partitioning proceeds, the restore
>>> runs great, and the new cluster node boots -- at least on my test
>>> node. I haven't tried it on a brand new 1950 just out of the box.
>>> I think it might fail if the MBR isn't wiped clean, because Dell
>>> systems come with stuff on the disk drive already.
>>>
>>> Can someone tell me how to get /dev/zero in there?
>>>
>> This looks strange... are you using UYOK or the default BOEL kernel
>> (http://wiki.systemimager.org/index.php/UYOK)? You shouldn't have
>> problems with BOEL since udev seems to correctly create it. Anyway, I
>> think it should be good to permanently add it into the initrd_template
>> to avoid this kind of problems with udev. Could you try to create it
>> into the initrd template and re-create the boot package? I mean, in
>> your golden client run a:
>>
>> # mknod -m 600 
>> /usr/share/systemimager/boot/<golden_client_arch>/initrd_template/dev/zero c 
>> 1 5
>>
>> Then re-run si_prepareclient (and if you want also si_getimage).
>>
>> You should find the boot package (kernel + initrd.img) in
>> /etc/systemimager/boot in your golden client or (if you re-run also
>> si_getimge) in /usr/share/systemimager/boot/<arch>/<imagename> in your
>> image server. This new boot package should have /dev/zero into the
>> initrd.img.
>>
>> Regards,
>> -Andrea
> 
> Andrea,
> 
> I'm using UYOK, because I wanted the megaraid_sas driver.
> I don't know if that's in the BOEL kernel, though I suppose
> I could experiment and find out.
> 
> I created a /dev/zero exactly as you described, but it didn't
> make it into initrd.img. I don't know why not.
> 
> On the chance that there was a mknod command at that point,
> I added this code to the master script, just before "Wipe
> the MBR clean":
> 
> # Make a /dev/zero.
> logmsg "mknod -m 600 /dev/zero c 1 5 || shellout"
> mknod -m 600 /dev/zero c 1 5 || shellout
> 
> It looks like this worked. The partitioning went OK.
> 
> Thanks for your help.
> 
> I plan to drag another node up from the warehouse, and
> see if this setup will correctly partition a brand new
> PowerEdge 1950.
> 

So, probably the reason is that udev didn't create it after it has been
started (see stard_udevd in /etc/init.d/functions into the initrd for
details).

Instead of creating /dev/zero manually you should try to configure udev
to do that. For example could you try to add an entry like the
following:

KERNEL=="zero",                         NAME="zero"

in:

/usr/share/systemimager/boot/<golden_client_arch>/standard/initrd_template/etc/udev/rules.d/20-names.rules

After that you should re-create the initrd with si_prepareclient or
si_mkbootpackage and try again with the new initrd.

I know that the simplest solution for you should be to directly create
/dev/zero in the master script, but it would be great for us to have a
feedback to resolve this bug in a cleaner way...

Thanks,
-Andrea

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
sisuite-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sisuite-users

Reply via email to