Solved

OpenSUSE remote installation with special kernel modules

Posted on 2011-02-26
9
511 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
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 34

Assisted Solution

by:Duncan Roe
Duncan Roe earned 500 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
 

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
What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

 
LVL 34

Assisted Solution

by:Duncan Roe
Duncan Roe earned 500 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 34

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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Fixing Non-Standard characters in text 8 92
liboauth-php x oauth-1.2.3 3 46
linux redhat 7.2 10 44
Oracle 10g standard edition server with 4 processors 3 37
Linux users are sometimes dumbfounded by the severe lack of documentation on a topic. Sometimes, the documentation is copious, but other times, you end up with some obscure "it varies depending on your distribution" over and over when searching for …
1. Introduction As many people are interested in Linux but not as many are interested or knowledgeable (enough) to install Linux on their system, here is a safe way to try out Linux on your existing (Windows) system. The idea is that you insta…
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
Connecting to an Amazon Linux EC2 Instance from Windows Using PuTTY.

895 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

14 Experts available now in Live!

Get 1:1 Help Now