Bug 64736 - upgrading 7.2 to 7.3 leaves system unbootable with DAC960
upgrading 7.2 to 7.3 leaves system unbootable with DAC960
Status: CLOSED DUPLICATE of bug 65207
Product: Red Hat Linux
Classification: Retired
Component: kernel (Show other bugs)
i386 Linux
medium Severity medium
: ---
: ---
Assigned To: Arjan van de Ven
Brock Organ
Depends On:
  Show dependency treegraph
Reported: 2002-05-10 07:13 EDT by Patrick C. F. Ernzer
Modified: 2007-04-18 12:42 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2002-05-16 16:16:24 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
initrd (original and patched), grub.conf, devide.map (450.00 KB, application/octet-stream)
2002-05-10 07:14 EDT, Patrick C. F. Ernzer
no flags Details
initrd for 2.4.9-31 that worked under 7.2 (430.72 KB, application/octet-stream)
2002-05-13 12:09 EDT, Patrick C. F. Ernzer
no flags Details

  None (edit)
Description Patrick C. F. Ernzer 2002-05-10 07:13:34 EDT
From Bugzilla Helper:
User-Agent: Mozilla/5.0 Galeon/1.2.0 (X11; Linux i686; U;) Gecko/20020408

Description of problem:
after upgrading my RHL 7.2 to 7.3, my system fails at root pivot

Version-Release number of selected component (if applicable):

How reproducible:
Didn't try

Steps to Reproduce:
1. upgrade 7.2 to 7.3
2. on reboot kernel oopses (at end of upgrade)
3. attempt to boot into 7.3

Actual Results:
apm: disabled - APM is not SMP safe.
Starting kswapd
VFS: Diskquotas version dquot_6.5.0 initialized
pty: 2048 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS MULTIPORT SHARE_IRQ SEd
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
Real Time Clock Driver v1.10e
block: 992 slots per queue, batch=248
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
VP_IDE: IDE controller on PCI bus 00 dev 39
VP_IDE: chipset revision 16
VP_IDE: not 100% native mode: will probe irqs later
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
VP_IDE: VIA vt82c686a (rev 22) IDE UDMA66 controller on pci00:07.1
    ide0: BM-DMA at 0xd000-0xd007, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0xd008-0xd00f, BIOS settings: hdc:pio, hdd:pio
hda: CRD-8401B, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide-floppy driver 0.99.newide
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
ide-floppy driver 0.99.newide
md: md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
pci_hotplug: PCI Hot Plug PCI Core version: 0.4
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 4096 buckets, 32Kbytes
TCP: Hash tables configured (established 32768 bind 32768)
Linux IP multicast router 0.06 plus PIM-SM
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
RAMDISK: Compressed image found at block 0
Freeing initrd memory: 222k freed
VFS: Mounted root (ext2 filesystem).
Red Hat nash verSCSI subsystem driver Revision: 1.00
sion 3.3.10 starkmod: failed to exec /sbin/modprobe -s -k scsi_hostadapter, err2
Loading scDAC960: ***** DAC960 RAID Driver Version 2.4.11 of 11 October 2001 ***
si_mod module
LDAC960: Copyright 1998-2001 by Leonard N. Zubkoff <lnz@dandelion.com>
oading sd_mod moDAC960#0: Configuring Mylex DAC960PRL PCI RAID Controller
Loading DADAC960#0:   Firmware Version: 4.07-0-29, Channels: 1, Memory Size: 4MB
C960 module
DAC960#0:   PCI Bus: 0, Device: 16, Function: 1, I/O Address: Unassigned
DAC960#0:   PCI Address: 0xDA100000 mapped at 0xE0840000, IRQ Channel: 18
DAC960#0:   Controller Queue Depth: 124, Maximum Blocks per Command: 128
DAC960#0:   Driver Queue Depth: 123, Scatter/Gather Limit: 33 of 33 Segments
DAC960#0:   Stripe Size: 64KB, Segment Size: 8KB, BIOS Geometry: 255/63
DAC960#0:   Physical Devices:
DAC960#0:     0:2  Vendor: SEAGATE   Model: ST318436LW        Revision: 0004
DAC960#0:          Serial Number: 3BM0F8T9000070474CZC
DAC960#0:          Disk Status: Online, 35565568 blocks
DAC960#0:     0:4  Vendor: SEAGATE   Model: ST318436LW        Revision: 0004
DAC960#0:          Serial Number: 3BM0FE6C0000705066RZ
DAC960#0:          Disk Status: Online, 35565568 blocks
DAC960#0:     0:8  Vendor: SEAGATE   Model: ST39175LW         Revision: 0001
DAC960#0:          Serial Number: 3AL0DBGF00001936HDJ1
DAC960#0:          Disk Status: Online, 17782784 blocks
DAC960#0:   Logical Drives:
DAC960#0:     /dev/rd/c0d0: RAID-0, Online, 71131136 blocks, Write Thru
DAC960#0:     /dev/rd/c0d1: RAID-7, Online, 17782784 blocks, Write Thru
Partition check:
 rd/c0d0: rd/c0d0p1 rd/c0d0p2 rd/c0d0p3 rd/c0d0p4 < rd/c0d0p5 rd/c0d0p6 >
 rd/c0d1: rd/c0d1p1 rd/c0d1p4
Loading jbd moduJournalled Block Device driver loaded
Loading ext3 module
Mounting /proc filesystem
Creating root device
Mounting root filesystem
mount: error 6 mounting ext3
pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2
Freeing unused kernel memory: 304k freed
Kernel panic: No init found.  Try passing init= option to kernel.

