
私は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
1つとして提案することです。
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
これで幸運なことに問題が解決することがあります。残念ながら、コマンドはまだエラーを返します。たぶん私が知らないドライブマッピングを変更する別の方法があるかもしれません。簡単なパスを選択してドライブをフォーマットしたところ、問題がなくなりました。