저는 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 disk2
APFS 형식이라는 뜻입니다.
이제 달려야 해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
이제 운이 좋으면 문제가 해결될 수도 있습니다. 불행하게도 명령은 여전히 오류를 반환합니다. 어쩌면 내가 모르는 드라이브 매핑을 수정하는 다른 방법이 있을 수도 있습니다. 방금 간단한 경로를 선택하고 드라이브를 포맷했는데 문제가 사라졌습니다.