はじめに
Ubuntuをアンインストールするときに手順を間違えてしまうと、Windowsが起動しなくなってしまうor起動するまでの工程が面倒とのことだったので、
しっかりとやり方を把握して作業をした後の備忘録。
環境
・Windows 10 64bit(M.2SSDにインストール済み、先にインストールしているもの)
・Ubuntu 18.04 LTS(Windowsとは別のディスクであるHDDにインストール、後から必要になりインストールしたもの)
・BIOSはUEFI
・ディスクのパーティションはGPT
気を付けなければいけないこと
WindowsとUbuntuでは、ブートローダが違うため、そこを放置したままUbuntuのパーティションを削除してしまうと、ブートローダが正常に動作しなくなり、最悪起動不能状態に陥る。
ブートローダとは、いわば起動のためのトリガーである。
Ubuntuをインストールすると、GRUBというブートローダがインストールされ有効になる。
WindowsではWindowsBootManagerをブートローダとして使用している。
私の場合は、Windowsが最初に入っている状態でUbuntuをインストールし、GRUBから起動するOSの選択をするという状態になっている。
そのため、Ubuntuを削除してWindows単体で使用するときに、ただUbuntuのパーティションを削除してしまうと、GRUBの情報が残ったままUbuntuが削除されることになってしまい、GRUBもWindowsBootManagerも正常に起動しなくなるという状況になるので、デュアルブート環境でただパーティションを削除するだけというのは、絶対にしてはいけない。
これは基本的にデュアルブートでもマルチブートでも同じことである。
GRUBブートローダの削除
###bcdeditコマンドでエントリの削除
まず、Windowsのコマンドプロンプトを管理者として起動し、以下のコマンドを実行する。
C:¥WINDOWS¥system32> bcdedit /enum firmware
そうするとブート情報が出てくるため、その中からdescriptionの項目にUbuntuと書いてあるものを探す。(以下は一例)
ファームウェア アプリケーション(101fffff
-------------------------
identifier {3850e5k3-351b-95c3-806e6f6e6963}
device partition=¥Device¥HarddiskVolume13
path ¥EFI¥ubuntu¥SHIMX64.EFI
description ubuntu
ubuntuと書かれている項目を見つけたらそれを削除するわけだが、そのときに必要なのがidentifierなので、{}の部分も含めてコピーしておく。
このとき、他のidentifierをコピーしてしまわないように注意!間違ったものを削除してしまうと、Windowsの起動ができなくなる恐れあり。
続けて以下のコマンドを実行。
C:¥WINDOWS¥system32> bcdedit /delete {先ほどコピーしたidentifier}
そうすると、Ubuntuをブートメニューから削除できるため、再度以下のコマンドを実行して、Ubuntuが削除されていることを確認。
C:¥WINDOWS¥system32> bcdedit /enum firmware
これでUbuntuに関するブート情報は削除できた。ここで再起動するとGRUBの画面に移行することなく、Windowsが直接起動する。
###UbuntuのEFIパーティションの削除
EFIパーティションとは、Ubuntuの起動のために必要なパーティションであり、PC起動時にBIOSがEFIパーティションを読み込むことにより、WindowsやUbuntuといったOSの読み込みを可能にしている。
EFIパーティションはディスクの管理画面からは削除できないためコマンドプロンプト上でdiskpartを使用して削除していく。
まず、以下のコマンド実行する。
C:¥WINDOWS¥system32>diskpart
すると、C:¥WINDOWS¥system32となっていたところがdiskpartという表記に変化する。
次にEFIパーティションの操作ができるよう、ドライブレターを割り当てるため、以下のコマンドを実行していく。
DISKPART>list disk
ディスク 状態 サイズ 空き ダイナミック GPT
------ ------ ------ ------ ------ ------
ディスク0 オンライン 1863GB 1024KB *
ディスク1 オンライン 1863GB 1024KB *
ディスク2 オンライン 3726GB 1205GB *
ディスク3 オンライン 465GB 46GB *
UbuntuのEFIパーティションが入っているディスクを選択する。私の環境の場合、ディスク2に入っているため、選択。
DISKPART>sel disk 3
ディスク 3 が選択されました。
次にパーティション選択をする。
DISKPART> list vol
Volume### Ltr Label Fs Type Size Status Info
--------- --- ------ --- ------ ----- ------ ------
Volume 0 F data NTFS Partition 1074GB 正常
Volume 1 G ボリューム NTFS Partition 788GB 正常
Volume 2 FAT32 Partition 488MB 正常 非表示
Volume 3 FAT32 Partition 99MB 正常 システム
以下省略
Infoにシステムと書かれているところにUbuntu(GRUB)の情報が残っている。
このVolを選択。
DISKPART> sel vol 3
ボリューム 3 が選択されました。
選択したVolの中にUbuntuディレクトリがあり、それを削除したいのだが、このままだと中身を見ることができないため、ドライブ文字を割り当てる。
DISKPART> assign letter=Z:
Diskpartはドライブ文字またはマウントポイントを正確に割り当てました。
ここまで終わったらいったんexitでDISKPARTから出る。
次にZドライブに移動し、EFIディレクトリがあるはずなので、その中にはいると、Ubuntuディレクトリがあるので、それを以下のコマンドで削除する。
Z:¥EFI>rmdir /S ubuntu
削除していいかの確認が出るからyesで確定。
ドライブ文字は割り当てを解除する必要があるため、以下を実行していく。
C:¥WINDOWS¥system32> diskpart
DISKPART> sel vol 3
ボリューム 3 が選択されました。
DISKPART> remove letter=Z
UbuntuのEFIパーティション自体を削除するためには、HDD自体をフォーマットするか、削除ようのソフトを使うかする必要がある。
私の環境ではBIOSがUEFIだったため、この方法だが、レガシーBIOSの場合は方法が異なるようなので、こちらを見てやるのをお勧めする。
とりあえず作業の工程を記述しただけであり、深くまで理解しているわけではないので、解釈が間違っている部分が多々あるかと思います。
気付いた方は教えていただけると幸いです。