yuu_nkjm blog


2011-05-27(Fri) 編集

[Windows 7 (64bit)][Linux] DVD(CD)からブートし,アクティブなパーティションを変更する

誤ったアクティブパーティションフラグの付与

特別な設定をせずWindows 7をインストールしたところ,システムで予約済みが"システム,アクティブ,プライマリパーティション",Cドライブが"ブート,ページファイル,クラッシュダンプ,プライマリパーティション"という状態になっていた.

画像の説明

Windowsにおいて「コンピュータの管理」から,ドライブレター(ドライブ文字)やアクティブなパーティションの変更ができる.この画面において,操作を誤ってアクティブなパーティションを変更してしまった.それを修正しようとしたとき,Windows XPまでの習性で,Cドライブにアクティブフラグを立ててしまった.その後,PCを再起動したところ,"NTLDR is missing"というエラーが出て,ブートできなくなってしまった.

OpenSUSEインストールディスクのRescue Modedによる修正

パーティションのアクティブフラグを修正すれば,ブートできる可能性が高いので,その方法を考えた.Windows 7のインストールディスクを使って回復ツールから修正する方法があるようだが,手元にWindows 7のインストールディスクがなかった.openSUSE11.4のインストールディスクが手元にあったので,これを使う事にした.

openSUSE11.4のインストールディスクを入れ,PCの電源を入れると,インストールメニューが開く.そこで,"Rescue System"を選ぶと,レスキューモードでログインできる

画像の説明

あとは,messageなどを見てHDDのデバイスファイルを確認し,fdiskを行った.fdiskで,アクティブフラグを"システムで予約済み"に立てて終了した.Cドライブのアクティブフラグを下げた方が良かったのだろうがやり忘れた….

fdiskの操作例

対象が今回のWindowsマシンとは異なるが,参考となる操作例を示す.

下記の例をそのまま実行すると,システムがブートしなくなることに注意!

fdisk /dev/sda
 
このディスクのシリンダ数は 243201 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
   (例. DOS FDISK, OS/2 FDISK)
 
コマンド (m でヘルプ): m
コマンドの動作
   a   ブート可能フラグをつける
   b   bsd ディスクラベルを編集する
   c   dos 互換フラグをつける
   d   領域を削除する
   l   既知の領域タイプをリスト表示する
   m   このメニューを表示する
   n   新たに領域を作成する
   o   新たに空の DOS 領域テーブルを作成する
   p   領域テーブルを表示する
   q   変更を保存せずに終了する
   s   空の Sun ディスクラベルを作成する
   t   領域のシステム ID を変更する
   u   表示/項目ユニットを変更する
   v   領域テーブルを照合する
   w   テーブルをディスクに書き込み、終了する
   x   特別な機能 (エキスパート専用)
 
コマンド (m でヘルプ): p
 
ディスク /dev/sda: 2000.4 GB, 2000398934016 バイト
ヘッド 255, セクタ 63, シリンダ 243201
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
Disk identifier: 0x000df3e8
 
デバイス ブート     始点        終点    ブロック   Id システム
/dev/sda1               1         262     2104483+  82  Linux スワップ / Solaris
/dev/sda2   *         263        2873    20972857+  83  Linux
/dev/sda3            2874      243201  1930434660   83  Linux
 
コマンド (m でヘルプ): a
領域番号 (1-4): 1
コマンド (m でヘルプ): p
 
ディスク /dev/sda: 2000.4 GB, 2000398934016 バイト
ヘッド 255, セクタ 63, シリンダ 243201
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
Disk identifier: 0x000df3e8
 
デバイス ブート     始点        終点    ブロック   Id システム
/dev/sda1   *           1         262     2104483+  82  Linux スワップ / Solaris
/dev/sda2   *         263        2873    20972857+  83  Linux
/dev/sda3            2874      243201  1930434660   83  Linux
 
コマンド (m でヘルプ): a
領域番号 (1-4): 2
 
コマンド (m でヘルプ): p
 
ディスク /dev/sda: 2000.4 GB, 2000398934016 バイト
ヘッド 255, セクタ 63, シリンダ 243201
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
Disk identifier: 0x000df3e8
 
デバイス ブート     始点        終点    ブロック   Id システム
/dev/sda1   *           1         262     2104483+  82  Linux スワップ / Solaris
/dev/sda2             263        2873    20972857+  83  Linux
/dev/sda3            2874      243201  1930434660   83  Linux
  
コマンド (m でヘルプ): q
 

上記の例をそのまま実行すると,システムがブートしなくなることに注意!


トップ «前の日(05-26) 最新 次の日(05-28)» 追記 設定
2006|01|06|12|
2007|06|09|
2008|01|03|04|06|07|08|09|10|12|
2009|01|02|05|06|07|08|10|11|12|
2010|03|04|05|06|07|08|09|10|11|
2011|01|02|03|04|05|06|07|08|09|11|12|
2012|01|02|04|06|07|08|10|11|12|
2013|01|02|03|07|08|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|
2015|01|02|07|11|12|
2016|01|03|05|07|08|09|