Re: linux-2.6.25: 'mkdir -p' does not work with rootdir as mountpoint inside a read only filesystem

From: Dan Noé
Date: Fri May 02 2008 - 07:32:34 EST


Andrew Morton wrote:
|root@triton1:/# mount
|rootfs on / type rootfs (rw)
|/dev/root on / type jffs2 (ro)
|proc on /proc type proc (rw)
|sysfs on /sys type sysfs (rw)
|/dev/root on /dev/.static/dev type jffs2 (ro)
|tmpfs on /dev type tmpfs (rw,size=10240k,mode=755)
|tmpfs on /var type tmpfs (rw)
|tmpfs on /tmp type tmpfs (rw)
|devpts on /dev/pts type devpts (rw,gid=5,mode=620)
|tmpfs on /dev/shm type tmpfs (rw)
|root@triton1:/# mkdir -p /dev/.udev/db
|mkdir: Cannot create directory `/dev/': Read-only file system

While:
|root@triton1:/# cd /dev
|root@triton1:/# mkdir -p .udev/db
works as expected...

Has anyone else encountered this problem already?
I've searched the archives but could not find anything related to this
problem.

I had a shot at scripting this, but for me, everything works OK.

#!/bin/sh
dd if=/dev/zero of=file1 bs=1M count=32
dd if=/dev/zero of=file2 bs=1M count=32
yes | mkfs -t ext2 file1
yes | mkfs -t ext2 file2
mkdir -p mountpoint
mount -o loop file1 mountpoint
mkdir mountpoint/dir
umount mountpoint
mount -o loop,ro file1 mountpoint
mount -o loop file2 mountpoint/dir
mkdir -p $(/bin/pwd)/mountpoint/dir/subdir

Hmmm. The thing you are doing differently is that the reporter's root filesystem is mounted read only but in your case (and the quick try I had at it) the read only file system is mounted below root.

However, I tried reproducing that scenario with a chroot and I still couldn't get it to happen. No time to try a real root mount ro this morning but perhaps others can.

Cheers,
Dan

--
/--------------- - - - - - -
| Dan Noé
| http://isomerica.net/~dpn/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/