Hello Geekos!
I’ve been using openSUSE for quite a while and I’m happy about it, esp. Tubleweed giving me exciting stuff But… something went wrong a couple of hours ago and I’m trying to fix it. I’m using a DELL E6410 and I plugged in my power supply and then stuff started crashing. I rebooted and managed to watch a movie fine. But now I wanted to do some work and discovered, that my / partition is RO!
I did my homework:
https://forums.opensuse.org/showthread.php/389635-Root-Mounting-Read-Only?highlight=root+read-only
https://forums.opensuse.org/showthread.php/478909-Advisory-June-2013-New-Users-beware-of-using-the-BTRFS-filesystem/page7
https://forums.opensuse.org/showthread.php/475020-Read-Only-Root-disk?highlight=root+read-only
http://ubuntuforums.org/showthread.php?t=2136601
http://unix.stackexchange.com/questions/35963/how-to-switch-back-to-writable-mode-without-reboot
and I now know, that the kernel will mount a volume as ro, if it sees possible problems brewing. Fair enough. But what is interesting, I managed to fix this by rebooting and fiddling with grub. I’ve read that all I have to do is to use grub, and posbbily try usng a different kernel.
But, it gets better: all goes back to being ro right after I issue sudo. I have some terminal listings:
As you can see, my /etc/mtab tells me all is fine.
td@linux-7qtq:~> cat /etc/mtab
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
devtmpfs /dev devtmpfs rw,nosuid,size=1912504k,nr_inodes=478126,mode=755 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,nosuid,nodev,mode=755 0 0
tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,mode=755 0 0
cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0
cgroup /sys/fs/cgroup/hugetlb cgroup rw,nosuid,nodev,noexec,relatime,hugetlb 0 0
cgroup /sys/fs/cgroup/net_cls,net_prio cgroup rw,nosuid,nodev,noexec,relatime,net_cls,net_prio 0 0
cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpu,cpuacct 0 0
cgroup /sys/fs/cgroup/pids cgroup rw,nosuid,nodev,noexec,relatime,pids 0 0
cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0
cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
/dev/sda1 / btrfs rw,relatime,ssd,space_cache,subvolid=258,subvol=/.snapshots/1/snapshot 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=26,pgrp=1,timeout=0,minproto=5,maxproto=5,direct 0 0
mqueue /dev/mqueue mqueue rw,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
hugetlbfs /dev/hugepages hugetlbfs rw,relatime 0 0
tmpfs /var/run tmpfs rw,nosuid,nodev,mode=755 0 0
/dev/sda1 /var/log btrfs rw,relatime,ssd,space_cache,subvolid=272,subvol=/var/log 0 0
/dev/sda1 /var/lib/mariadb btrfs rw,relatime,ssd,space_cache,subvolid=269,subvol=/var/lib/mariadb 0 0
/dev/sda2 /home xfs rw,relatime,attr2,inode64,noquota 0 0
/dev/sda1 /var/lib/mailman btrfs rw,relatime,ssd,space_cache,subvolid=268,subvol=/var/lib/mailman 0 0
/dev/sda1 /boot/grub2/i386-pc btrfs rw,relatime,ssd,space_cache,subvolid=259,subvol=/boot/grub2/i386-pc 0 0
/dev/sda1 /var/lib/pgsql btrfs rw,relatime,ssd,space_cache,subvolid=271,subvol=/var/lib/pgsql 0 0
/dev/sda1 /boot/grub2/x86_64-efi btrfs rw,relatime,ssd,space_cache,subvolid=260,subvol=/boot/grub2/x86_64-efi 0 0
/dev/sda1 /var/spool btrfs rw,relatime,ssd,space_cache,subvolid=274,subvol=/var/spool 0 0
/dev/sda1 /opt btrfs rw,relatime,ssd,space_cache,subvolid=262,subvol=/opt 0 0
/dev/sda1 /.snapshots btrfs rw,relatime,ssd,space_cache,subvolid=257,subvol=/.snapshots 0 0
/dev/sda1 /var/tmp btrfs rw,relatime,ssd,space_cache,subvolid=275,subvol=/var/tmp 0 0
/dev/sda1 /usr/local btrfs rw,relatime,ssd,space_cache,subvolid=265,subvol=/usr/local 0 0
/dev/sda1 /var/lib/libvirt/images btrfs rw,relatime,ssd,space_cache,subvolid=267,subvol=/var/lib/libvirt/images 0 0
/dev/sda1 /var/opt btrfs rw,relatime,ssd,space_cache,subvolid=273,subvol=/var/opt 0 0
/dev/sda1 /tmp btrfs rw,relatime,ssd,space_cache,subvolid=264,subvol=/tmp 0 0
/dev/sda1 /var/crash btrfs rw,relatime,ssd,space_cache,subvolid=266,subvol=/var/crash 0 0
/dev/sda1 /var/lib/named btrfs rw,relatime,ssd,space_cache,subvolid=270,subvol=/var/lib/named 0 0
/dev/sda1 /srv btrfs rw,relatime,ssd,space_cache,subvolid=263,subvol=/srv 0 0
/dev/sdb1 /aux xfs rw,relatime,attr2,inode64,noquota 0 0
tmpfs /run/user/473 tmpfs rw,nosuid,nodev,relatime,size=384176k,mode=700,uid=473,gid=474 0 0
tmpfs /var/run/user/473 tmpfs rw,nosuid,nodev,relatime,size=384176k,mode=700,uid=473,gid=474 0 0
tmpfs /run/user/1000 tmpfs rw,nosuid,nodev,relatime,size=384176k,mode=700,uid=1000,gid=100 0 0
tmpfs /var/run/user/1000 tmpfs rw,nosuid,nodev,relatime,size=384176k,mode=700,uid=1000,gid=100 0 0
fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0
gvfsd-fuse /run/user/1000/gvfs fuse.gvfsd-fuse rw,nosuid,nodev,relatime,user_id=1000,group_id=100 0 0
gvfsd-fuse /var/run/user/1000/gvfs fuse.gvfsd-fuse rw,nosuid,nodev,relatime,user_id=1000,group_id=100 0 0
tracefs /sys/kernel/debug/tracing tracefs rw,relatime 0 0
I check, just to be sure, if there are any ro volumes:
td@linux-7qtq:~> cat /etc/mtab | grep " ro"
tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,mode=755 0 0
And the /var/log, we’ll see in a moment why:
td@linux-7qtq:~> cat /etc/mtab | grep "/var/log"
/dev/sda1 /var/log btrfs rw,relatime,ssd,space_cache,subvolid=272,subvol=/var/log 0 0
Now, I run yast to do some administration. The ncurses interface gets cut by many black lines with errors when I try actually navigating yast. The errors are in Polish, “filesystem is read-only”.
td@linux-7qtq:~> sudo yast
root's password:
y2log: Error opening logfile '/var/log/YaST2/y2log': System plików wyłącznie do odczytu.
[redacted for brevity]
Błąd we-wy (mkdir failed errno:30 (Read-only file system)).
y2log: Error opening logfile '/var/log/YaST2/y2log': System plików wyłącznie do odczytu.
[redacted for brevity]
Now, let’s get back to /etc/mtab
td@linux-7qtq:~> cat /etc/mtab | grep "/var/log"
/dev/sda1 /var/log btrfs ro,relatime,ssd,space_cache,subvolid=272,subvol=/var/log 0 0
td@linux-7qtq:~> cat /etc/mtab | grep " ro"
tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,mode=755 0 0
/dev/sda1 / btrfs ro,relatime,ssd,space_cache,subvolid=258,subvol=/.snapshots/1/snapshot 0 0
/dev/sda1 /var/log btrfs ro,relatime,ssd,space_cache,subvolid=272,subvol=/var/log 0 0
/dev/sda1 /var/lib/mariadb btrfs ro,relatime,ssd,space_cache,subvolid=269,subvol=/var/lib/mariadb 0 0
/dev/sda1 /var/lib/mailman btrfs ro,relatime,ssd,space_cache,subvolid=268,subvol=/var/lib/mailman 0 0
/dev/sda1 /boot/grub2/i386-pc btrfs ro,relatime,ssd,space_cache,subvolid=259,subvol=/boot/grub2/i386-pc 0 0
/dev/sda1 /var/lib/pgsql btrfs ro,relatime,ssd,space_cache,subvolid=271,subvol=/var/lib/pgsql 0 0
/dev/sda1 /boot/grub2/x86_64-efi btrfs ro,relatime,ssd,space_cache,subvolid=260,subvol=/boot/grub2/x86_64-efi 0 0
/dev/sda1 /var/spool btrfs ro,relatime,ssd,space_cache,subvolid=274,subvol=/var/spool 0 0
/dev/sda1 /opt btrfs ro,relatime,ssd,space_cache,subvolid=262,subvol=/opt 0 0
/dev/sda1 /.snapshots btrfs ro,relatime,ssd,space_cache,subvolid=257,subvol=/.snapshots 0 0
/dev/sda1 /var/tmp btrfs ro,relatime,ssd,space_cache,subvolid=275,subvol=/var/tmp 0 0
/dev/sda1 /usr/local btrfs ro,relatime,ssd,space_cache,subvolid=265,subvol=/usr/local 0 0
/dev/sda1 /var/lib/libvirt/images btrfs ro,relatime,ssd,space_cache,subvolid=267,subvol=/var/lib/libvirt/images 0 0
/dev/sda1 /var/opt btrfs ro,relatime,ssd,space_cache,subvolid=273,subvol=/var/opt 0 0
/dev/sda1 /tmp btrfs ro,relatime,ssd,space_cache,subvolid=264,subvol=/tmp 0 0
/dev/sda1 /var/crash btrfs ro,relatime,ssd,space_cache,subvolid=266,subvol=/var/crash 0 0
/dev/sda1 /var/lib/named btrfs ro,relatime,ssd,space_cache,subvolid=270,subvol=/var/lib/named 0 0
/dev/sda1 /srv btrfs ro,relatime,ssd,space_cache,subvolid=263,subvol=/srv 0 0
And mount
td@linux-7qtq:~> mount | grep "ro,"
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
/dev/sda1 on / type btrfs (ro,relatime,ssd,space_cache,subvolid=258,subvol=/.snapshots/1/snapshot)
/dev/sda1 on /var/log type btrfs (ro,relatime,ssd,space_cache,subvolid=272,subvol=/var/log)
/dev/sda1 on /var/lib/mariadb type btrfs (ro,relatime,ssd,space_cache,subvolid=269,subvol=/var/lib/mariadb)
/dev/sda1 on /var/lib/mailman type btrfs (ro,relatime,ssd,space_cache,subvolid=268,subvol=/var/lib/mailman)
/dev/sda1 on /boot/grub2/i386-pc type btrfs (ro,relatime,ssd,space_cache,subvolid=259,subvol=/boot/grub2/i386-pc)
/dev/sda1 on /var/lib/pgsql type btrfs (ro,relatime,ssd,space_cache,subvolid=271,subvol=/var/lib/pgsql)
/dev/sda1 on /boot/grub2/x86_64-efi type btrfs (ro,relatime,ssd,space_cache,subvolid=260,subvol=/boot/grub2/x86_64-efi)
/dev/sda1 on /var/spool type btrfs (ro,relatime,ssd,space_cache,subvolid=274,subvol=/var/spool)
/dev/sda1 on /opt type btrfs (ro,relatime,ssd,space_cache,subvolid=262,subvol=/opt)
/dev/sda1 on /.snapshots type btrfs (ro,relatime,ssd,space_cache,subvolid=257,subvol=/.snapshots)
/dev/sda1 on /var/tmp type btrfs (ro,relatime,ssd,space_cache,subvolid=275,subvol=/var/tmp)
/dev/sda1 on /usr/local type btrfs (ro,relatime,ssd,space_cache,subvolid=265,subvol=/usr/local)
/dev/sda1 on /var/lib/libvirt/images type btrfs (ro,relatime,ssd,space_cache,subvolid=267,subvol=/var/lib/libvirt/images)
/dev/sda1 on /var/opt type btrfs (ro,relatime,ssd,space_cache,subvolid=273,subvol=/var/opt)
/dev/sda1 on /tmp type btrfs (ro,relatime,ssd,space_cache,subvolid=264,subvol=/tmp)
/dev/sda1 on /var/crash type btrfs (ro,relatime,ssd,space_cache,subvolid=266,subvol=/var/crash)
/dev/sda1 on /var/lib/named type btrfs (ro,relatime,ssd,space_cache,subvolid=270,subvol=/var/lib/named)
/dev/sda1 on /srv type btrfs (ro,relatime,ssd,space_cache,subvolid=263,subvol=/srv)
td@linux-7qtq:~>
I tried doing an smartctl but I’m ro (yes, I can use a live DVD, but today I’m not even seeing straight anymore). I’m considering an fsck, but maybe you have a better idea? I’m a self-starter, so my Linux knowledge is a bit uneven This is an up to date Tumbleweed.
Thanks in advance,
Bartosz