-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi
> Please tell me your environment precisely.
> Are you using aufs on nfs-server side?
Nope.
Some more background. I want to use the latest Debian FAI (fully automated
installation 3.2) with NFSv4 on Debian Etch.
> In other words,
- - my nfs server is,
+ Debian Etch with supplied Etch kernel
- linux-image-2.6.18-5-686 (2.6.18.dfsg.1-13etch2)
+ kernel NFS server
+ simple NFS export of a directory (/srv/fai/nfsroot) via NFSv4
- mount on an other client works; executing programs from the
mounted share works too
- - my nfs client is,
+ tftp boot (pxelinux)
- config dynamically created and delivered on TFTP request
+ nfsroot via NFSv4
+ FAI 3.2 does its magic and installs Debian from generated config
- - I'm using
+ Patched initramfs-tools with nfsv4 support
- nfsv4 did work like a charm for 1 1/2 years with Debian Sarge
and a backported 2.6.17 kernel and nfs-tools from Debian Sid.
- Old: sereral tmpfs instead of a union fs - much more complicated
- New: union fs (would clean up a lot of stuff and is required
FAI 3.2).
+ A lot of other stuff to get this running - everything works with
NFSv3 + unionfs, but I must use NFSv4!
> And when you execute something on nfs-client, the client crashes.
> Am I right?
I'm using NFSv4 + union fs on the client side (NFSroot).
The crash happens when switching from initramfs to NFSroot, but actually
it crashes when any program is run in the NFSroot. I running /root/bin/ls
results in the same crash.
run-init /root /sbin/init "ldap" </root/dev/console >/root/dev/console
my aufs mount is
mount -t aufs -o dirs=/cow=rw:/root=ro aufs /root
I have attached my unionfs mount script.
BTW: The BUGs address is always 00000028.
This led me to the conclusion that something is wrong with my conversation
of vm_ops "populate + nopage" -> fault handling, because the return falue
changed to and int.
Kernel commit git hash: d0217ac04ca6591841e5665f518e38064f4e65bd
> Change ->fault prototype. We now return an int, which contains
> VM_FAULT_xxx code in the low byte, and FAULT_RET_xxx code in the next
> byte. FAULT_RET_ code tells the VM whether a page was found, whether it
> has been locked, and potentially other things.
> I will try linux-2.6.23-rc5 later.
I'll patch my kernel with the new -rc6 changes. Form a first glance at the
incr rc5-rc6 patch, there wasn't any change in the mm area, but quite some
changes to fs/nfs. Maybe it helps :-)
Jan-Marek
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQFG5lFcj6MK58wZA3cRAqyeAJ0TKtlTAX3YwzhwDVAuJB8OBQYnkgCeJFdp
5lRZi+i27cOgeEGv5tSqQzk=
=wksx
-----END PGP SIGNATURE-----#!/bin/sh
PREREQ=""
case $1 in
# get pre-requisites
prereqs)
echo "$PREREQ"
exit 0
;;
esac
# Common initramfs functions
. /scripts/functions
log_begin_msg "union fs setup"
# Default unionfs list
UNION_FS_LIST="aufs unionfs"
# Decode $NFSUNION value
case "x$NFSUNION" in
xunion) ;;
xyes) ;;
x)
# Empty or undefined
log_info_msg "not required"
log_end_msg "union fs setup"
exit 0
;;
*)
# List of union fs to try
# Replace ',' with ' '
UNION_IFS="${IFS}"
IFS=","
UNION_FS_LIST=""
for opt in ${NFSUNION}
do
UNION_FS_LIST="${UNION_FS_LIST} ${opt}"
done
IFS="${UNION_IFS}"
;;
esac
# Try loading union fs modules
for UNION_FS in ${UNION_FS_LIST}; do
modprobe -n $UNION_FS
if [ $? -eq 0 ]; then
modprobe $UNION_FS
break
else
UNION_FS=""
fi
done
[ "x" = "x$UNION_FS" ] && panic "Could't mount any union fs"
log_info_msg "Setup union fs using $UNION_FS"
# Go aroung a bug in nfs-unionfs locking for unionfs <= 1.4
minor_kernel_version=`uname -r|cut -c 5-|sed 's/[^0-9].*//'`
#if [ "${minor_kernel_version}" -lt 22 -a "$UNION_FS" = "unionfs" ]; then
# roopt="nfsro"
#else
roopt="ro"
#fi
# Create COW tmpfs
mkdir -p /cow
mount tmpfs -t tmpfs -o rw /cow || panic "Can not mount tmpfs on /cow"
# Create unionfs from /cow and $rootmnt
mount -t ${UNION_FS} -o dirs=/cow=rw:"$rootmnt"=$roopt ${UNION_FS} "$rootmnt"
|| panic "${UNION_FS} mount failed"
# Move COW into NFS root
mkdir "${rootmnt}/cow" || panic "couldn't create COW dir '${rootmnt}/cow'"
mount --move /cow "${rootmnt}/cow"
# Remove NFS resolv.conf
rm -f "${rootmnt}/etc/resolv.conf"
# Create xconsole for FAI
mknod -m 644 /dev/xconsole p
# Prepare aufs
echo "FLUSH=ALL" > ${DESTDIR}/etc/default/auplink
cp "${rootmnt}"/usr/local/bin "${rootmnt}"/sbin
log_end_msg "union fs setup"
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/