Improve company productivity with a Business Account.Sign Up

x
?
Solved

OpenSUSE remote installation with special kernel modules

Posted on 2011-02-26
9
Medium Priority
?
549 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 35

Accepted Solution

by:
Duncan Roe earned 2000 total points
ID: 34989862
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
ID: 34991458
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 35

Assisted Solution

by:Duncan Roe
Duncan Roe earned 2000 total points
ID: 34992732
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
A proven path to a career in data science

At Springboard, we know how to get you a job in data science. With Springboard’s Data Science Career Track, you’ll master data science  with a curriculum built by industry experts. You’ll work on real projects, and get 1-on-1 mentorship from a data scientist.

 

Author Comment

by:chschroe
ID: 34994940
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
 
LVL 35

Assisted Solution

by:Duncan Roe
Duncan Roe earned 2000 total points
ID: 34995296
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 35

Expert Comment

by:Duncan Roe
ID: 34995374
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
ID: 34995618
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
ID: 34997879
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
ID: 35042476
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

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Join Greg Farro and Ethan Banks from Packet Pushers (http://packetpushers.net/podcast/podcasts/pq-show-93-smart-network-monitoring-paessler-sponsored/) and Greg Ross from Paessler (https://www.paessler.com/prtg) for a discussion about smart network …
This installment of Make It Better gives Media Temple customers the latest news, plugins, and tutorials to make their Grid shared hosting experience that much smoother.
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:
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.

606 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