Hatena::ブログ(Diary)

tk4168の日記 Twitter

2017-02-14

PC再インストールのメモ

数年ぶりに自分のPCのOSインストールをする羽目になったので、作業記録を残しておく。

【注意】大した参考にならない、チラシの裏です!

前兆

このPCは5年以上前に購入し、当時はWindows 7プリインストールされていた。

去年ぐらいから、コミットチャージが設定の上限を超えて無制限に増え続けるという不可解な不具合を発症しており、OSインストールするかPCのリプレイスを検討していた。内蔵HDDも異音がしたり、ファイルアクセスが不審な挙動をしてたりしていたため、遠からずリプレイスしないといけないとは思ってはいたが、先延ばしにしていた。そんな状態で去年Windows 10に無理やりアップデートしたりしてOS内部の問題が蓄積でもしていたのかもしれない。

起動不可に

今日、Windows Updateを行った後、再起動しようとしたら起動しなくなった。

Windows 10はセーフモードで起動するのも難しく、断念した。

(起動途中に電源を落とすことで次回起動時にセーフモードで起動する、と書いてあるサイトもあったが、うまくいかず。というか無理やりすぎる…)

Windows 10インストールCDを作っていたため、それで起動できないか試してみることに。

結果は、インストールCDからの起動には問題がなかったが、sfcを実行しても空振り、chkdskも問題なし、スタートアップ修復しても変わらず。システムの復元はおろか、「初期化」(データを退避して丸ごと再インストール、らしい)すらエラーとなって手詰まりに。

この時点で、OSの再インストールかPCリプレイスか、どちらかしか選択肢にならない状態となってしまった。

データサルベージ

余っているHDDをPCにプライマリ*1として接続して、そこにWindows 10クリーンインストールセカンダリに今まで使っていた起動しなくなったWindowsが入ってるHDDを接続してデータを取り出そうと考えていた。

しかし、今は使っていないPCからHDDを抜き出そうとしたが、思いのほか分解が難しそうで断念。

USB接続の外付けHDDを分解しようとしたが、これも困難であったため断念。

あとは、内蔵ディスク(SSD)を取り外して別PCに接続して、ということも考えたが、上述の経緯より、取り外し困難そうだと考え選択肢から外した。

となると、残る方法は、何とかして内蔵SSDを取り外さずしてそこからデータを吸い上げるしかない。

手元にあったLinux CD/DVDで吸い上げようとしたが、起動しなかったり、古すぎるディストリのためNTFSがマウントできなかったりで、これも断念。

最後の手段として、HDDイメージバックアップソフトのTrue Imageを使って外付けHDDへイメージバックアップすることを試みた。

最初に試した外付けHDDGPTであったため、そこへの書き出しがTrue Image Home 2010ではサポートされてなかったようでうまくいかなかった。次に試した外付けHDDは、空き容量がギリギリであったがなんとかバックアップに成功した。

インストール

バックアップからきちんとデータが読み取れたさえすれば内蔵SSDは消しても構わないので、再インストールすることとなる。

本来なら、リカバリテストをしてから再インストールすべきであったが、端折ってしまった。今回は問題なかったが、今後は気を付けるべき。

インストールは、上述のWindows 10インストールCDを利用した。今回はテンパってて初期のWindows 10インストールCDを利用してしまったが、出来るなら最新のもの(現時点ではAnniversary Update)でクリーンインストールしたい。

インストール自体はスムーズにいった。足りないドライバはテレビチューナくらいだったし、無線LANアダプタも自動認識したので助かった。ネットに繋がらなかったらドライバの入手もできないし。

リカバリ

あとは、True Imageでバックアップしたデータを吸い上げることができるかどうか、となるが、True Imageのバージョンが古く、Windows 10インストールできるか不安であった。

試したところ何の問題もなくインストールが完了し、イメージデータのマウントも問題なくできた。素晴らしい*2。専用形式でイメージ化するバックアップソフトは汎用的ではないという短所はある。

