質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

VMware

VMwareとは、 ハードウェアで動作するOS上で仮想マシンを作成、実行するソフトウェアです。 Windows上でUNIX系OSを動作させたり、他のOS上で別の仮想OSを動作することが可能です。

Q&A

解決済

2回答

36268閲覧

ファイルシステムのトラブル? Buffer I/O error on device

sakamo2

総合スコア37

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

VMware

VMwareとは、 ハードウェアで動作するOS上で仮想マシンを作成、実行するソフトウェアです。 Windows上でUNIX系OSを動作させたり、他のOS上で別の仮想OSを動作することが可能です。

0グッド

2クリップ

投稿2016/08/17 10:19

お世話になります。

VMWARE仮想マシンとして利用しているCENTOSにて、ファイルシステムエラーがでており対応策をアドバイスいただけませんでしょうか。

エラーが出ているのは、仮想マシンに接続している外付けUSB接続のHDDです。(エラーメッセージは、最後に載せております。)

1 ファイルシステムのエラーで復旧できそうなのか。
2 ハードディスクの故障なのか。

アンマウントしてfsck チェックしたら改善できそうという情報もあったのですが、あまり操作したことのないコマンドなので、どなたかアドバイスいただけませんでしょうか。

どうぞ宜しくお願い致します。

Aug 16 14:29:13 centos-svn kernel: sd 4:0:0:0: [sdc] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE Aug 16 14:29:13 centos-svn kernel: sd 4:0:0:0: [sdc] Sense Key : Medium Error [current] Aug 16 14:29:13 centos-svn kernel: sd 4:0:0:0: [sdc] Add. Sense: Unrecovered read error Aug 16 14:29:13 centos-svn kernel: sd 4:0:0:0: [sdc] CDB: Read(10): 28 00 06 b4 4d c0 00 00 08 00 Aug 16 14:29:13 centos-svn kernel: end_request: critical medium error, dev sdc, sector 112479680 Aug 16 14:29:13 centos-svn kernel: Buffer I/O error on device sdc1, logical block 14059952 Aug 16 14:29:13 centos-svn ntfs-3g[1054]: ntfs_attr_pread_i: ntfs_pread failed: Input/output error Aug 16 14:29:13 centos-svn ntfs-3g[1054]: ntfs_attr_pread error reading '/SVN/reps/contentShared/db/revs/553' at offset 4096: 4096 <> -1: Input/output error Aug 16 16:13:58 centos-svn ntfs-3g[1054]: ntfs_attr_pread_i: ntfs_pread failed: Input/output error Aug 16 16:13:58 centos-svn ntfs-3g[1054]: ntfs_attr_pread error reading '/SVN/reps/contentShared/db/revs/553' at offset 4096: 5165 <> -1: Input/output error Aug 16 16:13:58 centos-svn kernel: sd 4:0:0:0: [sdc] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

うかつに回答してファイルが消失しても責任は持てず、たいへん回答しにくい質問ではあるのですが……。

ログにある hostbyte, DRIVER_SENSE, Medium Error などの意味は、以下に載っていました。
http://archive.linux.or.jp/JF/JFdocs/SCSI-Programming-HOWTO.txt

このログからわかることは、少なくとも /SVN/reps/contentShared/db/revs/553 が記入された部分が損傷しているという事実です。原因が単なるファイルシステムのエラーなのかハードディスクの故障なのかは、他の部分も調査してみないとなんとも言えません。

まずはバックアップの確保

Subversion はそのデータ構造上、途中のリビジョンが破損しているとリカバリは非常に困難ですので、まず、553 のバックアップがないのであれば、早急に別ドライブにバックアップしてください。物理故障であれば、失敗しても何度かトライすると読める可能性があります。
一方、Subversionのバックエンドストアであるfsfsは、いったん生成されたリビジョンデータファイルは不変(プロパティは可変)なので、過去に一回でも取得したバックアップがあれば復旧にはそれが使えます。破損しかけた553のバックアップはさっさとあきらめてもよいです。
なお、故障範囲はそのパーティションを含んだドライブ全体である可能性があります。未バックアップなファイルがあれば、修復作業より前にバックアップを取得することをおすすめします。

回転軸などに故障があったりグリスが固まっている場合、いったん回転を止めると回りださなかったりすることがあるので、脱着は最小限にすべきです。また、ハードディスクは起動時に最も電力を使います。バスパワーで使っているなら外部電源をつなぐ、二股USBケーブルをつかってUSBを二口つかって給電する、太くて信頼できるUSBケーブルを使う、なども検討の余地があります。

他のエラーをチェック

少なくとも、sdc1 すなわち /SVN/reps/contentShared/db/revs/553 を含んでいるパーティションで読み出しエラーが起こっています。検知されたセクタはログから sdc, sector 112479680 ということが分かっています。

