web-dev-qa-db-ja.com

HDDで破損したセクターを復元する際の問題

重要な更新中に電力が不足しているため、ラップトップのHDDに問題があります。

それ以来、私はほとんどまたはまったく問題なく再起動することができましたが、最近、おそらく別のメジャーアップデートまたはhddの悪化(手がかりなし、本当に...)のために、私のマシンはhddだけでは起動できなくなりました(ええと、私は実際にはWindowsを使用しようとしませんでしたが、基本的に私が使用する唯一のOSであるUbuntuでは使用しませんでした)、それを機能させるにはUbuntuUSBペンドライブを使用する必要がありました。

私はそれを処理する方法について多くのオンラインチュートリアルに従い、最終的にsmartmontoolsをインストールしましたが、一部のオンラインリソースでは結果が得られなかったため、smartctlを使用して再割り当てされたセクターを見つけました。

別のチュートリアルに従い、Sudo badblocks -sv -b 512 /dev/sdbを使用すると、はるかに幸運に恵まれました。長いスキャンの後、私はそれから抜け出しました。

618997769one, 1:58:10 elapsed. (1/0/0 errors)
618997770one, 1:58:13 elapsed. (2/0/0 errors)
618997771one, 1:58:16 elapsed. (3/0/0 errors)
618997772one, 1:58:20 elapsed. (4/0/0 errors)
618997773one, 1:58:23 elapsed. (5/0/0 errors)
618997774one, 1:58:26 elapsed. (6/0/0 errors)
618997775one, 1:58:30 elapsed. (7/0/0 errors)
618997776one, 1:58:33 elapsed. (8/0/0 errors)
618997777one, 1:58:36 elapsed. (9/0/0 errors)
618997778one, 1:58:39 elapsed. (10/0/0 errors)
618997779one, 1:58:42 elapsed. (11/0/0 errors)
618997780one, 1:58:45 elapsed. (12/0/0 errors)
618997781one, 1:58:49 elapsed. (13/0/0 errors)
618997782one, 1:58:52 elapsed. (14/0/0 errors)
618997783one, 1:58:56 elapsed. (15/0/0 errors)
618997784one, 1:58:59 elapsed. (16/0/0 errors)
618997785one, 1:59:02 elapsed. (17/0/0 errors)
618997786one, 1:59:05 elapsed. (18/0/0 errors)
618997787one, 1:59:08 elapsed. (19/0/0 errors)
618997788one, 1:59:12 elapsed. (20/0/0 errors)
618997789one, 1:59:15 elapsed. (21/0/0 errors)
618997790one, 1:59:18 elapsed. (22/0/0 errors)
618997791one, 1:59:21 elapsed. (23/0/0 errors)
618997792one, 1:59:25 elapsed. (24/0/0 errors)
618997793one, 1:59:28 elapsed. (25/0/0 errors)
618997794one, 1:59:31 elapsed. (26/0/0 errors)
618997795one, 1:59:35 elapsed. (27/0/0 errors)
618997796one, 1:59:38 elapsed. (28/0/0 errors)
618997797one, 1:59:41 elapsed. (29/0/0 errors)
618997798one, 1:59:44 elapsed. (30/0/0 errors)
618997799one, 1:59:47 elapsed. (31/0/0 errors)
618997800one, 1:59:50 elapsed. (32/0/0 errors)
618997801one, 1:59:53 elapsed. (33/0/0 errors)
618997802one, 1:59:57 elapsed. (34/0/0 errors)
618997803one, 2:00:00 elapsed. (35/0/0 errors)
618997804one, 2:00:03 elapsed. (36/0/0 errors)
618997805one, 2:00:07 elapsed. (37/0/0 errors)
618997806one, 2:00:10 elapsed. (38/0/0 errors)
618997807one, 2:00:13 elapsed. (39/0/0 errors)
618997808one, 2:00:16 elapsed. (40/0/0 errors)
618997809one, 2:00:19 elapsed. (41/0/0 errors)
618997810one, 2:00:23 elapsed. (42/0/0 errors)
618997811one, 2:00:26 elapsed. (43/0/0 errors)
618997812one, 2:00:29 elapsed. (44/0/0 errors)
618997813one, 2:00:32 elapsed. (45/0/0 errors)
618997814one, 2:00:35 elapsed. (46/0/0 errors)
618997815one, 2:00:38 elapsed. (47/0/0 errors)
618997816one, 2:00:41 elapsed. (48/0/0 errors)
618997817one, 2:00:45 elapsed. (49/0/0 errors)
618997818one, 2:00:48 elapsed. (50/0/0 errors)
618997819one, 2:00:51 elapsed. (51/0/0 errors)
618997820one, 2:00:55 elapsed. (52/0/0 errors)
618997821one, 2:00:58 elapsed. (53/0/0 errors)
618997822one, 2:01:01 elapsed. (54/0/0 errors)
618997823one, 2:01:04 elapsed. (55/0/0 errors)
618997824one, 2:01:07 elapsed. (56/0/0 errors)
618997825one, 2:01:10 elapsed. (57/0/0 errors)
618997826one, 2:01:14 elapsed. (58/0/0 errors)
618997827one, 2:01:17 elapsed. (59/0/0 errors)
618997828one, 2:01:20 elapsed. (60/0/0 errors)
618997829one, 2:01:23 elapsed. (61/0/0 errors)
618997830one, 2:01:26 elapsed. (62/0/0 errors)
618997831one, 2:01:30 elapsed. (63/0/0 errors)
done                                                 
Pass completed, 64 bad blocks found. (64/0/0 errors)

