引っ越し先(別宅)

おすすめ

RSS

twitter

  • Speechballoonorangepicon150px @pelicanmemo

    記事にした話題の、書けなかった余談やその後の話。その時々のニュースでも深読み気味。

banner

ウェブページ

無料ブログはココログ

« VMWare Fusion:GParted でのディスク・サイズの拡張に失敗 | トップページ | VMWare Fusion:SystemRescueCDで修復後、GPartedで領域拡張 »

2009年5月30日 (土)

VMWare Fusion:仮想ディスクの拡張でエラー、SystemRescueCDで修復

(前記事)VMWare Fusion:GParted でのディスク・サイズの拡張に失敗


仮想元の物理ディスクの不良クラスタ情報をそのまま仮想ディスクにもコピーしてしまった、と仮定。

たき☆かわブログさんとこの「VMWareで動作するWindowsの不良セクタをリセットする方法」を参考に対策をたててみる。

そこでは最初に新しいハードディスクにコピーするなどエラーの原因の絞り込みをされているが、外付けハードディスクにコピーしたバックアップからVMWare/Windowsを起動させても同じ状況になるので、ここではとばして作業を始める。

追記(5/31):以下の対策はWindowsXP以下がゲストOSの場合。WindowsVistaでは "chkdsk /b" で修復されるそうだ。


PIBさんとこの「NTFS Tips」によると、NTFSの不良クラスタ情報はルートフォルダの $BadClus ファイルに書かれているそうだ。

これをリセットする。

作業にはSystemRescueCDを使用する。
今の最新安定Verは1.2.0。systemrescuecd-x86-1.2.0.iso

このisoファイルをダウンロード。

VMWareのCDのディスクイメージとして設定して起動。




起動時にBIOSに入る方法

VMWareの起動時にCDからブートできない場合がある。その場合はBIOSのブート順番を変えなければならない。

vmxファイルをテキストエディタで開き、編集する。

bios.forceSetupOnce = "TRUE"

を追加すると起動時に強制的にBIOS設定画面に入ることが出来る。
あとは通常のBIOSの設定作業。
VMWareを正常終了した後は"FALSE" に変更されるので、次回も強制的にBIOS画面に入ることはない。




閑話休題、


Resccdwindow1


起動時のキーボード選択では、USキーボードのMacBookなので41(US)を打ち込み、リターン。
日本語キーボードなら"jp" の22を打ち込む。

SystemRescueCDでは、最初はコマンドラインから始まるので "startx" と打ち込みXウィンドウを立ち上げる。
以下、太字が手入力する部分。

root@sysresccd / root % startx


Xウィンドウが起動してGUIになっても、最初はTerminalが起動するのでGPartedを起動。

root@sysresccd / root % gparted


ここでトラブル発生。

マウスカーソルとポイントする場所が食い違っていて、画面のどこをポイントしているか分からない。

キーボード主体で作業を進めることにする。
基本は alt キーとのコンビネーション。MacBook ではaltキーはoptionキーに割り振られている。

GPartedで領域拡張をするデバイスを変更する場合は、[ alt + g ] で、GPartedメニュー > Deviceから選択。

Resccd1gparted1

黄色い三角マークがついているのがエラーを起こしているパーティション。ここでは" /dev/sda1 "。
この先、このパーティション名を使って作業をすすめるので、パーティション名をメモしておく。

次はTerminalでの作業。
プログラムの切り替えは [ alt + tab ]。OSXの [command + tab]と同じようなもの。

今、開いているTerminalはGPartedを起動しているので、もう一つTerminalのウィンドウを開く。

[ alt + f ] でFileメニュー > Open Terminal を実行。

このTerminalから、ntfsinfoコマンドでパーティションの不良セクタ情報を取得する。

root@sysresccd / root % ntfsinfo -i 8 /dev/sda1

ここでさっきメモしたパーティション情報を入力する。

"i" オプションはinodeの情報を取得、"8" はinodeの番号を表している。
NTFS Tipsによると、$BadClus ファイルには inode 8 が割り振られているそうだ。

(末尾のみ表示)
Resccd2terminal2

重要なのは、"Attribute name: '$Bad' " がある最後の項目の"Allocated size: "のパラメータ。ここでは、"10997166080"。これもメモしておく。

その不良セクタ情報をntfstruncateコマンドでリセットする。

Resccd2terminal3

root@sysresccd / root % ntfstruncate /dev/sda1 8 0x80 '$Bad' 0
ntfstruncate v2.0.0 (libntfs 10:0:0)
ntfstruncate completed successfully. Have a nice day.

root@sysresccd / root % ntfstruncate /dev/sda1 8 0x80 '$Bad' 10997166080
ntfstruncate v2.0.0 (libntfs 10:0:0)
ntfstruncate completed successfully. Have a nice day.

ここで、さっきメモした"Allocated size: "のパラメータ情報を使う。

VMWareで動作するWindowsの不良セクタをリセットする方法」の説明ではパーティション名を書き忘れている(Terminal画像には表示されている)ので注意。


これで不良クラスタ情報はリセットされたはず。

GPartedで確認をする。
GPartedメニュー > Refresh Devices でデバイス情報を更新。

Resccd1gparted2

黄色い三角マークが消えているのでエラーが無くなったことが分かる。

成功 ヽ(´▽`)/


ついでにこのGPartedで領域拡張もしてしまおう。

次の記事「VMWare Fusion:SystemRescueCDで修復後、GPartedで領域拡張」につづく。



もし、ここで終了させる場合は、
開いているTerminalとGPartedを終了させて、
デスクトップ上で、controlキーを押しながらトラックパッドの右クリック。

操作メニューが開くので 矢印キーでExitを選択、終了。
コマンドラインでは、"shutdown -h now" でSystemRescueCDを終了。


追記(6/2):XウィンドウのTerminal上で "shutdown -h now" を実行してもSystemRescueCDが終了する。





メモ:
MacBook(USキーボード)でのSystemRescueCDのXウィンドウの操作

プログラムのメニュー操作・・・[ alt + 英字キー ]
プログラムの切り替え・・・[ alt + tab]
ウィンドウ自体のメニューを表示・・・ [ alt + space ]
他のワークスペース(OSXでのSpaces)に移動・・・ [ alt + control + 矢印キー ]
プログラムウィンドウの一発最大化・・・[ alt + F5 ]
プログラムウィンドウの一発最小化・・・[ alt + F8 ]
プログラムの終了・・・[ alt + F4 ]

参考:
VMWareで動作するWindowsの不良セクタをリセットする方法

NTFS Tips

About ntfsclone






Linuxの教科書―ホントに読んでほしいroot入門講座 (IDGムックシリーズ)Linuxの教科書―ホントに読んでほしいroot入門講座 (IDGムックシリーズ)

アイ・ディ・ジー・ジャパン 2007-10-06
売り上げランキング : 1456
おすすめ平均

Amazonで詳しく見る

« VMWare Fusion:GParted でのディスク・サイズの拡張に失敗 | トップページ | VMWare Fusion:SystemRescueCDで修復後、GPartedで領域拡張 »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« VMWare Fusion:GParted でのディスク・サイズの拡張に失敗 | トップページ | VMWare Fusion:SystemRescueCDで修復後、GPartedで領域拡張 »