こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

system32 ファイルの再インストール方法

お世話になります、
Win XPを起動すると下記の表示が出て先に進みません、

<Windows root>¥system32¥hal.dll.
上記のファイルをインストールし直してください。

エクスプローラでWindowsホルダーを開いてみますと確かに systemu32のサブフォルダが
あり、かなりの数のファイルが格納されてあります。
この、壊れたsystemu32を修復インストールするのは生半可な知識では歯が立ちそうもない
事と想像できますが、ダメで元々? 勉強のため、挑戦してみようかな?と思い立ち質問させていただきました。

直接の手法・・、若しくは案内書等・・ご承知の方ご教示いただければ幸いです。
よろしくお願いします。

投稿日時 - 2015-12-11 09:10:47

QNo.9093962

困ってます

質問者が選んだベストアンサー

この症状だとハードウェア故障の可能性も高いのですが・・・

hal.dllはHardware Abstract Layerと呼ばれるシェル(核)コンポーネントの一部です。ハードとソフトの間に属する抽象化コンポーネントの一部で、パーツ毎に例えばサウンド機能はRealtekかESSかで、違う機能を違う命令で処理するとした場合、その違う部分がどこにあるかをOSとハードウェアの間で伝えるパイプの役割をしています。
尚、ほかの方の参考記事には電源を管理すると書かれていますが、電源管理を司るのはダイナミックリンクライブラリではなく、システムファイル(ACPIxxx.SYS及びAPM.sys)です。もちろん、電源管理情報などもパイプはしますけど。もっと広義のハードとOSの間に立つコネクション(つなぎ目)のようなものだと思ってください。

Windowsがようこその画面までいかない、Windowsのセキュリティ画面(ログイン画面)までいかず起動できない場合は、以下の手順しかありません。

メーカー製のリカバリディスクとは異なるマイクロソフト社が供給するWindowsXPのOEM/DSP/Retailの起動ディスクまたはフロッピーディスクのWindowsXP起動ディスクからNTDOSを起動します。セットアップ画面にきたらRキーを押し、回復コンソール(NTDOSコマンドプロンプト)を起動し、 bootcfg/rebuildをシステムルートに対して実行します。あとは、以下の記載にある通りの指示に従ってください。簡単な話ではなく、完全にだめになる率も高いので本当にダメもとです。
http://www.dell.com/support/article/us/en/19/SLN132839/ja

ちなみに、WindowsXP以外のドライバなどもすべて自動的にセットアップされるメーカー製のリカバリディスクでは、回復コンソールは起動できません。あらかじめ、ハードディスクに手作業でインストールしていない限り実行できません。メーカー製の場合であれば、たいていの場合、回復用のInstall Pathが設定されています。そこにあるWINNT32.exeに/CMDCONSというスイッチを加えて実行することで、起動時に回復コンソールが選択できるようになります。これは、WindowsXPが正常に起動できない限りセットアップできません。
https://121ware.com/qasearch/1007/app/servlet/relatedqa?QID=007816

尚、この回復コンソールはWindowsXPまでのNT系OSで利用可能な機能です。
Windows Vista以降はWindows Preinstallation Environment(Windows PE)を利用します。
回復コンソールがない場合は、こちらからでもできるといえばできますが・・・。やめた方がいいかも。(以下はPE起動用のUSBメモリーの作り方です)
http://www.atmarkit.co.jp/ait/articles/1402/13/news133.html

すでに、回復コンソールはWindowsVista以降では実装されていませんから、実は今、これに関するコマンドを覚えても、今後役に立つ見込みはないかもしれません。ただ、今後コマンドプロントの使い方を覚えたいとか、スクリプトを勉強したいなら、こういう挑戦は役立つでしょう。ダメもとで試すなら、いずれも成功する保証はありませんが、やってみる価値はあるでしょう。

投稿日時 - 2015-12-11 11:48:40

お礼

ありがとうございます、
XP発売当初から、今回質問内容と似たような事象で回復コンソールから復旧したり、フロッピーデスクに起動に必要なコマンドだけを入れたものを、雑誌の記事を参考に作成して試したりのことも10数年?前に経験はしましたが、その後のCPUの進化につれマシンのグレードを上げたりしているうちに安定度もよくなり、フロッピードライブもなくなったりで、当時の資料も見つからず・・・(加齢とともに忘れることの方が多く、泣き)
今回のトラブルも再インストールすれば解決するとは知りながらも、何とか解決に挑戦してみたいと思っての質問でした、
愚痴の多いお礼になりましたが、一番期待したご教示を頂き感激しています、
うまく解決できるかどうかはわかりませんがスキルアップのため再挑戦してみます、ありがとうございました。

投稿日時 - 2015-12-16 10:19:53

ANo.4

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

そのメッセージは

◆フォルダの説明
C:\WINDOWS\System32
意味は分かりますよね!HDDのローカルディスク(C:)の中のWindowsフォルダ、その中のSytem32フォルダのhal.dllと言うファイルが壊れているのでそのファイルを再インストールしてください。
と言うメッセージになります。
<Windows root>=C:\WINDOWS

◆BIOSからOSの構築
BIOS(CPUやRAM、ハードチェック)から抜けてHDDの先頭番地に制御が移りパーティション設定などを認識してWindows XpではNTLDR、他のOSではbootmgrで構築OSを認識してHDD全域をアクセス可能なドライバーなどを準備します。
(BIOSやUEFI BIOSではHDD全域をアクセスできない。)
この時のエラーがあればmissing is NTLDR/missing is bootmgrなどです。
このメッセージはBIOSはOKでHDDに問題ありとなります。

