ファイルシステムの非常に奇妙な動作、シュレディンガーのファイル

ファイルシステムの非常に奇妙な動作、シュレディンガーのファイル

私は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をオートコンプリートしようとすると、実際に私をオプションの.gitconfig1つとして提案することです。

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

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

おすすめ記事