問題:
NTFS パーティションに、削除または移動できないファイルがあります。ファイルを表示することはできます。このため、Windows 内でそのディレクトリを読み取ることもできません。Windows 内でこのディレクトリにアクセスしようとすると、「ファイルまたはディレクトリが壊れているため、読み取れません」というエラーが表示されます。
[root@ziggurat var]# ls -al .piw\?PageNum\=0
-rw-r--r-- 0 ttucker root 2016 Jan 28 08:56 '.piw?PageNum=0'
[root@ziggurat var]# rm -i .p*
rm: remove regular file '.piw?PageNum=0'? y
rm: cannot remove '.piw?PageNum=0': No such file or directory
[root@ziggurat var]# mv .piw\?PageNum\=0 derp
mv: cannot move '.piw?PageNum=0' to 'derp': No such file or directory
ファイルを編集しようとすると、左下にvim
表示されます。".piw?PageNum=0" [Permission Denied]
権限を変更しようとすると、次のエラーが発生します。
[root@ziggurat var]# chmod 777 .piw\?PageNum\=0
chmod: cannot access '.piw?PageNum=0': Input/output error
詳しくは:
これは、1 つのパーティションを含む 2 番目のドライブです。パーティションは Windows 10 内で作成されました。このパーティションには私のものは含まれていません。Windows C Drive
このドライブは、Linux ルート パーティションおよび Windows oot パーティションとは完全に分離されています。
[root@ziggurat var]# pwd
/mnt/storage/ttucker/var
[root@ziggurat var]# df -h /mnt/storage/
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 932G 197G 736G 22% /mnt/storage
[root@ziggurat var]# fdisk -l /dev/sda
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 91985B34-E4D8-4F7B-ABF4-7F2E27482077
Device Start End Sectors Size Type
/dev/sda1 2048 1953523711 1953521664 931.5G Microsoft basic data
さらに詳しい情報:
Windows 内では、ディレクトリに切り替えることができませんvar
。次のメッセージが表示されます:The file or directory is corrupted and unreadable.
ドライブ内の他の場所では、表示および変更できます。
ファイルは、おそらく、最初に、誤ったwget
コマンドで作成されました。
ファイルはそこにあり、私はcat
それをできますSTDOUT
。内容は米国特許ウェブページの HTML です。
[root@ziggurat var]# cat .piw\?PageNum\=0
<!-- PageNum=0 -->
<!-- NumPages=0 -->
<HTML>
<HEAD><TITLE>Patent Images</TITLE></HEAD>
<BODY TOPMARGIN="0" leftmargin="0" MARGINWIDTH="0" MARGINHEIGHT="0" >
... clipped for brevity ...
</BODY>
</HTML>
OS と ntfs-3g の情報は次のとおりです。
[root@ziggurat var]# pacman -Ss ntfs
extra/ntfs-3g 2016.2.22-1 [installed]
NTFS filesystem driver and utilities
[root@ziggurat var]# uname -a
Linux ziggurat 4.9.6-1-ARCH #1 SMP PREEMPT Thu Jan 26 09:22:26 CET 2017 x86_64 GNU/Linux
最後に:
また、ドライブをアンマウントして実行してみましたが、ntfsfix
効果はありませんでした。
ありがとう!
アップデート
私はディレクトリchmod 777
を持っていましたvar
...その後、実行したところchown -R root:root var
、次のエラーが発生しました: chown: changing ownership of 'var/.piw?PageNum=0': Input/output error
...その後...ディレクトリ内を検索しました:
[root@ziggurat var]# ls -ltra
ls: cannot access '.piw?PageNum=0': Input/output error
total 3116333
-????????? ? ? ? ? ? '.piw?PageNum=0'
-rw-r--r-- 1 ttucker root 250910 Jan 28 08:56 0.pdf
....
うーん...ドライブはただjacked
<--専門用語だと思う
2回目の更新:
chown
上記のディレクトリで を実行した後、Windows を再起動しました。Windows のロード中にchecking the drive for consistency
、(またはその言語の何か) と表示されました。とにかく... 今は動作します。ファイルは消え、Windows で読み取ることができます。
他の人に役立つ可能性のある追加情報:
同じファイルが入っているドライブが 2 つあります。内部バックアップ ドライブと外部バックアップ ドライブです。どちらも NTFS で、var
Windows では両方のディレクトリにアクセスできませんでした。内部ドライブの問題を解決した後、"おかしな" 名前のファイルを削除すると、外部ドライブの問題も解決することがわかりました。例:
-rwxrwxrwx 1 root root 2016 Dec 31 22:31 '.piw?PageNum=0'
-rwxrwxrwx 1 root root 8379 Dec 31 22:32 '.piw?PageNum=0&docid=01111111&IDKey=DE3F91CB19BB%0D%0A&HomeUrl=http%3A%2F%2Fpatft.uspto.gov%2Fnetacgi%2Fnph-Parser%3FSect1%3DPTO1%2526Sect2%3DHITOFF%2526d%3DPALL%2526p%3D1%2526u%3D%25252Fnetahtml%25252FPTO%25252Fsrchnum.htm%2526r%3D1%25'
何らかの理由で、おそらく外付けドライブで を実行しなかったためntfsfix
、これらの 2 つの「問題のあるファイル」を削除して、Windows でそのディレクトリを読み取ることができました。
皆さんありがとう!
答え1
これは、面白いファイル名の組み合わせだったようです:
.piw?PageNum=0&docid=01111111&IDKey=DE3F91CB19BB%0D%0A&HomeUrl=http%3A%2F%2Fpatft.uspto.gov%2Fnetacgi%2Fnph-Parser%3FSect1%3DPTO1%2526Sect2%3DHITOFF%2526d%3DPALL%2526p%3D1%2526u%3D%25252Fnetahtml%25252FPTO%25252Fsrchnum.htm%2526r%3D1%25
...そしてその後ntfsfix
...
最終的な解決策は、ファイルの権限と所有権をいじってから、Windows を再起動することです (これにより、ディスクの整合性がチェックされます)。