FW: I have two Linux ( 2.6.8 ?) problems
From: Povolotsky, Alexander <hidden>
Date: 2004-10-12 13:18:22
Hi !
I have two problems disclosed here.
Are both problems (or at least #1) BusyBox related ?
Any idea how to fix ?
Problem # 1 "pivot_root" failure issue
Please note that PQ2FADS-VR is an embedded diskless board,
booted with (old) ramdisk (from W. Denk) with BusyBox v0.60.1and
then manually mounting onto NFS file system, provided on the Linux "file
server" PC, which is running Linux Red Hat 9 Shrike.
During the "manual"mount with specifying NFS version 2, several warnings
are thrown ...(-o nolock fixes those)
but after a while the mount gets complete ...but ...
I am not able to "pivot_root" on my board onto that mounted file system
(though on the board the portmap is not running ...I think .. and
loopback is configured)
- getting error: "pivot_root: Device or resource busy" (see below).
I have limited tools on that board at that time to figure out what keeps
old root busy
(outdated libc.so library, provided with ramdisk, which I can not replace
on the fly,
prevents adding/running rpcinfo and lsof).
A)
************************
tftpboot 200000 uimage
...
bootm 200000 FF800000
...
RAMDISK: Compressed image found at block 0
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 272k init
serial console detected. Disabling virtual terminals.
### Application running ...
BusyBox v0.60.1 (2002.10.24-02:29+0000) Built-in shell (msh)
Enter 'help' for a list of built-in commands.
#mkdir /fadsroot
# ls -l /
drwxr-xr-x 2 0 0 2048 Jan 1 01:29 bin
drwxr-xr-x 2 0 0 3072 Jan 1 00:00 dev
drwxr-xr-x 5 0 0 1024 Jan 1 00:00 etc
drwxrwxrwx 38 0 0 4096 Oct 7 2004 fadsroot
drwxr-xr-x 2 0 0 1024 Jan 1 00:00 ftp
drwxr-xr-x 2 0 0 1024 Jan 1 00:00 home
drwxr-xr-x 3 0 0 1024 Jan 1 01:29 lib
dr-xr-xr-x 25 0 0 0 Jan 1 00:00 proc
drwxr-xr-x 2 0 0 1024 Jan 1 00:00 sbin
drwxr-xr-x 2 0 0 1024 Jan 1 00:00 tmp
drwxr-xr-x 4 0 0 1024 Jan 1 00:00 usr
drwxr-xr-x 4 0 0 1024 Jan 1 00:00 var
# portmap
portmap: not found
# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:17:40:00:03
inet addr:192.168.0.5 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:19 errors:0 dropped:0 overruns:0 frame:0
TX packets:15 errors:0 dropped:0 overruns:0 carrier:15
collisions:0 txqueuelen:1000
RX bytes:2056 (2.0 kb) TX bytes:1488 (1.4 kb)
Base address:0x8500
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
# mount
rootfs on / type rootfs (rw)
/dev/ram0 on / type ext2 (rw)
/proc on /proc type proc (rw,nodiratime)
#mount -o mountvers=2 192.168.0.3:/fadsroot /fadsroot
fs warning: mount version older than kernel
portmap: server localhost not responding, timed out
RPC: failed to contact portmap (errno -5).
portmap: server localhost not responding, timed out
RPC: failed to contact portmap (errno -5).
lockd_up: makesock failed, error=-5
portmap: server localhost not responding, timed out
RPC: failed to contact portmap (errno -5).
#
# mount
rootfs on / type rootfs (rw)
/dev/ram0 on / type ext2 (rw)
/proc on /proc type proc (rw,nodiratime)
192.168.0.3:/fadsroot on /fadsroot type nfs
(rw,v2,rsize=8192,wsize=8192,hard,ud
p,lock,addr=192.168.0.3)
# ps
PID Uid Stat Command
1 root S init
2 root R [ksoftirqd/0]
3 root S [events/0]
4 root S [khelper]
5 root S [kblockd/0]
6 root S [pdflush]
7 root S [pdflush]
8 root S [kswapd0]
9 root S [aio/0]
15 root S /usr/sbin/xinetd -stayalive -reuse -pidfile
/tmp/xinetd.pid
138 root S [rpciod]
253 root S -sh
254 root S /bin/sh /bin/application
256 root S sleep 300
258 root R ps
# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:17:40:00:03
inet addr:192.168.0.5 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:122 errors:0 dropped:0 overruns:0 frame:0
TX packets:114 errors:0 dropped:0 overruns:0 carrier:114
collisions:0 txqueuelen:1000
RX bytes:20747 (20.2 kb) TX bytes:14320 (13.9 kb)
Base address:0x8500
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
# cd /fadsroot
#sbin/pivot_root /fadsroot /tmp
pivot_root: pivot_root: Device or resource busy
As I've mentioned already, using additionally -o noolock option, while
doung mount allows to get rid of warnings during mounting but this does
NOT fix
the pivot_root failure.
*************************************************************
I am not an expert on Red Hat 9 Linux either(though I "manage" that
machine ;-)),
but on that machine portmap is running there and /fadsroot is exported for
NFS mounting also:
B)
**************************************************
[root@localhost root]# uname -a
Linux localhost.localdomain 2.4.20-28.9 #1 Thu Dec 18 13:45:22 EST 2003
i686 i686 i386 GNU/Linux
[root@localhost root]# rpm -qa | grep portmap
portmap-4.0-54
[root@localhost root]# rpm -qa | grep nfs
nfs-utils-1.0.1-3.9
redhat-config-nfs-1.0.4-5
[root@localhost root]# rpcinfo -p localhost
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 1024 status
100024 1 tcp 1024 status
391002 2 tcp 1025 sgi_fam
100011 1 udp 999 rquotad
100011 2 udp 999 rquotad
100011 1 tcp 1002 rquotad
100011 2 tcp 1002 rquotad
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100021 1 udp 1026 nlockmgr
100021 3 udp 1026 nlockmgr
100021 4 udp 1026 nlockmgr
100005 1 udp 1027 mountd
100005 1 tcp 1026 mountd
100005 2 udp 1027 mountd
100005 2 tcp 1026 mountd
100005 3 udp 1027 mountd
100005 3 tcp 1026 mountd
[root@localhost root]# cat /etc/exports
/fadsroot *(rw,no_root_squash,async)
[root@localhost root]# showmount -e
Export list for localhost.localdomain:
/fadsroot *
***********************************************
Problem #2
I am also not able to boot "straight" (i.e., without ramdisk) - with NFS
mounting the root file system
onto the same (as described above) Linux "file server" PC running Linux
Red Hat 9 Shrike
(with the same settings as it is described above) -
this does not work - I am getting kernel panic "Attempted to kill init!"-
see below C)
(That is why I am booting with ramdisk instead).
This kernel panic is puzzling (given that with ramdisk I could boot now ).
So perhaps the problem is again in the NFS version incompatibility ???
But this time it is not BusyBox from ramdisk ... but perhaps an attempt to
run BusyBox from /fadsroot
(it is there too, but more "current version" ) during the boot is failing
in this case ?
... and the kernel on my board during booting does not "know", that it
needs to use NFS version 2
during mounting ?
Should the kernel be configured to
allow to NFS mount root file system onto the NFS server with version
2 ?
I do not see the kernel option to configure NFS version 2 ...
Here is what I have:
CONFIG_NFS_FS=y
# CONFIG_NFS_V3 is not set
# CONFIG_NFS_V4 is not set
# CONFIG_NFS_DIRECTIO is not set
# CONFIG_NFSD is not set
CONFIG_ROOT_NFS=y
CONFIG_LOCKD=y
C)
***************************************************************
=> printenv
bootdelay=5
bootcmd=bootm 200000
ethaddr=08:00:17:00:00:03
serverip=192.168.0.3
ipaddr=192.168.0.5
baudrate=9600
bootargs=root=/dev/nfs rw nfsroot=192.168.0.4:/fadsroot
stdin=serial
stdout=serial
stderr=serial
Environment size: 210/262140 bytes
=> tftpboot 200000 uimage
Using FCC2 ETHERNET device
TFTP from server 192.168.0.3; our IP address is 192.168.0.5
Filename 'uimage'.
Load address: 0x200000
Loading:
#################################################################
#################################################################
#######################################
done
Bytes transferred = 864364 (d306c hex)
=> bootm 200000
## Booting image at 00200000 ...
Image Name: Linux-2.6.8-rc4
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 864300 Bytes = 844 kB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
Linux version 2.6.8-rc4 (apovolot@USPITLAD104868) (gcc version
3.3.2) #5 Mon Aug
16 08:49:38 EDT 2004
PQ2 ADS Port
Built 1 zonelists
Kernel command line: root=/dev/nfs rw nfsroot=192.168.0.4:/fadsroot
nobats ip=19
2.168.0.5
PID hash table entries: 256 (order 8: 2048 bytes)
Warning: real time clock seems stuck!
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 30432k available (1348k kernel code, 324k data, 272k init,
0k highmem)
Calibrating delay loop... 131.07 BogoMIPS
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
NET: Registered protocol family 16
PCI: Probing PCI hardware
Generic RTC Driver v1.07
Serial: CPM driver $Revision: 0.01 $
ttyCPM0 at MMIO 0xf0011a00 (irq = 40) is a CPM UART
RAMDISK driver initialized: 16 RAM disks of 32768K size 1024
blocksize
loop: loaded (max 8 devices)
eth0: FCC ENET Version 0.3, 08:00:17:40:00:03
NET: Registered protocol family 2
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 2048 bind 4096)
NET: Registered protocol family 1
NET: Registered protocol family 17
IP-Config: Guessing netmask 255.255.255.0
IP-Config: Complete:
device=eth0, addr=192.168.0.5, mask=255.255.255.0,
gw=255.255.255.255,
host=192.168.0.5, domain=, nis-domain=(none),
bootserver=255.255.255.255, rootserver=192.168.0.4, rootpath=
Looking up port of RPC 100003/2 on 192.168.0.4
Looking up port of RPC 100005/1 on 192.168.0.4
VFS: Mounted root (nfs filesystem).
Freeing unused kernel memory: 272k init
Kernel panic: Attempted to kill init!
<0>Rebooting in 180 seconds..
Any comment/opinion/solution/ ?
Thanks,
Best Regards,
Your input/comments/advise is APPRECIATED in advance !,
Alex