Expiring Today—Celebrate National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

OpenSUSE remote installation with special kernel modules

Posted on 2011-02-26
9
Medium Priority
?
534 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
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!

 

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

Ransomware: The New Cyber Threat & How to Stop It

This infographic explains ransomware, type of malware that blocks access to your files or your systems and holds them hostage until a ransom is paid. It also examines the different types of ransomware and explains what you can do to thwart this sinister online threat.  

Question has a verified solution.

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

Setting up Secure Ubuntu server on VMware 1.      Insert the Ubuntu Server distribution CD or attach the ISO of the CD which is in the “Datastore”. Note that it is important to install the x64 edition on servers, not the X86 editions. 2.      Power on th…
In my business, I use the LTS (Long Term Support) versions of Linux. My workstations do real work, and so I rarely have the patience to deal with silly problems caused by an upgraded kernel that had experimental software on it to begin with from a r…
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.:
Connecting to an Amazon Linux EC2 Instance from Windows Using PuTTY.
Suggested Courses

718 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