Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#679 closed defect (duplicate)

RHEL3 : kernel panic : VFS : Unable to mount fs

Reported by: ddiaz Owned by: bruno
Priority: low Milestone: 3.0.4
Component: mindi Version: 3.0.3
Severity: normal Keywords: mindi file system detection initrd vmlinuz kernel panic Unable to mount root fs
Cc: vicgat

Description

RHEL3 : "kernel panic : VFS : Unable to mount fs" during boot time on mondorescue.iso. Problem seems to be in GetInitrdFilesystemToUse? function in mindi that returns initramfs instead of ext2fs.

Attachments (3)

bug.htm (3.0 KB) - added by vicgat 5 years ago.
Tests on SLES 11 and RHEL 6
diff debut.png (106.9 KB) - added by vicgat 5 years ago.
/mondobackup iso file - mindi tested it
diff fin.png (123.5 KB) - added by vicgat 5 years ago.
/mondobackup iso file - mindi tested it (end)

Download all attachments as: .zip

Change History (12)

comment:1 Changed 5 years ago by ddiaz

  • Component changed from mondo to mindi
  • Keywords mindi file system detection initrd vmlinuz kernel panic Unable to mount root fs added

comment:2 Changed 5 years ago by bruno

  • Resolution set to duplicate
  • Status changed from new to closed

Similar to #681

comment:3 Changed 5 years ago by vicgat

  • Priority changed from normal to high
  • Resolution duplicate deleted
  • Status changed from closed to reopened

There is a problem with some files named boot/strings......

Example, in RHEL 3 : /boot/strings_rhel3_vmlinuz-2.4.21-50.EL.txt

Then /boot/strings_rhel3_vmlinuz-2.4.21-50.EL.txt is used by function GetInitrdFilesystemToUse?() instead of /boot/vmlinuz-2.4.21-50.EL

The problem comes from mindi, line 2376 (mindi r3104) :

for fname in `find $root -maxdepth 2 -type f | grep -Ei 'lin|kern|xen' | grep -Ev '^/pro     c/|^/net/'` ; do

Instead of that "find" :

find $root -maxdepth 2 -type f | grep -Ei 'lin|kern|xen'

I recommend this solution :

# find / -maxdepth 2 -type f | grep -Ei 'lin|kern|xen' | grep -Ev '^/proc/|^/net/|^/lib|^/lib64|^/bin|^/sbin|^/etc|^/mondobackup|^/boot/strings'

comment:4 Changed 5 years ago by vicgat

Example

[root@RH-Workstation6 ~]# touch /boot/strings_rhel3_vmlinuz-2.4.21-50.EL.txt

[root@RH-Workstation6 ~]# ls /boot
config-2.6.32-279.14.1.el6.i686         symvers-2.6.32-279.14.1.el6.i686.gz
config-2.6.32-279.19.1.el6.i686         symvers-2.6.32-279.19.1.el6.i686.gz
config-2.6.32-279.22.1.el6.i686         symvers-2.6.32-279.22.1.el6.i686.gz
efi                                     System.map-2.6.32-279.14.1.el6.i686
grub                                    System.map-2.6.32-279.19.1.el6.i686
initramfs-2.6.32-279.14.1.el6.i686.img  System.map-2.6.32-279.22.1.el6.i686
initramfs-2.6.32-279.19.1.el6.i686.img  vmlinuz-2.6.32-279.14.1.el6.i686
initramfs-2.6.32-279.22.1.el6.i686.img  vmlinuz-2.6.32-279.19.1.el6.i686
lost+found                              vmlinuz-2.6.32-279.22.1.el6.i686
strings_rhel3_vmlinuz-2.4.21-50.EL.txt

Without my solution :

[root@RH-Workstation6 ~]# find / -maxdepth 2 -type f | grep -Ei 'lin|kern|xen' | grep -Ev '^/proc/|^/net/'
/lib/libreadline.so.6.0
/lib/libselinux.so.1
/sbin/installkernel
/sbin/new-kernel-pkg
/sbin/telinit
/boot/strings_rhel3_vmlinuz-2.4.21-50.EL.txt
/boot/.vmlinuz-2.6.32-279.22.1.el6.i686.hmac
/boot/vmlinuz-2.6.32-279.19.1.el6.i686
/boot/.vmlinuz-2.6.32-279.14.1.el6.i686.hmac
/boot/.vmlinuz-2.6.32-279.19.1.el6.i686.hmac
/boot/vmlinuz-2.6.32-279.22.1.el6.i686
/boot/vmlinuz-2.6.32-279.14.1.el6.i686
/bin/unlink
/bin/link
/bin/readlink
/etc/prelink.cache
/etc/prelink.conf

With my solution :

[root@RH-Workstation6 ~]# find / -maxdepth 2 -type f | grep -Ei 'lin|kern|xen' | grep -Ev '^/proc/|^/net/|^/lib|^/lib64|^/bin|^/sbin|^/etc|^/mondobackup|^/boot/strings'
/boot/.vmlinuz-2.6.32-279.22.1.el6.i686.hmac
/boot/vmlinuz-2.6.32-279.19.1.el6.i686
/boot/.vmlinuz-2.6.32-279.14.1.el6.i686.hmac
/boot/.vmlinuz-2.6.32-279.19.1.el6.i686.hmac
/boot/vmlinuz-2.6.32-279.22.1.el6.i686
/boot/vmlinuz-2.6.32-279.14.1.el6.i686

Other example attached, in bug.htm

Changed 5 years ago by vicgat

Tests on SLES 11 and RHEL 6

comment:5 Changed 5 years ago by vicgat

So, in /usr/sbin/mindi, line 2376 (mindi r3104), instead of :

for fname in `find $root -maxdepth 2 -type f | grep -Ei 'lin|kern|xen' | grep -Ev '^/proc/|^/net/'` ; do

The solution is :

for fname in `find $root -maxdepth 2 -type f | grep -Ei 'lin|kern|xen' | grep -Ev '^/proc/|^/net/|^/lib|^/lib64|^/bin|^/sbin|^/etc|^/mondobackup|^/boot/strings'` ; do

comment:6 Changed 5 years ago by vicgat

Note : I added /mondobackup because there was a iso file in it and it took mindi 4 minutes to analyze it (strings, etc.) - see attached "diff debut.png" and "diff fin.png":

# ll /mondobackup
total 4473668
-rw-r--r-- 1 root root 4576548864 Dec 17 19:09 linux-m8p5-2012-12-17-1.iso

Changed 5 years ago by vicgat

/mondobackup iso file - mindi tested it

Changed 5 years ago by vicgat

/mondobackup iso file - mindi tested it (end)

comment:7 Changed 5 years ago by vicgat

  • Priority changed from high to low

I checked too concerning the file /boot/strings_rhel3_vmlinuz-2.4.21-50.EL.txt ; it's just a file created to store the strings of a vmlinuz file.

So the exclude list should be

 ^/proc/|^/net/|^/lib|^/lib64|^/bin|^/sbin|^/etc

comment:8 Changed 5 years ago by vicgat

  • Resolution set to duplicate
  • Status changed from reopened to closed

As the error message at boot is "kernel not found" I create a new ticket and I close this one.

comment:9 Changed 5 years ago by bruno

I've not taken /etc as it could maybe in some rare cases be the place where eople may put a kernel (I know questionable) but took the rest in rev [3121]

Note: See TracTickets for help on using tickets.