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 ting 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> oading sd_mod moDAC960#0: Configuring Mylex DAC960PRL PCI RAID Controller dule 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 le 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)
Created attachment 56945 [details] initrd (original and patched), grub.conf, devide.map
Hello, 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: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=62206 I hope this helps.
Yes, it does. Thank you.
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
Created attachment 57087 [details] initrd for 2.4.9-31 that worked under 7.2
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
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.
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).
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.
Is the /initrd directory on your real root filesystem there and empty?
*** This bug has been marked as a duplicate of 65207 ***
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.. . ./lib ./lib/jbd.o ./lib/ext3.o ./bin ./bin/nash ./bin/insmod ./sbin ./sbin/bin ./sbin/modprobe ./etc ./dev ./dev/console ./dev/null ./dev/ram ./dev/systty ./dev/tty1 ./dev/tty2 ./dev/tty3 ./dev/tty4 ./loopfs ./proc ./sysroot ./linuxrc and linuxrc looks like: #!/bin/nash 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 errors: 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...