/는 시작 시 읽기 전용인데 이유를 모르겠습니다. 문제를 해결하고 수정하는 방법은 무엇입니까? [폐쇄]

/는 시작 시 읽기 전용인데 이유를 모르겠습니다. 문제를 해결하고 수정하는 방법은 무엇입니까? [폐쇄]

wheeze로 업그레이드한 후 루트 파일 시스템이 잘 마운트되었습니다. 한동안 먹어서 잘 모르겠지만, wheezy로 dist 업그레이드 한 후에 시작된 것 같은데, 우연일 수도 있습니다. 기기는 Lenovo T400 FWIW입니다.

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

fsck에서는 문제가 발견되지 않았습니다.2

mount -o remount,rw /

위의 내용은 잘 작동합니다.

(하지만 사용 가능한 시스템을 얻으려면 네트워크 관리자와 gdm3을 다시 시작해야 했습니다. 관련이 있는지는 잘 모르겠지만 python -m SimpleHTTPServer 8080 및 다른 터미널 w3m과 같이 localhost에서 실행되는 서비스에 연결할 수 없는 것 같습니다. 로컬 호스트 포트 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 시스템에 대해 더 자세히 설명하는 방법을 잘 모르겠습니다.

...

수정되었지만 어떻게 발생했는지 또는 수정 사항이 시스템에 있어야 하는지 알 수 없습니다. checkfs와 mtab이 /etc/rcS.d에 있지만 checkroot에는 없다는 것을 알고 다음을 추가했습니다.

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

두 번 재부팅한 후(첫 번째는 혼란스러웠지만 그 사이에 checkroot.sh에 몇 가지 추가 도구를 추가했습니다) 부팅 시 rw를 사용하여 백업했습니다(그리고 로컬 호스트에서 수신/요청했습니다. 문제가 사라졌으므로 관련이 있는 것으로 추측됩니다) ).

(압착된 시스템에서 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로 인해 발생했습니다. 일부 업그레이드에서는 자동으로 이를 감지하여 오류가 발생하는 것 같습니다.

blkid올바른 UUID 가져오기를 사용하여 /partition rw를 다시 마운트 하고 /etc/fstab을 교체하면 문제가 해결되었습니다.

답변3

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

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

설치 옵션에는 errors=remount-ro읽기/쓰기에 대한 내용만 없습니다. 표준 관행은 defaults이를 설치 옵션에 포함시키는 것입니다. defaults여러 가지 다른 장착 옵션이 제공되며 그 중 하나는 rw읽기/쓰기를 제공하는 것입니다.

따라서 fstab의 옵션 항목에 defaultsor 를 추가해야 합니다 .rw

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

관련 정보