Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

OpenSUSE remote installation with special kernel modules

Posted on 2011-02-26
9
Medium Priority
?
537 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
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 

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

Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I. Introduction There's an interesting discussion going on now in an Experts Exchange Group — Attachments with no extension (http://www.experts-exchange.com/discussions/210281/Attachments-with-no-extension.html). This reminded me of questions tha…
In part one, we reviewed the prerequisites required for installing SQL Server vNext. In this part we will explore how to install Microsoft's SQL Server on Ubuntu 16.04.
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…
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.
Suggested Courses
Course of the Month6 days, 9 hours left to enroll

783 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