続々とアプリインストール

まずはTweenインストールバックアップからフォルダを持ってくるだけ。特に問題なし。

次にFirefoxインストール。64bit OSだが、なぜか自動で32bit版がインストールされた。再インストールする前の環境だと64bit版の方が重いと感じてたのでそのまま32bit版を使用することとする。デフォルトで32bit版が入るのも、64bit版が不安定だから、とかで意図した挙動かもしれないし。

このPCの今後

ハードウェア障害でないなら当面使い続けるのもありかもしれない。そうはいっても内蔵HDDの怪しさもあるし、リプレイスするべきなのは変わらないだろとも思うが。なかなか面倒なことだ。

断念するか?

テレビの録画データにはDRMが掛かっているので単純に再インストールすると見れなくなるのは覚悟していた。

予想通り見れなくなってしまったので、復旧を試みるも、インストールしたチューナソフトのバージョン違い*3もあって失敗した。DRMメディアはテンポラリな扱いで妥協するとして、断念しようかと思っている。

教訓

  • バックアップすべし(当たり前)
  • 不調だなという予想は当たる
  • インストールCDは必ず準備しておくべし
  • 予備のHDDがあると助かる。できれば裸のHDDSATAケーブルの組み合わせがよい
  • メーカー製PCや外付けHDDの分解しづらさをなめていた。その気になればHDDくらい簡単に換装できるものだと高をくくっていた
  • HDDイメージバックアップはやっぱり便利。True ImageがNTFSへの書き出し、USB接続HDDへの書き出しができるのが非常に良い。オススメ
  • 所有PCで起動可能な、NTFSマウントできるLinuxディストリビューションを探して、CD/DVDに焼いて用意しておく
  • リカバリテストをすべし

要検証

追記

True Image 2010はやはりWindows 10では完全には動かなかった。

管理ツールが起動できないし、イメージファイルからのデータ抽出も不安定だった*4。仕方ないので2017を購入。シリアルキーが短くなったのはよいが、インストーラが立ち上がるまで数分無反応でフリーズしたかのようだったのはいただけないし、専用アカウント作らないとライセンス認証できなくなってしまってる。認証のためだけにアカウントの用意を強いるのはよくない。というかマニュアルにはそんなこと書いてないのもアレ。

また、上記の復旧の試行で、Windows 10インストールCDから起動して復旧させようとしてできなかったと書いたが、よくよく確かめると、Anniversary UpdateでないインストールCDで起動してたので、それが問題だった可能性があることに気づいた。

*1:実はSATAの接続方法は全然知らない。IDEの頃はマスター・スレーブとかあったのは知っていたが。であるため、詳しい優先順位は後程調べることとする

*2ライセンスキーが64文字もあるのには閉口したが

*3:元々プリインストールされていたバージョンはPCメーカから配布されてはいたが、Windows 7用であるし、Windows 10アップデートした後いろいろ不具合が出てたので使いたくなかったため、チューナの開発元からダウンロードした。そもそもPCメーカの配布しているインストーラは、電子署名が失効しているためインストールできないし

*4:イメージファイルをダブルクリックしての簡易マウントではなくドライブレターを割り当てるきちんとしたマウントをすれば安定していたかもしれないが。まあどのみち保証外だし

2016-08-11

PCの不調の切り分け

PCの調子が悪いとき、それがハードウェアの故障によるものか、そうではなくOSの再インストールで復旧するのか、切り分けたいときがある。実際に再インストールしたら切り分けられるが、できればその手間を掛けずに切り分けたい。

なお、この記事では、オーバークロックは想定していない。

「メーカ製PCを買ってそのまま使い続けていたら不調になった」という、身の回りで一番あり得るパターンを念頭に置いている。

PCメーカ独自のハードウェア検査ツールを使う
「Diagnostic」などと言われているツールを使う。

利点

ツールが標準装備であれば、簡単に実行可能

欠点

汎用的では無い。そういったツールがあるかはメーカ、機種次第。

