0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SSD増設と独立ESP(EFI System Partition)で実現する、WindowsとUbuntuの安全なデュアルブート環境構築

0
Last updated at Posted at 2025-12-20

Windows11 と Ubuntu24.04LTS のデュアルブートPC構築手順 step by step!

想定する読者層

デュアルブートPC構築にあたり次の要望を持つ人が本記事の対象である

  • Windows Boot Manager が入った既存のESP(EFI領域)を壊したくない
  • Windowsの入った既存ディスクと、Ubuntuを入れるディスクを物理的に分けたい
  • Ubuntu の ルート と /home は別パーティションで扱いたい
  • WindowsとUbuntuの双方から読み書き可能なドライブを設けたい
  • Ubuntuインストーラの進行をスクリーンショット付きで事前に見ておきたい

私の動機

自宅にて、2017年に購入したノートPC(Lenovo ThinkPad E470, CPU:Core™ i5-7200U, RAM:16GB, HDD:SATA500GB, Windows 10 Home 64bit)へUbuntuを入れて普段遣いしているが、1つのHDDをパーティション分割して(WindowsのCドライブを500GBから200GBに縮小して)Ubuntuを入れているので、/home の空き容量が乏しくなってきた。

$ lsblk -e 7 -o NAME,FSTYPE,LABEL,SIZE,FSUSE%,TYPE,MOUNTPOINTS
NAME   FSTYPE LABEL       SIZE FSUSE% TYPE MOUNTPOINTS
sda                     465.8G        disk 
├─sda1 vfat   SYSTEM      260M    14% part /boot/efi
├─sda2                     16M        part 
├─sda3 ntfs   Windows   200.8G        part 
├─sda4 ntfs   WinRE_DRV  1000M        part 
├─sda5 swap               4.7G        part [SWAP]
├─sda6 ext4              93.1G    25% part /var/snap/firefox/common/host-hunspell
│                                          /
└─sda7 ext4             165.9G    75% part /home

故障もなくディスク容量以外は性能不足を感じないが、来年で9年目となるので買い替えて環境を一新することにした。新規購入したノートPCはこれ。

ThinkPad E16 Gen 3 AMD:プレミアム(優先生産モデル)
  • CPU: AMD Ryzen 7 250 w/ Radeon 780M Graphics
  • RAM: 32 GB DDR5-5600MT/s (SODIMM) - (2 x 16 GB)
  • 1stストレージ: 256 GB SSD M.2 2242 PCIe-NVMe Gen4 TLC OPAL対応
  • 2ndストレージ: なし(M.2 2280スロット空き)
  • ディスプレイ 16" WUXGA液晶 (1920 x 1200) IPS, 光沢なし, マルチタッチ非対応, 45%NTSC, 300 nit, 60Hz
  • 導入OS: Windows 11 Home 64bit - 日本語版
  • 合計(税込) ¥124,740

老眼が進んだので液晶16インチ以上で絞り込み、
その中からRAMが多く、SSDが増設可能な機種を選んだ。
増設SSDは別途購入した。

KIOXIA EXCERIA PLUS G3 SSD-CK2.0N4PLG3N 内蔵 SSD

  • 容量: 2TB
  • NVMe M.2 Type 2280 PCIe Gen 4.0×4
  • 価格: (税込)¥25,180

やりたいこと

  • Windows11がプリインストールされた新品PCにSSD(2TB)を増設し、そこへUbuntu24.04LTSをインストールしてデュアルブートを可能にする
  • 増設SSDの半分をWindowsのDドライブに割り当てて、ダウンロードファイル・Steamゲームライブラリ・画像ファイル・仮想マシンファイル等の置き場として使う
  • 増設SSDの残り半分に、Ubuntu用のルートとhomeの2つのパーテションを設ける
  • 増設SSDにUbuntu用の独立ESP(EFI System Partition)を作る
  • スワップパーテョンは設けない
  • WindowsのDドライブパーテョンをUbuntu側から読み書き可能にするため /mnt/share へマウントする
  • Ubuntuインストーラ入りのブータブルUSBメモリを確実に起動するために一時的にセキュアブートをOFFにするが、インストール完了後はセキュアブートをONに戻してUbuntuを起動する

独立ESPのメリット

  1. Windowsの更新や回復処理にてWindows側のESPが上書きされても、Ubuntu側のESPには影響なく安全である
    • 逆もまたしかりでUbuntuのインストールに失敗しても、Windows側のESPは一切変わらないので安心
  2. BIOSにて起動先を選んで固定するので、WindowsUpdateの自動再起動にてWindowsが再起動できる
    • 独立ESPを設けずWindowsのESPと共有すると、GRUBの起動選択メニューから手動でWindowsブートマネージャを選んで起動する必要があり、離席中に再起動した場合にはGRUBのメニューがタイムアウトしてデフォルト選択のUbuntuが起動してしまう

