Welcome to Linux Forums! With a comprehensive Linux Forum, information on various types of Linux software and many Linux Reviews articles, we have all the knowledge you need a click away, or accessible via our knowledgeable members.
Write an article for LinuxForums Today! Win Great Prizes!
Alright, I've been working with debian for a couple years now, and recently it's started doing a very odd thing. It can't decide what order the drives go in.
I have an older motherboard and a very large new harddrive and DVD±RW so I've got a PCI IDE controller card.
I keep the onboard IDE active for a DVD-ROM that doesn't like being on the UATA card and also since I need to boot from CDROM once in a while. Because of this I go ahead and keep my windows HDD on that controller too.
So I've got:
OBIDE0,0 - HDD (80h boot) WD 20G
OBIDE1,0 - DVD
PCIIDE0,0 - HDD (81h boot) Seagate 160G
PCIIDE1,0 - DVD
Now most of the time the debian installer looks at this and puts the 160 as /dev/hda and 20G as /dev/hde. Fine, I'm in Linux more than Windows anyway so this works. I use grub so I just edit menu.lst to sort out the (hd0,0) and (hd1,0) references because the installer puts them the wrong way around.
After awhile though, with or without updating the kernel in anyway (it's etch so it starts out 2.6.15, and I sometimes let it look on sid sources and grab 2.6.16) it starts doing things backward. Sometimes it can't make up its mind, other times it firmly becomes convinced PCI IDE = /dev/hde -> h and I can jolly well live with it. This is using even ide=reverse, this is with the onboard contoller completely turned off. I'd alter GRUB and fstab to hde, that's not a problem what is though, is that if I don't turn off the OBIDE I get a kernel panic where it is during the scripts just after drive detection while loading the kernel about trying to access /dev/hda2 beyond the end of the drive (PCI 0's 2nd partition is a swap partition OB's 2nd is an extended partititon). I hoped it was just that fstab had hda2 as the swap so I've edited it, and got ready to do things backward... it's still doing it.
I don't get it. What is up that could cause this? And what can I do to fix it? It seems to be debian specific, because I can use knoppix repeatedly w/o ever seeing it do this. I would just compile a kernel that has the "Offboard IDE controllers first" = y but I can't, it always errors out trying to compile the NIC drivers, if they weren't chipsets I use I'd just tell it to not have them. Besides, I'd like to think that the config that I'm using on the same kernel version I'm using, from the same distro should compile for me as well as the maintainers.
I'm sure you can fix this with some simple GRUB boot parameters.
You could try with some "hdX=noprobe" parameters, or even "irqpoll".
Maybe you'll need to anualy specify which devices address should be assign to which physical device.
Also make sure you are using the proper IDE driver for your PCI card (make sure it is not being taken care by the generic IDE driver). For that you may want to modify your "initrd" file, to make sure the right IDE driver gets loaded before the generic one takes control of your devices.
Post again if you need more details.
__________________
"To express yourself in freedom, you must die to everything of yesterday. From the 'old', you derive security; from the 'new', you gain the flow."
I'm sure you can fix this with some simple GRUB boot parameters.
You could try with some "hdX=noprobe" parameters, or even "irqpoll".
Maybe you'll need to anualy specify which devices address should be assign to which physical device.
Also make sure you are using the proper IDE driver for your PCI card (make sure it is not being taken care by the generic IDE driver). For that you may want to modify your "initrd" file, to make sure the right IDE driver gets loaded before the generic one takes control of your devices.
Post again if you need more details.
irqpoll only was usefull last night when all of a sudden it couldn't remember what to do with IRQ12 (the PCI IDE card). It didn't change how anything was looked at, and I'm not sure it really helped the spontaneous failure (which has actually never happend before). The error suggested using it. So far as I can tell, it made no difference. I didn't get the IRQ not detected or whatever the error was again. Though, that might not mean much since that was the only time that'd ever happened.
It's a Belkin UltraATA/133 card using Silicon Image chipset on a PCI v2.1 compliant ASUS P5A with BIOS rev 1010 beta001 which was installed by ASUS once when I had to send my motherboard in for warrenty due to the original frying. So far as I can tell the silicon image driver is the module that udev is loading for it.
what does the hd<x>=noprobe do?
The specifying the device addressing sounds promising... how do I do that?
I'm open to anything. By all means... please.. detail away.
The simplest solution in your case would probably be to just rebuild the initrd files with modules in the right order. Of course make a backup of the actual one first. To know if it is necessary, please post the output of those 3 commands:
Code:
lspci
Code:
cat /etc/modules
Code:
lsmod | grep ide
__________________
"To express yourself in freedom, you must die to everything of yesterday. From the 'old', you derive security; from the 'new', you gain the flow."
__________________
"To express yourself in freedom, you must die to everything of yesterday. From the 'old', you derive security; from the 'new', you gain the flow."
The simplest solution in your case would probably be to just rebuild the initrd files with modules in the right order. Of course make a backup of the actual one first. To know if it is necessary, please post the output of those 3 commands:
Alright here we are:
Quote:
Code:
lspci
Code:
0000:00:00.0 Host bridge: ALi Corporation M1541 (rev 04)
0000:00:01.0 PCI bridge: ALi Corporation M1541 PCI to AGP Controller (rev 04)
0000:00:02.0 USB Controller: ALi Corporation USB 1.1 Controller (rev 03)
0000:00:03.0 Bridge: ALi Corporation M7101 Power Management Controller [PMU]
0000:00:07.0 ISA bridge: ALi Corporation M1533 PCI to ISA Bridge [Aladdin IV] (rev c3)
0000:00:09.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 05)
0000:00:09.1 Input device controller: Creative Labs SB Live! MIDI/Game Port (rev 05)
0000:00:0a.0 RAID bus controller: Silicon Image, Inc. PCI0680 Ultra ATA-133 Host Controller (rev 02)
0000:00:0b.0 Ethernet controller: Linksys NC100 Network Everywhere Fast Ethernet 10/100 (rev 11)
0000:00:0f.0 IDE interface: ALi Corporation M5229 IDE (rev c1)
0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R100 QD [Radeon 7200]
Quote:
Code:
cat /etc/modules
Code:
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
ide-cd
ide-disk
ide-generic
psmouse
Make sure you do a backup of your actual initrd file.
Code:
cp /boot/initrd.img-$(uname -r) ~/backup
~/backup being your backup directory (like /home/yourself/backup)
Then modify your /etc/modules so it looks like that:
Code:
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
siimage
alim15x3
ide-cd
ide-disk
ide-generic
psmouse
Then regenerate a new initrd file that loads the module in proper order, so ide_generic doesn't take control of your devices.
Code:
su
mkinitramfs -o /boot/initrd.img-$(uname -r)
And then reboot.
There is a possibility that your machine won't boot using that initrd file (however remote), so have a Grub Boot Disk around. Or any Live CD will allow you to recopy the backed up initrd file.
__________________
"To express yourself in freedom, you must die to everything of yesterday. From the 'old', you derive security; from the 'new', you gain the flow."
Time to reboot. ~crosses fingers, toe, eyes and whispers prays~ I hope this works because... well... I really don't care if linux is hda or hdz, just so long as I don't get kernel panics when it's not the only detectable drive. If this accomplishes that. I may set / as ro and never change a bleedin' thing ever again (or at least for 20 min... shiny things and buttons are my bane).
No good. It boots the initrd.img but it no helped I finally remembered to take a sec and write down the error though:
Code:
Begin: Running /scripts/local-premount ...
Attempting manual resume
attempt to access beyond end of device
hda2: rw=16, want=8, limit=2
Kernel panic - not syncing: I/O error reading memory image
This is what happens when I attempt to boot with the onboard IDE active at all, even if I tell the bios that there are no drives attached to it. This also, as I've said before, happened rather spontaneously.
The first time it seemed associated with my boot order (something I'd never seen or heard of before... but still). If I had it set to CDROM,A,C for the installation, and set it back to C Only, it did this and didn't if I set it back. Now it does it regardless. And I reboot several times after installing w/o it happening until approx 24 - 48 hrs later.
Open Source Security Myths Dispelled Dispel the five major myths surrounding Open Source Security and gain the tools necessary to make a truly informed decision for your IT organization subscribe
InformationWeek InformationWeek is the only newsweekly you'll need to stay on top of the latest developments in information technology. subscribe