個人的な経験として、この手のツールで診断してエラー無しで、OS再セットアップしても不調が継続した、というパターンもあるので、あんまり信用できないかもしれない。

商用の検査ツールを使う
おそらくあると思うが、個人で気軽に利用できる金額では無いのだろう。
フリーのツールを使う

利点

フリー

欠点

それなりに手間とスキルが必要。


以下にフリーのツールを列挙する。具体的な使い方はググること。

Prime95(CPU、メモリ周り)

オーバークロッカー御用達のため、ググるオーバークロックを前提とした記事が多くヒットするが、定格動作の場合は以下のような感じの判断基準でよいと思う。

Prime95の起動時のデフォルト(Blend)でテスト

一般に数時間以上テストすることが望ましいらしいが、本当に不調なPCだと数秒から数分でFATAL ERRORが出るのでまずはその程度持つかどうかで切り分けられるかもしれない。

エラーが出た場合は間違いなく何らかの問題がある。しかし、これだけではハードウェアの問題とは言い切れないようだ。

デバイスドライバに起因する障害

Prime95がエラーを出す原因として、デバイスドライバが考えられる。全てのデバイスを外しセーフモードで起動してPrime95を実行してどうなるか?

それでエラーが出ない場合、ハードには異常が無い(かもしれない)。エラーが出た場合、Memtest86でもテストし、それでエラーが出た場合はメモリが怪しい。Memtestが異常ない場合はCPUマザーボード、あるいは電源が怪しい。(しかし、CPUが壊れることは滅多に無い。マザーボードコンデンサは劣化しやすい)

Memtest86(メモリ)

日常用途で不安定になっているような事象について本当にそれがメモリ起因なのを調べるのであれば、1周だけで充分だと思う。

メモリ自体が壊れることはあんまり無いらしい(つまりメモリの相性問題の洗い出しが主用途)ので、メーカ製PCでメモリ交換、増設をしてない場合はあんまり意味が無いかも。

ddコマンドでゼロフィル(ディスク)

ディスク全領域に「書き込めること」を確認する。ブロックサイズは適切な大きさにすること(時間が掛かるため)。回数は1回でよい。

もちろん、全データが消去されるので、バックアップ必須。OSインストール直前に、念のために行っておく、といった位置づけか。

なお、最近のメーカ製PCはディスク上にリカバリイメージを配置している場合が多いため、あらかじめリカバリメディアを作成しておくこと。

負荷を掛けて検査する、という行為について

高負荷を掛けるのに特化したツールとはいえ、一ソフトウェアを実行した結果ハードウェア自体が故障することは滅多に無いしむしろあってはならない(定格動作の場合)。もし高負荷を掛けた結果故障したというのであれば、それは元々壊れかけだったというわけで、少し寿命を早めただけと言える。データのバックアップだけは取っておく必要があるが、必要以上に故障することを危惧しても仕方ない。むしろ、壊れかけのPCを使い続ける方がストレスが増え生産性が落ちるとも考えられる。

※個人の見解です

参考

BSODs and Prime95 failures - Super User http://superuser.com/questions/109738/bsods-and-prime95-failures

rarul:@tk4168 さすがに定格で動かないのはNGですよ…原因に多いのは、RAM相性(memtest86+で追試)、電圧不足(急な電流変化についてこれない、電源が悪いことも多いけどマザボ側なこともある)、ですかねぇ。最近はGPUも負荷かけないとNG出ないこともあるので切り分け難しい… https://twitter.com/rarul/status/763001028543250433

rarul:@tk4168 逆に、本当にCPUがダメな例は非常にまれと思っていいです。RAMも相性さえ問題なければ劣化して壊れるなんてこともほぼないです。宇宙線のソフトエラーもコンシューマユースで室内なら無視して大丈夫です。電源マザボはやっぱ劣化します、特にコンデンサhttps://twitter.com/rarul/status/763003158318555136

2015-11-06

仮想マシン上のLinux(RHEL系)でRARPを使うときの注意点