その次にOSの構築に入ります。
OSパーティションのWindows\system32の各種構築ドライバー等を設定します。
主にここのフォルダにあるファイルがOSの構築に使われます。
ご質問のエラーメッセージからBIOSとHDDのNTLDRによる認識までは動いていることが確認できます。

理論的には(複雑に壊れていなければ)
Xp用のhal.dllと言う壊れてないファイルをsystem32フォルダに入れればそのメッセージは消えます。
ただ、hal.dllが壊れているという事は他のファイルも壊れている可能性はあります。
hal.dll以外にも壊れていれば同様のメッセージであれば同じ要領でC:\Windows\system32コピーします。

hal.dllですがPCメーカ製などであればそのPC専用になるので他のOSなどから使い回しは出来ません。
複数、バックアップの候補があれば容量や更新日などからより最適と思われるものを選びます。

構築で必要な実働ファイルがWindows\system32に保存され、そのファイルが順に起動して構築されます。
そのメイン的な存在がハードの設定を行うhal.dllで、他にも***.dllファイルなど構築に必要なファイルがあります。

その殆どの構築に必要なファイルはバックアップがあります。

バックアップはOSインストールCD/DVDのi386フォルダ或は、XPのC:\Windows\system32\Servicepack\i386フォルダなどにもhal.dll含め他のOS構築用ファイルのバックアップが有ります。
(インストールCD/DVDにバックアップが無いメーカ、バージョンもある)


◆対処法の考え方
バックアップの動きそうなhal.dllを探して
回復コンソールなどでまず問題のファイルの念のため削除せず名前を変更してそこ「C:\Windows\system32」にhal.dllをコピーするだけです。

まず、hal.dllからhal.oldなどに名前を変えて、念のため削除せずにとっておきます。
その上で、バックアップからC:\Windows\system32フォルダにhal.dllをコピーします。
それでhal.dllのファイルの問題はハードトラブルなどが無ければ解決するはずです。
解決したら「hal.old」を捨てます。

C:Windowsに検索を掛ければ分かりますがhal.dllは一つではありません。
しかし、実際OSで動いているのはC:\Windows\system32直下にあるHALです。
その事が理解できれば問題の無いhal.dllをC:\Windows\system32へコピーすれば良いことが分かります。

そのメッセージがhal.dllだけが壊れているのであれば以上の操作で治るはずです。
複雑に壊れていれば、複数のファイルをコピーすることに成ります。
他のエラーメッセージが出れば違う対処をすることに成ります。

例えば、回復コンソールが使えないが、他のPCとXpのHDDの外付けHDDケースがあれば
上記操作を他PC上で行って、Xpに戻す、と言うやり方も可能です。

Xpですが、ネット操作やメールはセキュリティ面等から控えた方が良いと思いますが、使っていいと思いますよ!年賀状印刷とか?
或は、データバックアップ専用とか、

以上参考まで

投稿日時 - 2015-12-11 22:13:44

ANo.3

修復の仕方とかやり方の問題ではありません。Windows XPを使うのは迷惑ですのでやめて下さい。あなただけの問題では済みません。

ダメで元々ではなく「悪」なのだということを認識して下さい。XPを使っても許される環境は、一切外部と繋がりがない完全スタンドアロンな運用だけです。

投稿日時 - 2015-12-11 09:53:23

補足

No2.回答者の方にもご注意いただきましたが、Win8.1or10では動作をしないソフトを使うときはXPを使わざるを得ません、
(多分古いソフトのため今後の対応は望めないかと・・・)
ネット環境は8.1か10で接続することにしています。

ただ、デユアルブート環境で8.1を使用でのXP存在がどれほど外部に
悪影響を及ぼすのか迄は知識不足でわかりませんでした、注意して勉強してみたいと思います。
この辺のことについて具体的なアドバイスがいただけると助かります。
ありがとうございました

投稿日時 - 2015-12-16 09:54:01

2014年4月8日(日本時間では2014年4月9日)にWindows XPとOffice 2003、Internet Explorer 6のサポートが終了し、セキュリティ更新プログラムが配布されなくなることから、マルウェア感染や不正アクセスの拡大など、あなたのPCにさまざまなトラブルが発生するだけでなく、まわりのPCにも影響を及ぼします。
ダメ元にはなりません、元には戻りません。

投稿日時 - 2015-12-11 09:31:45

お礼

ご忠告ありがとうございます、
勉強してみます。

投稿日時 - 2015-12-11 21:35:41

ANo.1

http://pctrouble.lessismore.cc/boot/system32_haldll.html
これを読んでもらえばわかるように、単にhal.dllが悪いわけじゃ無いのです。
書いてある修復方法を試して下さい。

ちなみに、system32のフォルダはとてもいじってどうこうできるレベルのものでは無いです。
バックアップ取っていればそれを戻すのが良い方法です。
そうで無い場合、本当にsystem32フォルダが壊れた場合は、再インストールの方が確実簡単です。
まあ、そうなれば最初にデータ等の救出が先になりますが・・・・

投稿日時 - 2015-12-11 09:28:04

補足

ありがとうございます、
読んでみて思い当たるところもありました。
W8.1上でのBDRドライブが認識されないごたごたで、この際買い置きの
HDD、SSDドライブの組み込み方をこの際変えてみることを思い立ち、改造した結果が、今回の質問に至った経緯ですので、今夜帰宅してから4台の
HDDを切り離して起動したところ無事立ち上がりました。
細かいことはわかりませんが、明日元の構成に戻してみようと考えています。

とりあえず経過お知らせまで、

投稿日時 - 2015-12-11 22:02:52

あなたにオススメの質問