少なくとも、私が何か問題があったかどうか、そして場合によってはどこにあったかについては、かなり有益でした。数字の後に「1」が続く理由についてはまだわかりませんので、その部分もお気軽に教えてください。

この時点で、私は自分が最も示唆していることを試しました。それは修正ストライキを目指していました。

Sudo hdparm --write-sector --yes-i-know-what-i-am-doing 618997831 /dev/sdb

1つまたは他の異なるバージョンで試しても、それが私に戻っただけだったのは残念です:

write-sector: bad/missing sector value

そして、ここで私はちょっと迷っています:どんなヒントでも、より多くの教育/情報がより良いです、高く評価されます。

よろしくお願いします。重要な詳細を忘れていないか尋ねてください:)

編集:ああ、どうもありがとう@David!

それは確かに役に立ちましたが、sdbseems ok、私はこれをsdaから取得し、まだSudo badblocks -sv -b 512 /dev/sdaを使用しています。

Checking blocks 0 to 625142447
Checking for bad blocks (read-only test):   0.00% done, 0:00 elapsed. (0/0/0 err545995272one, 1:26:12 elapsed. (0/0/0 errors)
545995273one, 1:26:15 elapsed. (1/0/0 errors)
545995274one, 1:26:18 elapsed. (2/0/0 errors)
545995275one, 1:26:21 elapsed. (3/0/0 errors)
545995276one, 1:26:25 elapsed. (4/0/0 errors)
545995277one, 1:26:28 elapsed. (5/0/0 errors)
545995278one, 1:26:31 elapsed. (6/0/0 errors)
545995279one, 1:26:35 elapsed. (7/0/0 errors)
545995280one, 1:26:39 elapsed. (8/0/0 errors)
545995281one, 1:26:43 elapsed. (9/0/0 errors)
545995282one, 1:26:47 elapsed. (10/0/0 errors)
545995283one, 1:26:55 elapsed. (11/0/0 errors)
545995284one, 1:27:00 elapsed. (12/0/0 errors)
545995285one, 1:27:06 elapsed. (13/0/0 errors)
545995286one, 1:27:11 elapsed. (14/0/0 errors)
545995287one, 1:27:17 elapsed. (15/0/0 errors)
545995288one, 1:27:21 elapsed. (16/0/0 errors)
545995289one, 1:27:25 elapsed. (17/0/0 errors)
545995290one, 1:27:29 elapsed. (18/0/0 errors)
545995291one, 1:27:35 elapsed. (19/0/0 errors)
545995292one, 1:27:39 elapsed. (20/0/0 errors)
545995293one, 1:27:46 elapsed. (21/0/0 errors)
545995294one, 1:27:49 elapsed. (22/0/0 errors)
545995295one, 1:27:53 elapsed. (23/0/0 errors)
545995296one, 1:27:56 elapsed. (24/0/0 errors)
545995297one, 1:27:59 elapsed. (25/0/0 errors)
545995298one, 1:28:02 elapsed. (26/0/0 errors)
545995299one, 1:28:06 elapsed. (27/0/0 errors)
545995300one, 1:28:09 elapsed. (28/0/0 errors)
545995301one, 1:28:12 elapsed. (29/0/0 errors)
545995302one, 1:28:16 elapsed. (30/0/0 errors)
545995303one, 1:28:19 elapsed. (31/0/0 errors)
545995304one, 1:28:22 elapsed. (32/0/0 errors)
545995305one, 1:28:28 elapsed. (33/0/0 errors)
545995306one, 1:28:31 elapsed. (34/0/0 errors)
545995312one, 1:28:38 elapsed. (35/0/0 errors)
545995313one, 1:28:42 elapsed. (36/0/0 errors)
545995320one, 1:28:49 elapsed. (37/0/0 errors)
545995328one, 1:28:58 elapsed. (38/0/0 errors)
545995329one, 1:29:02 elapsed. (39/0/0 errors)
545995336one, 1:29:06 elapsed. (40/0/0 errors)
545995337one, 1:29:10 elapsed. (41/0/0 errors)
545995338one, 1:29:13 elapsed. (42/0/0 errors)
618997768one, 1:45:58 elapsed. (43/0/0 errors)
618997769one, 1:46:02 elapsed. (44/0/0 errors)
618997770one, 1:46:05 elapsed. (45/0/0 errors)
618997771one, 1:46:08 elapsed. (46/0/0 errors)
618997772one, 1:46:11 elapsed. (47/0/0 errors)
618997773one, 1:46:14 elapsed. (48/0/0 errors)
618997774one, 1:46:18 elapsed. (49/0/0 errors)
618997775one, 1:46:21 elapsed. (50/0/0 errors)
618997792one, 1:46:24 elapsed. (51/0/0 errors)
618997793one, 1:46:28 elapsed. (52/0/0 errors)
618997794one, 1:46:31 elapsed. (53/0/0 errors)
618997795one, 1:46:34 elapsed. (54/0/0 errors)
618997796one, 1:46:38 elapsed. (55/0/0 errors)
618997797one, 1:46:41 elapsed. (56/0/0 errors)
618997798one, 1:46:44 elapsed. (57/0/0 errors)
618997799one, 1:46:48 elapsed. (58/0/0 errors)
618997808one, 1:46:51 elapsed. (59/0/0 errors)
618997809one, 1:46:55 elapsed. (60/0/0 errors)
618997810one, 1:46:58 elapsed. (61/0/0 errors)
618997811one, 1:47:01 elapsed. (62/0/0 errors)
618997812one, 1:47:05 elapsed. (63/0/0 errors)
618997813one, 1:47:08 elapsed. (64/0/0 errors)
618997814one, 1:47:11 elapsed. (65/0/0 errors)
618997815one, 1:47:14 elapsed. (66/0/0 errors)
618997816one, 1:47:18 elapsed. (67/0/0 errors)
618997817one, 1:47:21 elapsed. (68/0/0 errors)
618997818one, 1:47:24 elapsed. (69/0/0 errors)
618997819one, 1:47:27 elapsed. (70/0/0 errors)
618997820one, 1:47:30 elapsed. (71/0/0 errors)
done                                                 
Pass completed, 72 bad blocks found. (72/0/0 errors)

もう一度hdparmを使用する必要があると思いますよね?コマンドを72回起動する代わりに自動化するスマートな方法はありますか? Pythonスクリプトを作成して、それらを ";"で連結することもできますが、賢い方法がある場合は、お知らせください。

これまでのサポートに感謝します:)