個人的に嵌まった点をメモ。

  • IPアドレスを設定したい機器を(スイッチ経由なり直結なりで)ホストPCにつなぐわけだが、そのつないだNICとブリッジした仮想NICを設定する。
  • 以前TFTPサーバを使っていた場合、rarpd -e としないと、リクエストが来てもレスポンスを返さない場合がある。ブートイメージを返そうとして返すべきイメージが存在しない場合にそう動くようだ。
  • ethersに直接MACアドレスIPアドレスを紐付けて書くだけでよい。hostsは必要なら用意する、といった程度。IPアドレスを振るだけならわざわざhostsに書く必要はないと思う。
  • /var/log/messages を確認すること。リクエストすらログに書かれていない場合は、L2レベルでの疎通を疑う。リクエストがログに書かれていてレスポンスが書かれていない場合はrarpオプション、ethersの記述を疑う。レスポンスが書かれていて正しくIPアドレスが振られない場合はパケットキャプチャでもしてみる。
  • IPレベルの話では無いので、仮想NICに割り当てるIPアドレスは適当でも良さそうだと思ったが、割り当てようとするIPアドレスと同一サブネットにしないとうまく割り当てられない。
  • ethersを編集してもrarpdを再起動する必要は無い。

2014-05-10

Twitterユーザのフォロー関係を調べる

任意の2ユーザ間のフォローの有無を調べるツールを作りました。

Twitter API v1が廃止されて使用できなくなった http://tk4168.info/twitter/check_friendships.html代替です。

http://tk4168.info/twitter/CheckFriendships.zip

FAQ

  • なんかうまくいかない。
    • 一旦アプリを終了させて、settings.xmlを消してみてください。
  • Windows 8セキュリティの警告が表示されてブロックされる。
    • ダイアログに従って実行を許可してください。詳しくはメッセージをググって調べてください。

ToDo

特になし。

2014-05-02

公式RT後の言及ツイート捕捉ツール

Twitter公式RTされたときに、RTした人による、そのRTの直後のツイートが気になることがよくあるので、RT後のツイートを自動で取得するツールを作りました。

2014/8/24 バージョン1.0.0.3

http://tk4168.info/twitter/GetAfterRTedTweets_1.0.0.3.zip

2014/6/14 追記

OAuthアクセス権限が不必要にRead and WriteになってたのでRead onlyにしました。気になる方は再認証してください。

FAQ

  • なんかうまくいかない。
    • 一旦アプリを終了させて、settings.xmlを消してみてください。
  • Windows 8セキュリティの警告が表示されてブロックされる。
    • メッセージに従って実行を許可してください。

参考

  • もっと多くのユーザを取得できるようにならない?
    • 最大取得ユーザ数が100なのは、Twitter APIの制限によるものです。
  • 指定した最大取得ユーザ数より取得数が少ないように見える
    • おそらく非公開ユーザ分少なくなっているものと思われます。
  • 非公開ツイートも取得される?
    • 認証したユーザがフォローしている非公開ユーザのツイートは取得されます。
  • アプリの英名がEngrishなんですが。
    • 気にしないでください。。。

ToDo


更新履歴

2014/8/24 バージョン1.0.0.3公開
・ツイートの取得途中で中断できるようにした
・ツイート取得中は「取得」ボタンを無効に
・APIの残りを表示。ツールチップにリセット時刻が出るように
・ツイート取得中に随時結果を表示するようにした
・URLを含むツイートハッシュタグを含むツイートを除外するオプション追加
・改行を含むツイートがあると横スクロールバーが無効になる現象の対応

2014/8/17 バージョン1.0.0.2公開
・ツイート取得の進捗を表示
・対象ツイートの表示
・アプリアイコンを設定

2014/5/5 バージョン1.0.0.1公開
・常時スクロールバーが表示されるように変更
・ツイートURL/ID入力欄の改良、チェック追加

2014/5/2 バージョン1.0.0.0公開