파일 시스템의 매우 이상한 동작, 슈뢰딩거의 파일

파일 시스템의 매우 이상한 동작, 슈뢰딩거의 파일

저는 Unix를 처음 접했고 이 이상한 동작을 해결하는 데 도움이 필요합니다.

사용자 디렉터리 /Users/den이 있습니다.

den$ ls -la
total 208
drwxrwx---+ 19 den   staff    608 18 Jan 16:35 .
drwxr-xr-x   5 root  admin    160 30 Oct 16:04 ..
-rwxrwx---   1 den   staff      3 17 Jan 17:57 .CFUserTextEncoding
drwxrwx---   2 den   staff     64 18 Jan 15:35 .Trash
-rwxrwx---   1 den   staff  11976 18 Jan 15:43 .bash_history
-rwxrwx---   1 den   staff    438 17 Jan 20:34 .bash_profile
drwxrwx---   3 den   staff     96 18 Jan 15:36 .bash_sessions
-rwxrwx---   1 den   staff  78473 17 Jan 20:28 .git-completion.bash
-rwxrwx---   1 den   staff    595 18 Jan 00:26 .zsh_history
drwxrwx---+  4 den   staff    128 17 Jan 19:00 Desktop
drwxrwx---+  4 den   staff    128 17 Jan 20:46 Documents
drwxrwx---+  3 den   staff     96 17 Jan 17:57 Downloads
drwxrwx---@ 56 den   staff   1792 18 Jan 15:35 Library
drwxrwx---+  3 den   staff     96 17 Jan 17:57 Movies
drwxrwx---+  3 den   staff     96 17 Jan 17:57 Music
drwxrwx---+  4 den   staff    128 17 Jan 18:12 Pictures
drwxrwx---+  4 den   staff    128 17 Jan 17:57 Public

해당 디렉토리에서 git용 구성 파일을 생성하려고 합니다.

192:~ den$ touch .gitconfig
touch: .gitconfig: No such file or directory

touch예를 들어, 내가 다른 일을 하려고 하면,.gitconfig1

192:~ den$ touch .gitconfig1
192:~ den$ ls -la
total 208
drwxrwx---+ 20 den   staff    640 18 Jan 16:55 .
drwxr-xr-x   5 root  admin    160 30 Oct 16:04 ..
-rwxrwx---   1 den   staff      3 17 Jan 17:57 .CFUserTextEncoding
drwxrwx---   2 den   staff     64 18 Jan 15:35 .Trash
-rwxrwx---   1 den   staff  11976 18 Jan 15:43 .bash_history
-rwxrwx---   1 den   staff    438 17 Jan 20:34 .bash_profile
drwxrwx---   3 den   staff     96 18 Jan 15:36 .bash_sessions
-rwxrwx---   1 den   staff  78473 17 Jan 20:28 .git-completion.bash
-rw-r--r--   1 den   staff      0 18 Jan 16:55 .gitconfig1
-rwxrwx---   1 den   staff    595 18 Jan 00:26 .zsh_history
drwxrwx---+  4 den   staff    128 17 Jan 19:00 Desktop
drwxrwx---+  4 den   staff    128 17 Jan 20:46 Documents
drwxrwx---+  3 den   staff     96 17 Jan 17:57 Downloads
drwxrwx---@ 56 den   staff   1792 18 Jan 15:35 Library
drwxrwx---+  3 den   staff     96 17 Jan 17:57 Movies
drwxrwx---+  3 den   staff     96 17 Jan 17:57 Music
drwxrwx---+  4 den   staff    128 17 Jan 18:12 Pictures
drwxrwx---+  4 den   staff    128 17 Jan 17:57 Public

아무 문제 없이 만들 수 있지만, .gitconfig그 자체만 건드릴 수 없습니다.

내가 관찰한 또 다른 흥미로운 점은 해당 폴더에서 .git을 자동 완성하려고 하면 실제로 나를 .gitconfig옵션 중 하나로 제안한다는 것입니다.

192:~ den$ nano .git
.git-completion.bash  .gitconfig            .gitconfig1           
192:~ den$ nano .git

무슨 일이 일어날 지에 대한 아이디어가 있습니까?

답변1

문제는 파일 시스템이 손상되어 복구할 수 없다는 것입니다.

이는 macOS 관련 문제입니다.fsroot root tree is invalid

제안해 주신 모든 분들께 감사드립니다.


@Kusalananda의 요청에 따라 취한 조치입니다.참고: macOS에서만 사용할 수 있습니다.

복구 모드로 부팅(부팅 드라이브를 마운트 해제할 수 있도록 권장됨)MacOS 시작 중에 CMD + R 누르기

diskutil list운전을 실행 하고 관찰하세요

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *240.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                 Apple_APFS Container disk2         239.8 GB   disk0s2

/dev/disk1 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *120.0 GB   disk1
   1:                        EFI EFI                     209.7 MB   disk1s1
   2:                  Apple_HFS SSD                     119.7 GB   disk1s2

/dev/disk2 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +239.8 GB   disk2
                                 Physical Store disk0s2
   1:                APFS Volume main                    11.1 GB    disk2s1
   2:                APFS Volume Preboot                 24.3 MB    disk2s2
   3:                APFS Volume Recovery                525.8 MB   disk2s3
   4:                APFS Volume VM                      1.1 GB     disk2s4
   5:                APFS Volume main - Data             10.1 GB    disk2s5

필요한 내용은 IDENTIFIER열에 있습니다.

그것(disk0s1...)에서 값을 얻고 실행하십시오.

diskutil verifyVolume <IDENTIFIER>

예:diskutil verifyVolume disk0s1

나 같은 경우에는 달리기가 끝나면 disk0s2다음을 얻습니다.

fsroot tree is invalid
The volume /dev/disk0s2 could not be verified completely

이것이 부팅 드라이브인 경우 다음 단계를 진행하기 전에 마운트를 해제해야 합니다.

diskutil unmount <volume> 

좋다diskutil unmount /dev/disk0s2

이제 디스크 목록으로 돌아가서 이 식별자에 대해 설정된 형식을 찾으십시오.

제 경우에는 Apple_APFS Container disk2APFS 형식이라는 뜻입니다.

이제 달려야 해fsck_<file format> -y <broken volume>

내 경우에는 드라이브 형식이 이므로 다음과 같이 APFS수정해야 합니다 ./dev/disk0s2

fsck_apfs -y /dev/disk0s2

참고로

fsck_apfs [ [-q | -n | -y] [-l] [-s] [-S] [-o] ] device
       -q            quick check if the superblock and checkpoint superblock are valid.
       -n            verify only (answer "no" to questions)
       -y            always repair (answer "yes" to questions)
       -l            live fsck (lock down for verify-only)
       -s            print space verification summary
       -S            skip iteration of snapshots, although no repairs can be made.
       -o            repair overallocations; please do not run an older fsck_apfs on newer systems with this option

이제 운이 좋으면 문제가 해결될 수도 있습니다. 불행하게도 명령은 여전히 ​​오류를 반환합니다. 어쩌면 내가 모르는 드라이브 매핑을 수정하는 다른 방법이 있을 수도 있습니다. 방금 간단한 경로를 선택하고 드라이브를 포맷했는데 문제가 사라졌습니다.

관련 정보