PCの不調を復旧する~CHKDSKの修復と復元とは違う~

2020/12/18

 CHKDSKは、下記のステップでファイルシステム構造上の不整合を検出・修復できるツールです。


ステージ 1: 基本のファイル システム構造を検査しています ...

ステージ 2: ファイル名リンケージを検査しています ...

ステージ 3: セキュリティ記述子を検査しています ...

CHKDSK は Usn ジャーナルを確認しています...


ここでの「修復」が問題です。これはファイルシステムの不整合(エラー)の修正(fix)だけです。


ファイルシステムは、ツリー構造のファイル(ディレクトリ)からなり、その構造を管理するための様々な属性情報を持っています。ファイルシステムの構造上の不整合があると、エラーを検出してプログラム(Windowsを含む)が処理の継続ができなくなるだけでなく、ファイルを探す場合、正常に見つけられない、読み込む場合、本来の内容以外の壊れた内容を読み込んでしまう、書き込む場合、書き込んだ内容が既存のファイルや属性情報を壊してしまうなど、Windowsが自滅することにもつながります。


CHKDSKは、ファイルシステム構造上の不整合を検出し、Windowsがどのファイルにも安全にアクセスできるように、可能な限りその不整合を解消します。「可能な限り」とは、利用できる情報があれば不整合を修正し、その結果で正常な範囲を温存し、異常な部分を切り離します。この切り離された部分を含み、ファイルシステムが使用済みとマークされた領域に断片的なファイルの属性情報や内容が見つかれば、孤立ファイルとして、ルートディレクトリの配下にfound.xxxというディレクトリに配置されます。異常な部分を切り離によっては、必要な情報が整っていない場合、ファイルやディレクトリの救済ができず紛失することもあります。


この過程で、下記のような難解なログメッセージが吐き出されます。


破損した基本ファイル構造が見つかりました

ブロック 0x** の USA 確認値 0x** が正しくありません。

ディレクトリ "\***\***" のインデックス "$I30" に不要なリンク

 ($FILE_NAME: "******") が見つかりました

 ... オンラインで修復しました。

ファイル *** のインデックス $I30 で、エラーが検出されました。


破損して利用できない部分は、トカゲのしっぽのように切り離し、Windowsがどのファイルにも安全にアクセスできるようにできるわけですが、必須なファイルが紛失したり、修復過程でファイルの破損やハードリンクに問題が発生するとWindowsが正しく動作しないことがあります。


以上のように、CHKDSKは、破損した部分を復元(restore)できるわけではありません。運よくWindowsが立ち上がれば、破損したパスを特定し、破損したファイルを上書きをしなければ復元ができません。

(再クロール更新:2022/12/22)

PCの不調を復旧する~突然PCが落ちる~

2020/12/17

 Windows10 Professionalが突然落ちて、画面が真っ黒になり、何が起こったのかわからなくなりました。気が付いてみると、PCを購入してからすでに8年ほど経っていました。半年ぶりにPC内部の埃の掃除し、点検しましたが、特に問題は見つかりませんでした。


SSDのSMARTを確認し、記憶内容の読み込みエラーが発生していないか確認しましたが、読込みエラーは、ありませんでした。次に、怪しい部分は、電源の不調によりリセットが発生したかもしれないので、念のため電源容量が十分な新しい電源ユニットに交換してみました。依然として、突然PCが落ちることが治りませんでした。


ここで、以前のWindowsなら、ブルースクリーンが出てから落ちるようになっていたことに気が付き、なぜブルースクリーンが出ないか、確認すると、Windows10では、システムエラー時、「自動的に再起動する」がデフォルトになっていました。おせっかいの極みです。ブルースクリーンが出るようにすると、「MEMORY_MANAGEMENTエラー0x0000001a」が発生していました。


これは、メモリーに問題がある場合に発生することが多いため、メモリー診断を行いましたが、問題無いようでしたが、よっぽど状態が悪くない限りエラーを発見できないようです。突然PCが落ちる頻度は、30分~数時間ですので、次に、DIMMコネクターの接触不良ではないかと、接点を清掃して2枚のDIMMを入れ替えましたが、まだ、突然PCが落ちます。しかたがないので、メモリを新調したところ、治まりました。


原因が特定できて少しほっとしたました。ところが今度は突然PCが落ちたために、SSDのCHKDSKが必要な状態になりました。しばらく起動時のCHKDSKをスキップさせていましたので、CHKDSKを行うと修復はできましたが、ボロボロ状態でした。念のため、バックアップソフトで、パーディションのバックアップを取ろうとしましたが、セクター単位でしかバックアップが取れませんでした。(ファイルシステムに問題がある証拠です)


NTFSは、ジャーナルによって、ファイルシステムが必要なロールバックにより、整合性を保つ仕組みがあるはずでしたが、なぜか、修復を必要な状態になってしまいました。泣きっ面に蜂状態です。思い起こすと、HDDをSSDに乗せ換えたときに、AHCI モードを使用し、ドライブ側のWriteキャッシュを有効にしていたことに気が付きました。これでは、ドライブ側のWriteキャッシュが捨てられることが発生し、NTFSのロールバックが意味なくなることになります。わかっていたものの、パフォーマンスを重視しすぎました。


さて、たくさんのアプリケーションをインストールしている環境なので、Windowsの新規インストールは避けたいところです。SSDの復旧をするしかない状況になりました。

(再クロール更新:2022/12/22)

SBCZ80ルーズキットの製作(8MHz動作編)

2020/09/25

 10MHz高速版のSIOが届きました。



まず8MHzで動作させましたが、問題なく動きました。ただ、DRAMのアクセスタイムが100nS必要で、オーバークロックになっています。ASCIIART.BASの速度は、速いのは速いのですが、それほど体感速度が出ませんでした。Z80は、結構クロック数を必要としますので、仕方がない気もします。


10MHz版のSIOには、オーバークロックになりますが、16MHzを試してみました。残念ながら動作しませんでした。スペックを確認すると、16MHzの場合、DRAMとEEPROMのアクセスタイムが70~80nSが必要なようで、今回は共に150nSでしたので、当たり前みたいです。

(再クロール更新:2022/12/22)