/ только для чтения при загрузке, но не понимаю почему. как исследовать и исправить?

/ только для чтения при загрузке, но не понимаю почему. как исследовать и исправить?

Корневая файловая система отлично смонтировалась под squeeze и после того, как я обновился до wheezy. Я уже немного с этим живу, так что не совсем уверен, но думаю, что это началось после dist-upgrade на wheezy, но это может быть совпадением. Машина — Lenovo T400 FWIW.

фото экрана загрузки1показывает первые предупреждения о файловой системе только для чтения; очевидно, что ничего не регистрируется

fsck не находит проблем2

mount -o remount,rw /

выше работает отлично

(но мне нужно перезапустить network-manager и gdm3, чтобы получить работоспособную систему; я не уверен, что это связано, но я не могу подключиться к службе, работающей на localhost, например, python -m SimpleHTTPServer 8080, а в другом терминале w3m истекает время ожидания отправки запроса на localhost port 8080)

Я не замечаю ничего странного в 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

Буду очень признателен за любые указания. Надеюсь, я делаю что-то явно неправильное и это можно исправить, но если нет, то какие-нибудь подсказки о том, как отладить?

...

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

...

Похоже, что /etc/init.d/checkroot.sh не запускается при загрузке, а это скрипт, который в конечном итоге перемонтирует root как rw (если я запускаю его после загрузки, он делает именно это). Я использую Debian testing/wheezy. В файлах /etc/init.d есть аннотации зависимостей, но помимо этого я не уверен, как рассказать больше о системе init.

...

Исправлено, но не знаю, как это произошло или является ли исправление именно тем, каким должно быть в системе. Я заметил checkfs и mtab в /etc/rcS.d, но не checkroot, поэтому я добавил его:

cd /etc/rcS.d
ln -s ../init.d/checkroot.sh S06checkroot.sh

После двух перезагрузок (первый раз, возможно, я запутался, но между ними я добавил несколько дополнительных инструментов в checkroot.sh), я снова получил rw при загрузке (и проблема с прослушиванием/запросом с localhost исчезла, так что, думаю, это было связано).

(Я вижу, что в системе Squeeze у меня есть доступ к нему в S07checkroot.sh; возможно, я был близок к этому.)

решение1

В вашей файловой системе /root произошла ошибка, и fstab перемонтирует /root как «только для чтения».

Строка в fstab

UUID=2934c627-6f1a-438b-a877-1544108c7418 / ext3 errors=remount-ro 0 1

именно это приводит к тому, что /root монтируется только для чтения.

Из mount (8)страницы руководства

errors={continue|remount-ro|panic}
Define the behaviour when an error is encountered.  (Either ignore errors
and just  mark  the  filesystem  erroneous and continue, or remount the
filesystem read-only, or panic and halt the system.)  The default is set in
the  filesystem superblock, and can be changed using tune2fs(8).

В конечном итоге вы должны выяснить, что не так с вашей файловой системой /root. Вы можете легко загрузиться с аварийного диска и запустить fsck на /root. Если вы решили игнорировать потенциальные ошибки, просто измените строку в fstab на errors=continue.

решение2

У меня была эта проблема, и она была вызвана неправильным UUID для корневой FS, установленным в /etc/fstab. Я думаю, какое-то обновление автоматически обнаружило это и сделало неправильно.

Перемонтируйте раздел /rw, используя blkidдля получения правильного UUID и замены в /etc/fstab, это исправило проблему.

решение3

Ваша корневая файловая система не монтируется для чтения/записи, потому что вы не дали ей на это разрешения.

UUID=2934c627-6f1a-438b-a877-1544108c7418 /               ext3 errors=remount-ro 0       1

Ваши параметры монтирования — это только errors=remount-ro, там нет ничего о чтении/записи. Стандартная практика — иметь defaultsв параметрах монтирования. defaultsпредоставляет несколько других параметров монтирования, один из них — rw, таким образом обеспечивая чтение/запись.

Поэтому вам нужно добавить либо , defaultsлибо rwв поле параметров вашего fstab.

РЕДАКТИРОВАТЬ:
Если немного подумать об этом (и послушать обсуждение в комментариях ниже), то параметры defaultsи rwмогут не исправить ситуацию. Причина в том, что поведение перемонтирования полностью зависит от скриптов инициализации дистрибутива. Я видел, как дистрибутивы извлекали настройки монтирования из fstab при загрузке, но также возможно, что скрипт инициализации полностью игнорирует параметры fstab, когда он переходит к перемонтированию root (и использует некоторые жестко закодированные настройки в скрипте).

Связанный контент