Root filesystem mounted fine under squeeze, and after I upgraded to wheezy. I've been living with it for a bit, so I'm not exactly sure, but I think it started after doing a dist-upgrade on wheezy, but that could be coincidence. The machine is a Lenovo T400 FWIW.
boot screen photo1 shows first warnings about read-only file system; nothing is logged obviously
fsck finds no problems2
mount -o remount,rw /
above works fine
(but I have to restart network-manager and gdm3 to get a usable system; I'm not sure it is related, but I can't seem to connect to a service running on localhost, eg python -m SimpleHTTPServer 8080 and in another terminal w3m times out sending request to localhost port 8080)
I don't notice anything amiss in fstab
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 # / was on /dev/sda1 during installation UUID=2934c627-6f1a-438b-a877-1544108c7418 / ext3 errors=remount-ro 0 1 # swap was on /dev/sda5 during installation UUID=39b1f59e-6193-4c46-8b4d-80b183f0b19c none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/sdb1 /media/usb0 auto rw,user,noauto 0 0
Any pointers would be much appreciated. Hopefully I'm doing something obviously wrong and fixable, but if not any hints about how to debug?
tune2fs -l /dev/sda1
tune2fs 1.42.2 (27-Mar-2012) Filesystem volume name: <none> Last mounted on: <not available> Filesystem UUID: 2934c627-6f1a-438b-a877-1544108c7418 Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file Filesystem flags: signed_directory_hash Default mount options: (none) Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 14893056 Block count: 59547904 Reserved block count: 2977395 Free blocks: 50391869 Free inodes: 14576981 First block: 0 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 1009 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8192 Inode blocks per group: 512 Filesystem created: Tue May 3 01:44:56 2011 Last mount time: Wed Apr 18 13:11:25 2012 Last write time: Tue Apr 17 23:51:46 2012 Mount count: 5 Maximum mount count: 25 Last checked: Tue Apr 17 23:51:46 2012 Check interval: 15552000 (6 months) Next check after: Sun Oct 14 23:51:46 2012 Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 Required extra isize: 28 Desired extra isize: 28 Journal inode: 8 First orphan inode: 9145036 Default directory hash: half_md4 Directory Hash Seed: af8ca7f0-bcad-49f3-98c0-9b19a531a885 Journal backup: inode blocks
It appears that /etc/init.d/checkroot.sh isn't being run at boot, and that's the script that finally remounts root as rw (if I run it after boot, it does exactly that). I'm using Debian testing/wheezy. There are dependency annotations in /etc/init.d files, but beyond that I'm not sure how to tell more about the init system.
Fixed, but no idea how it happened or if the fix is exactly how the system ought be. I noticed checkfs and mtab in /etc/rcS.d, but no checkroot, so I added it:
cd /etc/rcS.d ln -s ../init.d/checkroot.sh S06checkroot.sh
After rebooting twice (first time could have been my confusion, but I added some further instrumentation to checkroot.sh between them), I'm back up with rw on boot (and the problem with listening to/requesting from localhost disappeared, so I guess it was related).
(I see on a squeeze system I have access to it's at S07checkroot.sh; I was close perhaps.)