お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2019-03-31 21:29:33

ent0r1
新しいメンバ
登録日: 2019-03-31

入力/出力エラーが発生しているファイルの復旧と削除方法

入力/出力エラーが発生しているファイルの復旧と削除方法について、ご教授をお願いします。


トラブル発生時の状況

Sambaを利用してファイルサーバーを運用しています。
WindowsPCからサーバー上のフォルダおよびファイルのコピー操作をした後、
サーバー上の不要なファイルを削除しました。
その削除操作中に、一部のフォルダが消えませんでした。

サーバー側で削除できなかったフォルダを"ls -l"コマンドで調べたところ、
下記のように入力/出力エラーが発生していました。
また、一部エラーが生じていたファイルの中に、コピーされていないファイルがありました。
※そのため、削除だけでなく、復旧にもトライしようと考えています。

コード:

ls: 'ooxxooxx' にアクセスできません: 入力/出力エラーです
-????????? ? ? ? ?             ? ooxxooxx

※ooxxooxx:ファイル名です。実際には複数のファイルがあります。
 また、ファイルが見えないので、隠しファイル?になってそうです。


環境

ubuntu 16.04 LTS
Samba  4.3.11
mdadm 3.3(ファイルサーバー用にRaid1を構築しています。フォーマットはNTFSです)

Memory 2.9 GiB
CPU Intel® Core™2 CPU 6400 @ 2.13GHz × 2
Graphics AMD CEDAR (DRM 2.43.0 / 4.4.0-143-generic, LLVM 6.0.0)


これまでの確認事項

ハードディスクのSMARTの情報を確認しましたが、故障エラーはありませんでした。
"rm -f"コマンドなどで不要なファイルの削除を試みましたが、下記のように、入力/出力エラーにより削除できませんでした。
また、"fsck"コマンドは、NTFSフォーマットには対応していないようでした。

コード:

rm: 'ooxxooxx' を削除できません: 入力/出力エラーです

オフライン

 

#2 2019-04-01 09:11:14

kznj
メンバ
登録日: 2013-12-03

Re: 入力/出力エラーが発生しているファイルの復旧と削除方法

初心者サポートで「linuxでRAID1組んだ環境での質問だ!」という驚きはさておきまして(笑)
 
お話を聞いた感じではハードウェアとしてのHDDになにかあったというより
NTFS内で破壊とまでは言わないまでも不整合などを起こしているように見えます。
インターネット上にある質問でも、英語になりますが以下のようなものがありました。
"How do you repair an “input/output error” in an NTFS partition?" https://askubuntu.com/questions/74105/how-do-you-repair-an-input-output-error-in-an-ntfs-partition
 
**********************************************************
以下の方法はいきなり修復するのではなく
まずHDDがどうなっているかを確認するため実行してください
*********************************************************
 
1) ntfsfix を使う
 
fsckは直接はntfsに対応していませんが、別にntfsfixというコマンドがあります。
ntfs-3gなどntfsに関するプログラムを公開しているtuxera社のOSSです。
https://www.tuxera.com/community/open-source-ntfs-3g/
 
以下のパラメータ指定ならデバイスに書き込みせずに情報だけ得られるはずです。
ntfsfix -n <対象デバイス名>
 
distroによってはfsck.ntfsというコマンドがあってその実体はこのntfsfixの場合もあるようです。
 
ntfsfixに関しては上記のtuxera社のサイト以外に以下のサイトに情報があります。
ntfsfix(8) - Linux man page https://linux.die.net/man/8/ntfsfix
Linux Commands Examples ntfsfix http://www.linux-commands-examples.com/ntfsfix
破損した NTFS ファイルシステム https://wiki.archlinux.jp/index.php/NTFS-3G#.E7.A0.B4.E6.90.8D.E3.81.97.E3.81.9F_NTFS_.E3.83.95.E3.82.A1.E3.82.A4.E3.83.AB.E3.82.B7.E3.82.B9.E3.83.86.E3.83.A0
 
2) WindowsマシンにHDDを接続してでchkdskを実行する  ※RAID1がネックになってリスキーです
 
質問者の方はRAID構築しているのでntfsのファイルシステムはlinux上で mkfs -t ntfs か mkfs.ntfs を実行して作成していると思われます。
このntfsファイルシステムを作成する一連のプログラムもntfs-3gの一部です。
ntfsfixとも親和性が高い(=ntfsにmkfsしたファイルシステムで起きることを想定し得る)ので、大方の問題はntfsfixで検出(ないし修復)出来るはずです。
 
それでもダメな場合は"NTFS本家のMicrosoftのNTFSとしてチェックする"……Windowsマシン上からchkdskするということになります。
WindowsマシンにNTFSの問題のHDDをSATAなりUSBなりで接続して次のコマンドを実行します。
 chkdsk <ドライプ名>  ※情報を得るだけならばドライプ名以外のパラメータは指定しないでください
問題がなければ「ファイル システムのチェックが終了しました。問題は見つかりませんでした。」と通知されます。
 
ただ、質問者の方はRAID1構成にしているので、以下の心配があります。
・手間無く簡単にWindowsマシンに接続することが出来る環境なのか?
・RAID1のミラーの各々がただのHDDとしてWindowsから認識されるのか?(理屈としてRAID1のミラーのそれぞれは同じデータを格納したシングルボリュームそのものだと思いますが……)
 
加えて、WindowsマシンのchkdskでNTFSの問題箇所を修復した場合に、以下の心配も出てきます。
・ファイルサーバーにしていたディスクなので大容量の可能性があるが、chkdskして修復にとてもつもない時間がかからないか?
・RAID1のミラーの各々個別にchkdskで修復して、その後RAID1として不整合は起きないのか?
 
Windowsマシン上のchkdskで修復までするのならそれなりの覚悟を持ってしたほうがいいと思われます。
出来ることなら、ミラーのどちらでもいいので3個目のHDDにファイルレベルのコピーバックアップを取っておいたほうが安心できるでしょう。
修復前と修復後のどちらを取るかは悩ましいですが、修復した後で見えなくなるファイルがあることを想定したら両方取得出来ると完璧かも知れません。
ファイルレベルとしたのはDDとかでは問題のある箇所もそのままバックアップしてしまうので、ファイルとして見えている範囲でバックアップするためです。
 
 
余談というか個人的な興味なのですが、以下について教えてください。
・Sambaでファイルサーバーを構築するのなら、サーバー上のファイルシステムはNTFSでなくてもよかったように思えます。なぜNTFSにされたのでしょうか?
 
以上です

オフライン

 

Board footer

Powered by FluxBB