Public bug reported:

I installed the Intrepid kernel (linux-image-2.6.27-5-server on an
otherwise-Hardy x86-64 server (I do have Intrepid's initramfs-tools, and
a non-current-Intrepid module-init-tools).

/dev being read-only bind mounted on /dev/.static/dev somehow causes
Linux to return EROFS for only some operations on the root filesystem.
(My root filesystem is XFS.  Yes, this works, you just can't setup grub
on it from linux, so I boot grub from USB or PXE after the initial
install of Ubuntu.)

I don't have this problem on my pre-Intrepid desktop at home running
2.6.27-4-generic, with a JFS root filesystem (and /dev read-only bind
mounted).  And I didn't notice it on my pre-Intrepid laptop with
2.6.27-5-generic (IIRC), with an ext3 rootfs.  It's not on, so I can't
check it's status right now.  So either a server kernel bug, or an XFS
bug, I'd guess.

symptoms:
# strace touch /etc/bar  # /etc/bar doesn't exist beforehand
close(0)                                = 0
open("/etc/bar", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 0
syscall_280(0, 0, 0, 0, 0x2, 0, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
0x2) = -1 (errno 30)
utimes("/etc/bar", NULL)                = -1 EROFS (Read-only file system)
close(0)                                = 0
touch: setting times of `/etc/bar': Read-only file system
exit_group(1)                           = ?

/etc/bar now exists.


# strace chmod 644 /etc/mtab
stat("/etc/mtab", {st_mode=S_IFREG|0600, st_size=794, ...}) = 0
fchmodat(AT_FDCWD, "/etc/mtab", 0644)   = -1 EROFS (Read-only file system)

/proc/mounts showed that / was mounted rw, but /dev/.static/dev was mounted ro.
mount /dev /dev/.static/dev -o remount,rw  makes metadata ops work again on the 
root filesystem.

/proc/mounts (after remount)
rootfs / rootfs rw 0 0
/dev/disk/by-uuid/dc2372d6-5ae9-4b28-8fe5-108c779e82fb / xfs 
rw,relatime,noquota 0 0
/dev/disk/by-uuid/dc2372d6-5ae9-4b28-8fe5-108c779e82fb /dev/.static/dev xfs 
rw,noquota 0 0

/etc/fstab
# /dev/sda1
UUID=dc2372d6-5ae9-4b28-8fe5-108c779e82fb       /       xfs     
relatime,inode64,noikeep        0       1

It's a 10GB filesystem, so I probably don't need inode64...

Let me know if you have any problem reproducing this, and I can get more
details on my server.

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: linux-2.6.27

** Tags added: linux-2.6.27

-- 
read-only bind mounts cause spurious EROFS
https://bugs.launchpad.net/bugs/278954
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to