スワップパーティションは本当に不要か

Ubuntuで休止状態(ハイバネート)を使いたい場合はスワップパーテションを設けた方が安心である。
ルートがハードディスクかつ搭載メモリ不足で頻繁にスワップが発生する状況ならばスワップパーテションを設けた方が快適になるだろう。今回のようにSSDならばアクセス速度に差がないのでスワップファイルで十分である。
スワップファイルはUbuntuインストーラが自動的に用意してくれる。

ルートとhomeを別パーティションとするメリット

昔はドライブの信頼性が低く容量も小さかったので別ドライブに分ける意義があった。今のドライブは大容量であり、物理的に同じドライブ内にてパーテションを分けても信頼性は変わらないのでメリットは少ない。
あえていえばOSを再インストールする場合に、ルートは再フォーマットするが、homeはそのまま残せるのがメリット。だがそれに対しても、バックアップしたhomeをリストアすれば良いとの正論あり。
ルートとhomeで別のファイルシステム(ext4,xfs,btrfs)やマウントオプションを使いたい場合は別パーテションにするしかない。

補足: デスクトップPCの場合

ノートPCはCドライブの取り外しが難しくドライブ増設スロットに余裕がないので本記事で解説する面倒な手順が必要になるが、それらの制約がないデスクトップPCならば、以下の手順で簡単に独立ESPデュアルブート環境が構築できる。

  1. 既存のCドライブ(Windows用のESPを持つ)も含めて全ドライブをPCから外す
  2. Linux(Ubuntu)を入れたい新規ドライブを空スロットに接続して、Ubuntuを新規インストールする(新規ドライブにUbuntu用のESPが出来る)
  3. 外していた全ドライブを元通りに接続する
  4. 以上でそれぞれ独立ESPから起動できるデュアルブート環境が完成したので、BIOSでブート対象を選ぶ。Windows側と読み書き共有したいドライブがあれば、Ubuntu側からマウントする

事前準備

  1. Ubuntu公式サイトから最新版インストーラをダウンロードする。本記事執筆時点の最新版は Ubuntu Desktop 24.04.3 LTS です
  2. ダウンロードした iso ファイルを使ってブータブルUSBメモリを作る
    • 作成ツール毎に手順が違うので説明を割愛するが、私は Ventoy を使った。1つのUSBメモリに複数のisoファイルを入れて選択ブートできるので便利である
  3. 新ノートPCに増設SSDを取り付け、初回起動してWindows11をセットアップする
    • ローカルアカウントを作る方法が無くなっていたり、BIOS更新やWindowsUpdateで何度も再起動し、不要なバンドルソフト(McAfee)を消したり、OneDriveのマイドキュメント同期を解除したり、USBメモリに回復ドライブを作成したり、ここが一番時間を食った
  4. Windowsの設定にてBitLockerを無効にする。高速スタートアップも無効化する
    • Ubuntu側からWindowsドライブのデータを壊さずに読み書き可能とするためなので、読み書き不要なら無効化しなくて良い
  5. Windowsの設定にて増設SSD(2TB)をGPT形式で初期化し、1TBのNTFSパーティションを作り、フォーマットしてDドライブとする
  6. Windowsから再起動を実行し F1キー連打(PCメーカによってキーが異なる)で BIOS に入る
  7. BIOSにて、OSブート方式をUEFIに設定する
    • 増設SSDに作るESPを起動可能とするためであり、最近のPCなら最初からUEFIに設定されているので確認のみでOK
  8. BIOSにて、セキュアブートをOFFにする
    • ブータブルUSBメモリを起動可能にするためであり、インストール完了後にONへ戻す
  9. 用意したブータブルUSBメモリをPCに差し込み、BIOS設定を保存してBIOSから抜ける
  10. F12キー連打(PCメーカによってキーが異なる)でBIOSブート先選択メニューに入り、USBメモリを選ぶ

Ubuntuインストール実行

