Slackware Kernel Panic with extra PCI Sata controller sata_sil24 PCI40010
1 Attachment(s)
I have recently installed in a Slackware 14.1 the following board:
IOCrest SATA II 4 x PCI RAID Host Controller Card SY-PCI40010 https://www.amazon.com/IOCrest-SATA-.../dp/B002R0DZZ8 I have previously used this board with Ubuntu 16 (no problems, same board and processor, 32 bit) And the main use is a an option to add extra hard drives (No RAID is used). Those are the hard drives: Code:
Disk /dev/sda: 320.1 GB, 320072933376 bytes Code:
03:00.0 RAID bus controller: Silicon Image, Inc. SiI 3124 PCI-X Serial ATA Controller (rev 02) Without any hard drive sata cable connected to the controller board (4 ports) the computer boots up and after you connect the hard drive to port 0 the sde drive shows up nicely... Dmesg result Code:
[ 26.893348] ADDRCONF(NETDEV_UP): eth0: link is not ready I need to have this machine restart with no headaches... And I'm wondering why Ubuntu does not crash... The kernel panic is: VFS: Unable to mount root fs on unknown-block(8,2) Attachment 28966 |
Quote:
So the new board seems to take precedence to your bootloader (it probably becomes sda to the kernel). I actually have the same problem on a HP workstation with external E-sata port (controller of which is on the motherboard), the disk, connected to that, must NOT be switched on, when rebooting the system. Luckily that is much more easy to assure with an external disk. |
What is the root= parameter on your Slack bootloader's kernel cmdline? If it's device name, switching it to LABEL or UUID should avoid the device enumeration usurpation that almost assuredly is assigning sda instead of sde to the PCI card when it has a connected and powered HD during POST. There may be a BIOS change you can make to keep the onboard SATA ports prioritized over the PCI card. Rebuilding the initrd with the Silicon Image module explicitly excluded might also help, as might using the PCI card's own setup utility.
|
ehartman: Thank you for the clarification on enumeration (8,2). Unfortunately this guy will be a server so I cannot have to reconnect the drives on each power failure.
mrmazda: Thank you for the insight. Quote:
To remove the sata_sil24 from initrd seems a good idea, can you point me a site where I can read how to do that? See my LILO config below, no fancy parameter on kernel loading. Code:
LILO configuration file |
Member Response
|
Solution with persistent naming
After this few tips I went quest the persistent naming option. This is something that Ubuntu does quite a lot with hardware (sometimes to my annoyance)
So I went Slackware Documentation Project: https://docs.slackware.com/howtos:sl...sistent_naming And fixed boot using the UUID of the SDA2 to the boot process (initrd) and not recompiling kernel. Needed to reinstall the LILO with the new initrd and voilą... Now Slackware is booting properly and all drive mapped with no problems. This is my NEW fstab using UUID: Code:
#/dev/sda1 Code:
mkinitrd -c -k 3.2.29 -f ext4 -r "UUID=11d6ab52-f72d-453e-bd65-6ccca3dd3308" -m usbhid:ehci-hcd:uhci-hcd:mbcache:jbd2:ext4 -u -o /boot/initrd.gz |
Quote:
Others have already mentioned using a kernel and initrd without the module for the new board. If that module gets loaded AFTER the disk with the root fs has been found and mounted, there's no problem anymore. A even more radical solution would be to connect your original root disk to the new board (and adjust the other accordingly, so that the kernel would find your "old" disks on the new board and the "to be added ones" on the mother controllers. But you seem to have marked this SOLVED, so you managed to get your server working again; congratulations! |
All times are GMT -5. The time now is 03:39 PM. |