13
11

More than 1 year has passed since last update.

WindowsとUbuntuをデュアルブートさせている時のUbuntuの削除方法

Last updated at Posted at 2021-01-07

はじめに

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の場合は方法が異なるようなので、こちらを見てやるのをお勧めする。

とりあえず作業の工程を記述しただけであり、深くまで理解しているわけではないので、解釈が間違っている部分が多々あるかと思います。
気付いた方は教えていただけると幸いです。

参考サイト

Windows 10でUbuntu GRUBブートローダーの削除方法 UEFI/レガシーBIOS

その他/UEFIブートからLinuxを削除する手順

13
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
11