目次
何が起こったか
Linux mintとのデュアルブート環境でLinux mintが入っていたパーティションを削除し、
その分をWindowsに割り当てたけど、起動オプションにLinux mintが残り続ける。
その起動オプションから起動すると GNU GRUBのminimal bash like is supported
と表示される状態。
別に起動するときWindowsを選べばいいんだけど、気持ち悪いから消したい。
注意
UEFIブートなマシンなので、それ前提で書いています。その点、注意してください。
原因
Linux mintが入っていたパーティションは消したけど、ブートローダまでは消せてなかった模様。
てっきり、ブートローダもLinux用に作ったパーティションに入ってると思ったら
Windowsのブートローダと同じブートセクターに入っていた
インストールのときにミスった可能性がある。。。
解決方法
今回、Windowsとのデュアルブートだったので、
Windowsの回復オプションを起動させて、コマンドプロンプトからブートローダを消していく方法をやってみる。
(bootrecで直らないかなぁ、ってやってみたけど駄目だったOTL)
もし、LinuxとLinuxとのデュアルブートだったり、Windowsの回復オプションが起動できない場合は
こんな感じで、別の方法を取る必要があると思う。
ちなみに、Windowsの回復オプションを表示する方法はShift キー
を押しながら、GUIのPCを再起動をすると回復オプションが表示される
コマンドプロンプトの表示
回復オプションが表示できたらコマンドプロンプトを起動していく。
オプションの選択->トラブルシューティング->詳細オプション->コマンドプロンプト
から起動できる。
起動するとカレントディレクトリX:/windows/system32
で起動する。
ドライブレターがXなのは回復用パーティションで起動しているからなので問題ない。
diskpartを使ってドライブレターの割り当て
diskpartを使ってブートセクターを操作できるようにする。
おそらく、初期のままだとブートローダのあるパーティションにドライブレターが割あたってなく、操作できないのでここから始めていく。
コマンドプロンプトが起動できたら、diskpart
コマンドを実行してdiskpartを起動させる。
起動できると
Microsfot DiskPart バージョン XXXX Copyright (C) Microsoft Corporation. コンピューター: XXXXX DISKPART>
と表示される。
そうしたら、list volume
を実行して、そのディスク上にあるパーティションもといボリュームを表示する。
そうすると
DISKPART> list volume Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----- ---- --------- ----- ------ ---- Volume 0 C OS NTFS Partition XXXGB 正常 Volume 1 ESP FAR32 Partition 250MB 正常 非表示 以下略
な感じで表示される。
ブートローダが入っているのはESP (EFI System Partition)
なのでこのボリュームに対してドライブレターを割り当てていく。
ESPについてはここにわかりやすく載っている。
今回はこのVolume 1 に対してEを割り当てていく。
select volume=1
を実行するとボリューム 1 が選択されました
と表示され、volume 1を選択状態にできる。
試しにlist volume
をしてみると
そうすると
DISKPART> list volume Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----- ---- --------- ----- ------ ---- Volume 0 C OS NTFS Partition XXXGB 正常 *Volume 1 ESP FAR32 Partition 250MB 正常 非表示 以下略
こんな感じで、先頭にアスタリスクが表示されるようになる。
そうしたらassign letter=E
を実行し、ドライブレターを割り当てる。
DISKPART> assign letter=E DiskPartはドライブ文字またはマウントポイントを正常に割り当てました。
と表示されたのを確認してから、もう一回list volume
をしてみると
DISKPART> list volume Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----- ---- --------- ----- ------ ---- Volume 0 C OS NTFS Partition XXXGB 正常 *Volume 1 E ESP FAR32 Partition 250MB 正常 非表示 以下略
と表示され、実際にEが割り当てられたことが確認できる。
これができたら、exit
してdiskpartは終了させて、
Linux mintのブートローダを削除していく。
コマンドプロンプトからブートローダの削除
コマンドプロンプトに戻ってきたら、E:
を実行して、カレントディレクトリをE:/
に切り替える。
そこでdir
してみるとEFI
というディレクトリがあるはずなので、そこに移動する。
そうしたら、MicrosoftやDellやubuntuやら色々ディレクトリがあるが、
今回消したいのはLinux mintのブートローダなので、このubuntuディレクトリをまるまる削除する。
ちゃんと中身を確認して、目的のディレクトリなのを確認してから削除して下さい
自分の環境の場合、ubuntuディレクトリ内は
E:/EFI/ubuntu>dir ドライブEnoボリューム ラベルはESPです ボリュームのシリアル番号はXXXX-XXXXです YYYY/MM/DD HH:MM grubx64.efi YYYY/MM/DD HH:MM shimx64.efi YYYY/MM/DD HH:MM mmx64.efi YYYY/MM/DD HH:MM BOOTX64.CSV YYYY/MM/DD HH:MM grub.cfg
このディレクトリを中のファイルまるごと再帰的に削除するには
rd /s E:/EFI/ubuntu
と実行すればよい、このとき確認が入るのでYを入力してEnterを押せば削除される。
割り当てたドライブレターを削除する
無事にブートローダが削除できたら、先程ESPに割り当てたドライブレターEを割り当て解除する。
不用意な事故を防ぐためにやっておいた方がいいと思う。。
もう一度diskpartを起動させて、ボリュームの選択、そうしたらremvoe letter=E
を実行する。
DISKPART> remove letter=E DiskPartはドライブ文字またはマウントポイントを正常に削除しました。
と表示されたのを確認してからlist volume
をしてみると
DISKPART> list volume Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----- ---- --------- ----- ------ ---- Volume 0 C OS NTFS Partition XXXGB 正常 *Volume 1 ESP FAR32 Partition 250MB 正常 非表示 以下略
となり、正常にドライブ文字が削除されているのを確認できる。
ここまでくれば、GNU GRUBが表示されることなく、Windowsが起動するようになる。
結論
大人しく、仮想マシンで我慢しておけばよかった。