1
Ajna

hdparmコマンドが間違っています。 手動 (私が強調表示)を参照してください:

--write-sector

指定されたセクター番号にゼロを書き込みます。すごく危ない。セクター番号を指定する必要があります(base10)このオプションの後hdparmは、指定されたセクターに低レベルの書き込み(通常のブロックレイヤーの読み取り/書き込みメカニズムを完全にバイパスする)を発行します。これを使用して、ドライブに不良セクタを強制的に修復させることができます(メディアエラー)。

あなたの目的のための正しいコマンドは

Sudo hdparm --write-sector 618997831 --yes-i-know-what-i-am-doing /dev/sdb

編集:質問を1つの不良ブロックだけでなく、すべてで検出された不良ブロックに拡張したので、この質問に次の質問の重複としてフラグを付けました。ディスクドライブコントローラに不良ブロックを予備の予約ブロックに再割り当てさせるという、より一般的な問題を扱います。

0
David Foerster

ddを使用して、72のセクターすべてを一度に書き込むことができます。

Sudo dd if=/dev/zero of=/dev/sda bs=512 seek=545995273 count=72

ドライブが物理的に停止しているかどうかについては、SMART統計を確認してください。ただし、不良セクタが多数あるため、電源障害だけではなく、1つだけが破損する傾向があると思われます。 。書き込み後、SMART統計で、再割り当てされたセクターが多数あると示されている場合、それらは物理的に損傷しているため、ドライブを交換する必要があります。

0
psusi