/ 부팅 시 읽기 전용인데 이유를 모르겠습니다. 조사하고 수정하는 방법은 무엇입니까?

/ 부팅 시 읽기 전용인데 이유를 모르겠습니다. 조사하고 수정하는 방법은 무엇입니까?

루트 파일 시스템은 압착 상태에서 잘 마운트되었고 wheezy로 업그레이드한 후에는 가능했습니다. 조금 안고 살아서 정확히는 모르겠지만 wheezy에 대한 dist-upgrade를 하고 나서 시작된 것 같은데 우연일 수도 있습니다. 기기는 Lenovo T400 FWIW입니다.

부팅 화면 사진1읽기 전용 파일 시스템에 대한 첫 번째 경고를 표시합니다. 분명히 아무것도 기록되지 않았습니다

fsck는 아무런 문제도 발견하지 못했습니다2

mount -o remount,rw /

위는 잘 작동합니다

(그러나 사용 가능한 시스템을 얻으려면 network-manager와 gdm3을 다시 시작해야 합니다. 관련이 있는지는 확실하지 않지만 localhost에서 실행되는 서비스(예: python -m SimpleHTTPServer 8080 및 다른 서비스)에 연결할 수 없는 것 같습니다. 터미널 w3m이 로컬 호스트 포트 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는 부팅 시 실행되지 않는 것으로 보이며 이는 최종적으로 루트를 rw로 다시 마운트하는 스크립트입니다(부팅 후에 실행하면 정확히 그렇게 됩니다). 저는 데비안 테스팅/wheezy를 사용하고 있습니다. /etc/init.d 파일에 종속성 주석이 있지만 그 이상으로 init 시스템에 대해 더 자세히 설명하는 방법을 잘 모르겠습니다.

...

수정되었지만 어떻게 발생했는지 또는 수정이 시스템이 정확히 어떻게 되어야 하는지 알 수 없습니다. /etc/rcS.d에서 checkfs와 mtab을 발견했지만 checkroot가 없으므로 추가했습니다.

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

두 번 재부팅한 후(처음에는 혼란스러울 수 있지만 그 사이에 checkroot.sh에 몇 가지 추가 도구를 추가했습니다) 부팅 시 rw로 백업됩니다(그리고 localhost에서 수신/요청하는 문제가 사라졌으므로 관련이 있었던 것 같아요).

(압착 시스템에서 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 파일 시스템에 어떤 문제가 있는지 알아내야 합니다. 복구 디스크로 쉽게 부팅하고 /root에서 fsck를 실행할 수 있습니다. 잠재적인 오류를 무시하기로 선택한 경우 fstab의 줄을 errors=continue.

답변2

이 문제가 발생했는데 이는 /etc/fstab에 설정된 루트 FS에 대한 잘못된 UUID로 인해 발생했습니다. 일부 업그레이드에서 자동으로 감지하여 잘못된 것 같습니다.

/ 파티션 rw를 다시 마운트하여 blkid올바른 UUID를 얻고 /etc/fstab에서 교체하여 문제를 해결했습니다.

답변3

루트 파일 시스템은 지시하지 않았기 때문에 읽기/쓰기로 마운트되지 않습니다.

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

마운트 옵션은 이며 errors=remount-ro읽기/쓰기에 대한 내용은 없습니다. 표준 관행은 defaults마운트 옵션을 포함하는 것입니다. defaults여러 가지 다른 마운트 옵션을 제공하며 그 중 하나는 rw읽기/쓰기 기능을 제공합니다.

따라서 fstab의 옵션 필드에 defaults또는 중 하나를 추가해야 합니다 .rw

편집하다:
그것에 대해 좀 더 생각해 보면(그리고 아래 설명의 토론에서) defaultsrw옵션이 문제를 해결하지 못할 수도 있습니다. 그 이유는 다시 마운트 동작이 배포판의 초기화 스크립트에 전적으로 의존하기 때문입니다. 배포판이 부팅 시 fstab에서 마운트 설정을 가져오는 것을 보았지만 init 스크립트가 루트를 다시 마운트할 때 fstab 옵션을 완전히 무시하고 스크립트에서 일부 하드 코딩된 설정을 사용할 수도 있습니다.

관련 정보