Ubuntuインストーラの全操作をステップ毎にスクリーンショットを撮りながら説明する

  1. ブータブルUSBメモリに入れたUbuntuインストーラを起動する Screenshot from 2025-12-17 02-54-59.png
  2. "Ubuntu Pro" や "Ubuntuの改善を支援" の設定。私はスキップした
  3. "さらにアプリケーションを追加する" は、後からできるのでスキップした
  4. "使用言語の選択" >日本語 Screenshot from 2025-12-16 17-03-02.png
  5. "アクセシビリティ" は障碍者向けの補助機能です。必要に応じて選択する
  6. "キーボードレイアウト">日本語 Screenshot from 2025-12-16 17-03-35.png
  7. "ネットワークに接続">各自の環境にあわせて設定する Screenshot from 2025-12-16 17-03-45.png
  8. "インストーラのアップデート" インストールに問題が発生すればやり直してここでアップデートする。とりあえずスキップでOK Screenshot from 2025-12-16 17-04-08.png
  9. "試用またはインストール">インストールを選択 Screenshot from 2025-12-16 17-04-32.png
  10. "インストールの種類">対話式 Screenshot from 2025-12-16 17-04-43.png
  11. "アプリケーション">お好みで選ぶ Screenshot from 2025-12-16 17-04-51.png
  12. "コンピューターを最適化">私は全部入にして、インストール失敗なら外してやり直すことにしている Screenshot from 2025-12-16 17-05-25.png
  13. "ディスクのセットアップ">ここからが本記事の肝です。手動を選ぶ Screenshot from 2025-12-16 17-05-36.png
  14. "手動パーティショニング">一覧の先頭にはブータブルUSBメモリがsda,sdbとして見えている。下にスクロールして増設SSDを探す Screenshot from 2025-12-16 17-06-41.png
  15. "手動パーティショニング">増設SSDがnvme1n1として見えた。事前準備で作成したWindows Dドライブ(NTFS 1TB)を選び、変更をクリックする Screenshot from 2025-12-16 17-12-57.png
  16. ”パーティションを編集”>マウントポイントに /mnt/share と入力してOKを押す Screenshot from 2025-12-16 17-13-20.png
  17. "手動パーティショニング">ここでESP(FAT32 /boot/efi)が暗黙に自動生成された。結果オーライだが、本来なら画面下部の "ブートローダをインストールするデバイスを選択" で増設SSDを選ぶことで生成される。自動生成ESPのサイズは1.13GBで大きい。Ubuntu専用EPSなので200MBで十分な気がするが、ファームウェア更新(fwupd)やUKI(Unified Kernel Image)に備えるため1GBが最新トレンドらしい Screenshot from 2025-12-16 17-13-46.png
  18. "手動パーティショニング">空き領域を選び、"+"をクリックしてルートパーティションを生成する。サイズ 100GB、Ext4、マウントポイント / を指定してOKを押す Screenshot from 2025-12-16 17-15-30.png
    Screenshot from 2025-12-16 17-19-01.png 旧PCではルートパーティションのサイズは93GBで使用率は25%(23GB)だったので、私の用途ではスワップファイルを足しても50GBで十分であるが、余裕をもって100GBとした
  19. "手動パーティショニング">空き領域を選び、"+"をクリックしてhomeパーティションを生成する。サイズ 残り全部、Ext4、マウントポイント /home を指定してOKを押す Screenshot from 2025-12-16 17-19-38.png
  20. "手動パーティショニング">完成したので次へ Screenshot from 2025-12-16 17-23-00.png
  21. "アカウントの設定">名前、PC名、ログインユーザ名、パスワードを入力する
  22. "タイムゾーンを選択">Asia/Tokyo
  23. "インストールの準備完了">インストールを押す Screenshot from 2025-12-17 02-27-07.png
  24. 生成したルートパーティションへ書き込み中 Screenshot from 2025-12-17 02-27-45.png
  25. インストール完了 Screenshot from 2025-12-17 02-33-45.png
  26. 今すぐ再起動を押し、F1連打でBIOSに入り、ブート先を増設SSDに変更する
    • 実際には"今すぐ再起動"ではなく"試用を継続する"を選び、スクリーンショットを別ドライブにコピーしてから再起動した。インストーラのシステムはRAMディスク上で動作しているので、再起動するとスクリーンショットが消えてしまうため
  27. 最近のUbuntuはセキュアブートに対応しているので、BIOSのセキュアブートをONに戻す
    • Microsoft以外のセキュアブートを許可という項目があればそれもONにする必要があるかも
    • GPUドライバなどを追加でインストールする場合は、再起動時にMOK (Machine Owner Key) の登録画面が出るかも
  28. BIOS設定を保存してBIOSから抜ける。Ubuntuが無事に起動すれば任務完了。お疲れ様でした

出来上がったパーティションの構成

旧PCに比べて /home のサイズが4倍強となり当初の不満は解消した。
ルートのサイズは変わらずだが問題ない。