ディスクはそれ自身、不良セクタを検知すると、そのセクタを避けて代替セクタを使うように動作します。そのセクタが不良であるとマークされたあとは、そのセクタを踏んでいるファイルを編集した段階で代替セクタが使われます。今回のケースでは、553ファイルをバックアップから書き戻せば代替セクタが使われることが期待できます。
事前に用意した代替セクタを使い切ってしまうと、それ以上は対処できなくなります。smartctlコマンドが使えるようであれば、S.M.A.R.T関連で他にエラーが検知されていないか調べてみてください。大量に出ているようならディスクの寿命が近いので、リプレースをおすすめします。

追記: S.M.A.R.T情報の取り方や読み方は、この質問のsharowさんの回答がとても詳しく大変参考になるので参照してください。(追記ここまで)

修復

パーティションのフォーマットがntfsのようなので、エラーチェックや修復をするのに、fsckよりはWindowsのchkdskのほうが相性が良いかもしれません。バックアップが確保されていることを改めて確認したうえで、修復モードで実行することで、ディスクのエラーおよびファイルシステムの整合性がチェックされます。不整合があってみなしごだったファイルは、救出可能であればマウントポイントの lost+found とか FOUND.000 といったディレクトリに移されています。
救出できなかったファイルはどうしようもないので、バックアップから戻すなりしてください。上記のとおり、不良セクタにマーク済みであれば、553ファイルを上書きするだけで Subversionのリポジトリは復旧できているはずです。

投稿2016/08/17 11:39

編集2016/08/20 02:59
matobaa

総合スコア2493

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakamo2

2016/08/18 03:58

丁寧にコメントいただきありがとうございます。 smartctlコマンドは使えないようです。 /var/log/message には、セクタ番号の異なるBuffer I/O error が大量にありました。 ディスクの寿命が近いということでしょうか。 end_request: critical medium error, dev sdc, sector 112479680 kernel: Buffer I/O error on device sdc1, logical block 14059952
guest

0

私もつい先日1つ逝きました。しかもSSD。まだお通夜(RMA申請)が終わってません。

1 ファイルシステムのエラーで復旧できそうなのか。
2 ハードディスクの故障なのか。

論理破損か、という意味ならエラーの内容からするとそうだとも思えますが、論理破損する原因は物理破損だったりするのでなんとも言えません。最近はUSB接続でもS.M.A.R.Tが使えたりするのでその値も確認してみてはいかがでしょうか。Linuxならsmartmontoolsが使えます。sudo smartctl -a /dev/sdcのようにして問い合わせます。Raw Read Error Rateがたくさん出ていて驚かれると思いますが、まず見るべきはReallocated Sectors Count(代替セクタ割り当て量)がどれくらいあるか、です。代替セクタを使い切るとあとはI/Oエラーが出るのを待つだけですから、この値がかなり重要です。他の値の意味も調べてみてください。それらS.M.A.R.Tの内容を張っていただけると回答者に役立ちます。

(WindowsならCrystalDiskInfoとかなんとかで見れるんでしたっけ)

HDDは電源投入時に自己診断が走り、基本的な機能をテストします。電源を入れると最初にカリカリ音がするのはそれです。物理的に破損していると、この自己診断でコケて、S.M.A.R.Tのログにその記録が残ります(ちなみに自己診断でコケたHDDを接続して電源を入れると、警告が表示されBIOSやUEFIに飛ばされます)。そのようなログがあるかどうかと、先のReallocated Sectors Countの数が物理的な限界にきているのかどうかの一つの基準になります。

とはいえ、一度I/Oエラーが出たドライブには重要なデータは入れない方がよいです。復旧に関しては既に良い回答があるのでそちらを参考にしてください。

-- 追記

SMART Attributes Vendor Specific ID# ATTRIBUTE_NAME RAW_VALUE 1 Raw_Read_Error_Rate 113020384 4 Start_Stop_Count 159 5 Reallocated_Sector_Ct 0 7 Seek_Error_Rate 36783101 9 Power_On_Hours 25704 10 Spin_Retry_Count 0 12 Power_Cycle_Count 148 183 Runtime_Bad_Block 0 184 End-to-End_Error 0 187 Reported_Uncorrect 1278 188 Command_Timeout 8590065672 194 Temperature_Celsius 45 197 Current_Pending_Sector 592 198 Offline_Uncorrectable 592

気になる部分だけ抜き出してみました。
第一印象は稼働時間で、2.5万時間は約3年稼働に当たります。人によっては1万時間を超えたHDDは現役引退させてバックアップ用に格下げしたりしますから、2.5万時間で実際に磨耗(エラー)があるのでしたら、現役引退させてもいいのではないでしょうか。

