Solved

OpenSUSE remote installation with special kernel modules

Posted on 2011-02-26
9
509 Views
Last Modified: 2012-05-11
Hi experts!
I want to remotely install OpenSUSE on one of my servers. I followed the instructions given at http://en.opensuse.org/SDB:Remote_installation, but it didn't work. (My server reverted back to the already installed system.)
I think this has to do with a special kernel module (megaraid_sas) that is necessary for the raid controller. Without this module, the kernel cannot find any disk. Of course, the module is not included in the initrd provided by OpenSUSE.
I know how to add files to the initrd, but I have no idea where I have to put the required kernel module and which config file inside the initrd must be modified to make the kernel load the module.
Thanks for your help!

Christian
0
Comment
Question by:chschroe
  • 5
  • 4
9 Comments
 
LVL 34

Accepted Solution

by:
Duncan Roe earned 500 total points
Comment Utility
Can you rebuild the initrd from scratch? It should be straightforward to add another .ko file if so.
Otherwise you have to jump through hoops a bit - please see a Q I contributed to in that regard
0
 

Author Comment

by:chschroe
Comment Utility
I must admit that I have never built a complete initrd before, but that should be possible with a little help from Google. However, I also have no idea how exactly the OpenSUSE installer initrd works. The "init" program inside is an executable, not a shell script, so I do not know what it does.
I have also read the thread that you posted. I am not quite sure if I can use your instructions. What puzzles me is that I do not even have a modules.dep file in the initrd. I have only two files (loop.ko and squashfs.ko) in /lib/modules/2.6.34-12-default/initrd. Is it possible that the installation kernel does not need any modules by default? I still have not yet understood how I can tell the kernel to load a specific module, i.e. what I do with "insmod" or "modprobe" from the command line.
0
 
LVL 34

Assisted Solution

by:Duncan Roe
Duncan Roe earned 500 total points
Comment Utility
It is possible that the install kernel contains nearly everything, but it would surprise me if that were the case. These 2 modules might be what the kernel requires to unpack the rest of the initrd. I suspect the rest of the modules are in a squashfs which is loopback-mounted. I had not heard of squashfs before, but on looking I see it has been in the kernel since at least 2.6.29.2. There is documentation for it in /usr/src/linux/Documentation/filesystems/squashfs.txt. It's a read-only file system like isofs, and has mksquashfs to create one. You should find it quite familiar if you've burned file system images before.
modprobe takes a simple module name as its argument e.g. modprobe squashfs. Module arguments may be added if required. insmod takes a path name - only use it if you really know what you are doing.
0
 

Author Comment

by:chschroe
Comment Utility
Yes, you are right! I had found the squashfs after I posted my last comment, but was unable to mount it because my kernel was too old. I now have a newer machine and could inspect the squashfs, and there is indeed a lib/modules tree in it which contains several modules (network etc.) Interestingly, the "megaraid_sas" module is also present. The question is why it is not loaded. Do you have any idea? How does the kernel know which modules should be loaded during boot?
I think I will ask the support staff of our hosting provider to monitor the boot process and tell me why it does not successfully boot into the installation system. Maybe the problem is not even related to the RAID controller.
0
What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

 
LVL 34

Assisted Solution

by:Duncan Roe
Duncan Roe earned 500 total points
Comment Utility
Usually kernels are configured to load modules on demand. How they know that some device needs a particular module can be via the pci ids which match those in modules.alias. If your RAID doesn't match then the module won't load. If you cd to the modules/Linux_revision directory in the squashfs mount then cat modules.alias|grep megaraid_sas you will see the pci id patterns it loads against. Check whether yours matches.
0
 
LVL 34

Expert Comment

by:Duncan Roe
Comment Utility
Failing a match, is there some kind of rc script in the initrd? You could insert a modprobe therein. You may need to do this before the pivot_root - look for the script containing that command.
0
 

Author Comment

by:chschroe
Comment Utility
I have already checked this and yes, it matches one of the definitions in modules.alias. I have just asked the support guys to watch the reboot process and tell me if and why there is a kernel panic.
0
 

Assisted Solution

by:chschroe
chschroe earned 0 total points
Comment Utility
Well, it seems that I have indeed misinterpreted my observations. The support guy told me that the server did not automatically boot the installation kernel, so "grubonce" did not do what I expected. When he manually selected the installation kernel from the grub menu the installation system started without any problems.
Nevertheless, thanks a lot for your helpful comments that at least provided me with a deep insight into the boot process itself.
0
 

Author Closing Comment

by:chschroe
Comment Utility
It seems that I have misinterpreted my observations. Actually, the installation system already included the required modules. The problem was that the installation system never started at all.
0

Featured Post

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

If you use Debian 6 Squeeze and you are tired of looking at the childish graphical GDM login screen that is used by default, here's an easy way to change it. If you've already tried to change it you've probably discovered that none of the old met…
This article will explain how to establish a SSH connection to Ubuntu through the firewall and using a different port other then 22. I have set up a Ubuntu virtual machine in Virtualbox and I am running a Windows 7 workstation. From the Ubuntu vi…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

8 Experts available now in Live!

Get 1:1 Help Now