$ lsblk -e 7 -o NAME,FSTYPE,LABEL,SIZE,FSUSE%,TYPE,MOUNTPOINTS
NAME        FSTYPE LABEL       SIZE FSUSE% TYPE MOUNTPOINTS
nvme0n1                        1.8T        disk 
├─nvme0n1p1                     16M        part 
├─nvme0n1p2 ntfs   share         1T     9% part /mnt/share
├─nvme0n1p3 vfat                 1G     1% part /boot/efi
├─nvme0n1p4 ext4              93.1G    17% part /
└─nvme0n1p5 ext4             743.4G     1% part /home
nvme1n1                      238.5G        disk 
├─nvme1n1p1 vfat   SYSTEM      260M        part 
├─nvme1n1p2                     16M        part 
├─nvme1n1p3 ntfs   Windows   236.3G        part
└─nvme1n1p4 ntfs   WinRE_DRV     2G        part 

インストール後の仕上げ

デュアルブート環境固有の調整作業を行う

/etc/fstabの調整

Ubuntuインストーラの "手動パーティショニング" にて、WindowsのDドライブを /mnt/share にマウント指定したので読み込み可能になっている。だがインストーラが作ったマウント設定は最低限の記述しかされておらず、レガシーなntfsドライバが指定されているため書き込みにも難がある。

Ubuntu24.04LTSならばモダンなntfs3ドライバが使えるのでマウント設定を書き換える。さらにアクセス権など細かいオプションを生成AIに質問したり findmnt で他のパーティション内容を調べて追記した。

どうせ書き換えるのでインストーラでマウント指定しなくても良いのだが、インストーラで指定すればUUID付きのプレースホルダが用意されるので、DドライブのUUIDを sudo blkidlsblk -fls -l /dev/disk/by-uuid/ を使って調べる手間を省けるし、ヒューマンエラーの防止にもなる。

fstabの書き換え
$ sudoedit /etc/fstab
$ diff /etc/fstab{.bak,}
13c13
< /dev/disk/by-uuid/D022064222062E52 /mnt/share ntfs defaults 0 1
---
> /dev/disk/by-uuid/D022064222062E52 /mnt/share ntfs3 defaults,nosuid,nodev,uid=1000,gid=1000,umask=022,iocharset=utf8,windows_names 0 0

これに ,nofail,noatime を追加しても良いかも。

  • Windows側で「高速スタートアップ」が有効に戻ったり、不適切なシャットダウンが起きたりすると、マウントエラーになることがある。このときにシステムが停止しないように nofail を追加することを推奨するとのことだ。エラーで止まったほうが見落とさずに対策できるので私は要らない
  • noatime は、ファイルアクセス時刻の更新を一切やめて、パーティションへの書き込みを最小限にする設定である。デフォルトの relatime でも書き込むタイミングは同じなので、お好みで追加すれば良い

さらに ntfs3 ではなく lowntfs-3g を使用し、オプションに ignore_case を加えると「Windowsの大文字小文字を区別しない(同一視する)」動作を実現できるらしいが、今回は実施せず。
https://github.com/tuxera/ntfs-3g/wiki/NTFS-3G-FAQ

GRUBの表示サイズ調整

GRUBはVGA(640x480)画面に合わせたフォントサイズで表示するので、WUXGA(1920x1200)やFullHD(1920x1080)のディスプレイで表示すると文字が小さすぎる。
GRUB設定ファイル /etc/default/grub を編集して画面解像度を640x480に変える。ファイル中にある #GRUB_GFXMODE=640x480 のコメントを外せば良い。
編集後に update-grub を実行してブート設定に反映する。

grub設定の書き換え
$ sudoedit /etc/default/grub
$ diff /etc/default/grub{.bak,}
31c31
< #GRUB_GFXMODE=640x480
---
> GRUB_GFXMODE=640x480
$ sudo update-grub

BIOS時計の時差調整

WindowsはBIOS時計をローカル時刻として読み取るが、Ubuntuは世界時として読み取る。
この違いにより、デュアルブート環境でWindowsとUbuntuを相互に起動すると、時刻が時差分ずれてしまう。
そこでUbuntuの読み取り設定を変更してWindowsと同じにする。

$ timedatectl set-local-rtc 1 

再起動してWindows側で時刻を確認し、ずれていたら時刻を再設定する。
さらに再起動してUbuntu側で時刻設定を確認する。Local time と RTC time が同一時刻で、RTC in local TZ: yes が表示されていればOK。

$ timedatectl
               Local time: 土 2025-12-20 22:30:33 JST
           Universal time: 土 2025-12-20 13:30:33 UTC
                 RTC time: 土 2025-12-20 22:30:33
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: yes

Warning: The system is configured to read the RTC time in the local time zone.
         This mode cannot be fully supported. It will create various problems
         with time zone changes and daylight saving time adjustments. The RTC
         time is never updated, it relies on external facilities to maintain it.
         If at all possible, use RTC in UTC by calling
         'timedatectl set-local-rtc 0'.

過去の関連記事

END

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?