Current_Pending_Sectorが592個あるのにReallocated_Sectorが0なので、数値上は「代替えしたいセクタがあるけども使われてない」ということになります。おそらく代替えは書き込み時にしか行われないからでしょう。なので何度かそのセクタに書き込みを試みれば代替えセクタに割り当ててくれるかもしれません。
こういう方法もあるようですが、個人的にはすべてデータを退避した上で、Windowsならchkdsk /rで不良クラスタをNTFSに登録し、終わった後のSMARTを確認するのが手っ取り早いと思います。Linuxならbadblocksで全セクタのテストが行えます(ただしbadblocksはデータは消える前提で使いましょう)。しかしながら、退避したデータをこのHDDに戻して元のように運用したりするのはリスクがありますのでとてもお勧めできません。消えても構わないデータや多重バックアップの一部に使いましょう。

投稿2016/08/17 12:24

編集2016/08/19 16:08
sharow

総合スコア1151

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakamo2

2016/08/18 03:44

コメントありがとうございます!!仮想マシンからUSB利用だからだと思うのですが、smartctlコマンド情報は以下の情報しか出力できませんでした。 # smartctl -a /dev/sdc smartctl 5.43 2012-06-30 r3573 [x86_64-linux-2.6.32-573.3.1.el6.x86_64] (local build) Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net /dev/sdc: Unknown USB bridge [0x0411:0x0249 (0x001)] Smartctl: please specify device type with the -d option. Use smartctl -h to get a usage summary #
matobaa

2016/08/18 04:08

Buffalo か Melco だったら、 -d sat オプションをつけたら読めるかも。
sharow

2016/08/18 05:42

情報ありがとうございます。 matobaaさん指摘の通り -d オプション有効かもしれません。あとは仮想マシン経由だと無理かもわからない(どのレベルのパススルーになってるのかによりますが)ので、Windows上のソフトから取得する方が確実かもしれません。
sakamo2

2016/08/18 10:32

情報ありがとうございます!! -d オプションでメッセージがでてきました。 文字が多くてこちらにただ貼り付けできませんでしたので一部のみ貼り付けしました。 SMART Error Log Version: 1 ATA Error Count: 763 (device log contains only the most recent five errors) CR = Command Register [HEX] FR = Features Register [HEX] SC = Sector Count Register [HEX] SN = Sector Number Register [HEX] CL = Cylinder Low Register [HEX] CH = Cylinder High Register [HEX] DH = Device/Head Register [HEX] DC = Device Command Register [HEX] ER = Error register [HEX] ST = Status register [HEX] Powered_Up_Time is measured from power on, and printed as DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes, SS=sec, and sss=millisec. It "wraps" after 49.710 days.
sharow

2016/08/18 11:17

コメントではなく、質問本文に追記なら全部貼り付けられると思いますよ。```で囲えばクリックするまではコンパクトに表示されるので見難くはなりません。全部表示するにはsmartctl -d sat -a /dev/sdc かな? ただこの一部だけ見ても763件のエラーが報告されていますね。
sakamo2

2016/08/18 11:49

ありがとうございます!コマンドはsmartctl -d sat -a /dev/sdc を試しました。実は、本文に貼り付けようとしたのですが文字数制限で更新できなかったため一部のみ載せました。
sharow

2016/08/18 12:32

なるほど…本文にも字数制限あるんでしたね。あとはpastebinやgistを使うとか。重要なのはReallocated Sectors Countを含むアトリビュートの表です。
sakamo2

2016/08/19 00:32

ありがとうございます! Reallocated Sectors Countを含むアトリビュート表こちらでしょうか。 ----- SMART Attributes Data Structure revision number: 10 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 100 090 006 Pre-fail Always - 113020384 3 Spin_Up_Time 0x0003 095 094 000 Pre-fail Always - 0 4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 159 5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0 7 Seek_Error_Rate 0x000f 075 060 030 Pre-fail Always - 36783101 9 Power_On_Hours 0x0032 071 071 000 Old_age Always - 25704 10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 148 183 Runtime_Bad_Block 0x0032 100 100 000 Old_age Always - 0 184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0 187 Reported_Uncorrect 0x0032 001 001 000 Old_age Always - 1278 188 Command_Timeout 0x0032 100 098 000 Old_age Always - 8590065672 189 High_Fly_Writes 0x003a 090 090 000 Old_age Always - 10 190 Airflow_Temperature_Cel 0x0022 055 034 045 Old_age Always In_the_past 45 (54 22 55 43 0) 191 G-Sense_Error_Rate 0x0032 100 100 000 Old_age Always - 0 192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 74 193 Load_Cycle_Count 0x0032 068 068 000 Old_age Always - 64453 194 Temperature_Celsius 0x0022 045 066 000 Old_age Always - 45 (0 21 0 0 0) 197 Current_Pending_Sector 0x0012 097 096 000 Old_age Always - 592 198 Offline_Uncorrectable 0x0010 097 096 000 Old_age Offline - 592 199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0 240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline - 202662326831755 241 Total_LBAs_Written 0x0000 100 253 000 Old_age Offline - 117873761243154 242 Total_LBAs_Read 0x0000 100 253 000 Old_age Offline - 2691436544852
sharow

2016/08/19 16:09

情報ありがとうございます。回答部分に追記しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問