Expected Results:  normal boot

Additional info:

reproducing is a tad difficult, but if it is required I'll re-install 7.2 and
re-do the upgrade.

The initrd did not include /dev/rd/c0d... creating the devices made no
difference (see both initrd images in the attachment)
Comment 1 Patrick C. F. Ernzer 2002-05-10 07:14:32 EDT
Created attachment 56945 [details]
initrd (original and patched), grub.conf, devide.map
Comment 2 Rama McIntosh 2002-05-13 01:07:28 EDT

I ran into the same problem upgrading from Redhat 6.2 -> 7.3.

I found a quick work around to get my system back up.

In addition to adding the devices to initrd.img as you 
stated you did, modify the linuxrc in the initrd.img to
mount your root device instead of /dev/root.  For example:
my new linuxrc:
        mount --ro -t ext3 /dev/rd/c0d0p2 /sysroot

I fount the workround here: 

I hope this helps.

Comment 3 Patrick C. F. Ernzer 2002-05-13 05:46:04 EDT
Yes, it does. Thank you.
Comment 4 Jeremy Katz 2002-05-13 11:35:15 EDT
You don't happen to have an initrd as created by 7.2 for the dac960 do you? 
This looks entirely correct to me unless pivot_root has somehow broken for dac960
Comment 5 Patrick C. F. Ernzer 2002-05-13 12:09:29 EDT
Created attachment 57087 [details]
initrd for 2.4.9-31 that worked under 7.2
Comment 6 Patrick C. F. Ernzer 2002-05-13 12:12:15 EDT
attachment created. If you need more files from the 7.2 install, please do tell
me before 2002-05-16, after that the tape may be reused by amanda
Comment 7 Jeremy Katz 2002-05-13 17:59:22 EDT
Shouldn't need anything else.  The initrds are basically identical, though. 
Reassigning to kernel as the only problem I can see is maybe something being
wrong with the pivot_root stuff in the newer kernel.
Comment 8 Patrick C. F. Ernzer 2002-05-15 04:37:16 EDT
Just to confirm, the only difference in linuxrc is that in the working
2.4.9-31smp initrd we have:

umount /proc
echo Mounting root filesystem
mount --ro -t ext3 /dev/root /sysroot
pivot_root /sysroot /sysroot/initrd

and in the non-working 2.4.18-4smp (updated kernel since bug report, no change
in behaviour)

echo Mounting root filesyste
mount --ro -t ext3 /dev/root /sysroot
umount /proc
pivot_root /sysroot /sysroot/initrd

As a test I changed a 2.4.18-4smp initrd to umount /proc _before_ it mounts
/dev/root but this did not help (i.e. same behaviour as in original bug report).
Comment 9 Adam Pribyl 2002-05-16 13:50:04 EDT
I have nearly same troubles after 7.2 -> 7.3 upgrade (2.4.18-3), except the fact
I do not have DAC960. I am using lilo and last messages I can see on screen
after unsuccesfull boot is about that kernel is not able to find LABEL=/ and
LABEL=/boot (both using ext3), then something about pivot_root and kernel panic.
If I do not use LABEL it does not help.

It also panic after recompilation of new kernel 2.4.18-4 with default athlon
config and using mkinitrd to generade new initrd image (passing proper initrd in
lilo.conf to kernel) I still have same situation. Only thing helps is to
recompile it with ext3 not as module but included in kernel.
Comment 10 Michael K. Johnson 2002-05-16 16:16:18 EDT
Is the /initrd directory on your real root filesystem there and empty?
Comment 11 Jeremy Katz 2002-05-30 17:32:43 EDT

*** This bug has been marked as a duplicate of 65207 ***
Comment 12 Need Real Name 2002-10-16 05:31:53 EDT
Hey,I have practically the same problem, but it is not soved by mounting the 
device directly like you said...
Can you guys help me ?

when I type find in the dir where I create my image..

and linuxrc looks like:

echo ">>>>>>>>>>>>>>>>>>>>>>>>> Starting linuxrc <<<<<<<<<<<<<<<<<<<<<<<<<"
echo "Loading jbd module"
insmod /lib/jbd.o 
echo "Loading ext3 module"
insmod /lib/ext3.o 
mount -t proc /proc /proc
echo Mounting /proc filesystem
echo Creating root device
mkrootdev /dev/root
#echo /dev/ram0 > /proc/sys/kernel/real-root-dev
echo 0x0100 > /proc/sys/kernel/real-root-dev
echo Mounting root filesystem
echo after this mount it linux crashes
mount --ro -t ext3 /dev/root /sysroot
#mount -t ext3 /dev/root /sysroot
#mount -t ext2 /dev/cdrom /sysroot
echo Pivot:
pivot_root /sysroot /sysroot/initrd
umount /proc


mount: error 6 mounting ext3
pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2
Freeing unused kernel memory: 304k freed
Kernel panic: No init found.  Try passing init= option to kernel.

Should I make sure that /dev/rd/c0d0p2 is in my system ? Or does 
mkrootdev /dev/root take care of that ?
I have tried to change /dev/root into /dev/rd/c0d0p2 but it does
not work. Probably because (as you can see in 'find') the device c0d0p2
just isn't there. How does linux know that c0d0p2 is the root device?
I don't get it...

Note You need to log in before you can comment on or make changes to this bug.