デュアルブートのWindowsを削除して,Ubuntuだけにする

もともとWindowsが入っていたPCにUbuntuを入れてデュアルブートにしましたが,Windowsを削除することにしました.

そのときの方法のメモです.

注意: 一歩間違えるとデータ消失や起動しなくなる危険があります.自己責任でお願いします.

Windows側の準備

Windowsのデータやライセンスの移行を一切行わないなら,この手順は不要です.

1. Windows側の必要なデータなどをバックアップを取る

Windowsを削除するので当然ですね.

2. Windowsのラインセンス移行の準備

下記の記事に書きました.

kamocyc.hatenablog.com

Ubuntu

3. GPartedでWindowsパーティションを削除

Ubuntuを起動し,GPartedでパーティションを変更します. (なければ,sudo apt install gpartedなどでインストーラします.)

ここで,Windowsが使用しているパーティションを削除します.

なお,削除した領域は未使用にしてても仕方ないですから,ext4などでフォーマットして使うのが普通でしょう. フォーマットしたら,fstabでどこかのディレクトリにマウントして使うことができます.

以下は,ディスクの前方に存在したWindowsの領域を削除して(/dev/sda2となった),ext4でフォーマットした後の図です.

f:id:kamocyc:20191026144655p:plain

Windowsの入ったパーティションに加えて,「Microsoft reserved partition」という小さいパーティションも削除しましたが,問題ありませんでした. (一番あとにある「Basic data partition」も削除して良い気がします.)

EFI system partitionは削除するとヤバそうです.

homeディレクトリを新しいパーティションに移す方法は以下に書きました.

kamocyc.hatenablog.com

4. grubのメニューからWindowsを削除する

この時点でWindowsパーティションは削除しましたが,まだブート時に表示されるgrubのメニューにはWindowsが選択肢として表示されます. また,デフォルトでWindowsが起動されるように設定されていると起動がエラーになるでしょう.

そのため,grub (grub2) のメニューを編集します.

まず,grubの設定ファイルを開きます.

sudo gedit /etc/default/grub

以下のように編集します.

  • GRUB_DEFAULT=0 (デフォルトで起動するOSのエントリ番号です.Ubuntuが0でない場合は適宜変更します.)
  • GRUB_TIMEOUT=0 (メニューのタイムアウトを0にして,表示されないようにします.もしかしたらいらないかも)
  • GRUB_DISABLE_OS_PROBER=true (grubWindowsを見つけてメニューに追加するのを防ぎます.)

参考までに,私の設定ファイルは下記です.

GRUB_DEFAULT=0
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
GRUB_DISABLE_OS_PROBER=true

なお,メニューの表示に関する挙動はgrubのバージョンによって異なるようなので,うまく行かない場合はネットで他のオプションの設定方法も参考にしてください. 例えば,How do I hide the GRUB menu showing up at the beginning of boot? - Ask Ubuntuの1番目の回答は,Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.となって私の場合はうまく行きませんでした.

ファイルを変更したら,忘れずにupdate-grubを実行します.

sudo update-grub

5. 再起動

Ubuntuを再起動してみます.

無事にUbuntuが起動してきたら一安心です.

参考記事

Ubuntuのバージョンがやや古いですが,下記の記事も参考になりました.

www.ubuntu-d.com