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
outputs
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.)
dmesg
for errors.