この記事では、デュアルブート環境を維持したまま、SSDを拡張する方法をまとめたものです。Windows 11 向けのSSD換装によるストレージ拡張操作、もしくは、Ubuntu のそれはネット上にいろいろな記事などでまとめられているのですが、 デュアルブート だとその情報がなさそうだったので、まとめます。
誰向け?
- Windows 11 と Ubuntu 24.04 をデュアルブートしていて、SSDを換装したい人
- デュアルブート環境を壊さずにストレージ容量を増やしたい人
- Clonezillaを使ったディスククローンに興味がある人
PC機種と環境
デュアルブート環境概要
- PC機種: GMKtec NucBox M7
- 既存SSD: 476.9GB NVMe(nvme0n1)※中華っぽいメーカー製
- 新規SSD: 1TB Samsung 990 EVO Plus(sda)
- CPU: AMD Ryzen 7 PRO 6850H
- メモリ: 32GB DDR5(16GB×2)
- GPU: ZOTAC RTX 5060 Ti 16GB
なぜこの環境を作ったのか、その構築に関しての概要は以下の記事にも書いています。
Mini PC + 外付けGPUでローカルLLM環境を作った話
https://zenn.dev/takajun/articles/0a3f487decab01

デュアルブート自体は、以下のサイトの手順を参考に行っていました。Windows のパーティションツールで、未使用領域(unallocated)を作成して、そこにUbuntuをデュアルブートでインストールするという一般的な方法で、OSをインストールしています。
How to Dual Boot Linux and Windows - zenarmor.com
How to Dual Boot Linux and Windows

なぜSSD換装が必要になったのか
ローカルLLM(Ollama)のモデルファイルやDockerイメージを大量に保存していたところ、ディスク使用率が 97% に達してしまいました。残り容量はわずか4.5GB。これはシステムの安定性に影響を与えるレベルです。
bash
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p5 144G 132G 4.5G 97% /
実際に新しいファイルのダウンロードなどができなくなったり、普通に Ubuntu のデスクトップがフリーズして操作できないみたいな不具合が多発していました。
作業前のパーティション構成
まず、Ubuntu のターミナルで現在のパーティション構成を確認します。
私の環境では以下のような構成でした。
bash
$ sudo fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: NVME SSD
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 206847 204800 100M EFI System
/dev/nvme0n1p2 206848 239615 32768 16M Microsoft reserved
/dev/nvme0n1p3 239616 690966527 690726912 329.4G Microsoft basic data
/dev/nvme0n1p4 998166528 1000214527 2048000 1000M Windows recovery environment
/dev/nvme0n1p5 690966528 998166527 307200000 146.5G Linux filesystem
Windows側で、でも同様に確認してみました。

デュアルブート環境では、EFIパーティション、Windows本体、Windows回復環境、そしてUbuntu本体という複数のパーティションが存在します。これらすべてを新SSDに移行する必要があります。
Ubuntu 用パーティションとして、 146GB を割り当てていましたが、デスクトップOSとして日常使いするにはやっぱり容量が少なすぎました。
使用するツール
Clonezilla
ディスククローンには Clonezilla を使用しました。Clonezillaはオープンソースのディスクイメージング/クローニングツールで、デュアルブート環境のクローンに実績があります。
Clonezilla - About

GParted
パーティションの拡張には GParted を使用しました。GUIで直感的にパーティション操作ができます。
作業手順の概要
作業は大きく3つのフェーズに分かれます。
- Phase 1: 準備作業 - Clonezilla環境の準備
- Phase 2: クローン実行 - ディスク全体のコピー
- Phase 3: パーティション拡張 - Ubuntuパーティションの拡大
Phase 1: 準備作業
方法の選択:SSD直接インストール方式
通常、ClonezillaはUSBメモリから起動しますが、今回は 新SSDの先頭にClonezillaを直接インストールする方式 を採用しました。この方法のメリットは以下の通りです。
- USBメモリが不要
- 「To RAM」モードで起動すれば、Clonezillaがインストールされている新SSD自体をクローン先として使用可能
Step 1: 新SSDにClonezilla用パーティションを作成
新SSD(1TB)を NVMe SSDエンクロージャー などで接続し、先頭に10GBのパーティションを作成します。
bash
# 新SSDのデバイス名を確認
$ lsblk
# 私の環境では /dev/sda として認識されました
# fdiskでパーティション作成
$ sudo fdisk /dev/sda
# fdiskの対話モードで以下を実行
Command: g # GPTパーティションテーブルを作成
Command: n # 新規パーティション
Partition number: 1 # デフォルト
First sector: 2048 # デフォルト
Last sector: +10G # 10GBを指定
Command: t # パーティションタイプを変更
Partition type: 11 # Microsoft basic data(FAT32用)
Command: w # 書き込んで終了
Step 2: FAT32でフォーマット
bash
$ sudo mkfs.vfat -F32 /dev/sda1
Step 3: Clonezillaのダウンロードと展開
bash
# Clonezillaをダウンロード
$ cd ~/Downloads
$ mkdir clonezilla && cd clonezilla
$ wget https://sourceforge.net/projects/clonezilla/files/clonezilla_live_stable/3.3.0-33/clonezilla-live-3.3.0-33-amd64.zip
# マウントポイントを作成してマウント
$ sudo mkdir -p /mnt/clonezilla
$ sudo mount /dev/sda1 /mnt/clonezilla
# ZIPファイルを展開
$ sudo unzip clonezilla-live-3.3.0-33-amd64.zip -d /mnt/clonezilla/
# 確認
$ ls /mnt/clonezilla/
# EFI, live, syslinux などのディレクトリが見えればOK
Step 4: GRUBにClonezillaのブートエントリを追加
Ubuntuから直接Clonezillaを起動できるように、GRUBの設定を追加します。
bash
$ sudo vim /etc/grub.d/40_custom
以下の内容を追加します。
plain text
menuentry "Clonezilla Live (ToRAM)" {
insmod part_gpt
insmod fat
set root='hd1,gpt1'
linux /live/vmlinuz boot=live union=overlay username=user config components noswap edd=on nomodeset locales=ja_JP.UTF-8 keyboard-layouts=jp ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch="no" vga=788 ip= net.ifnames=0 toram=live,syslinux,EFI nosplash noprompt
initrd /live/initrd.img
}
重要なポイント:
set root='hd1,gpt1'の部分は環境によって異なります。hd0が最初のディスク、hd1が2番目のディスクですtoramオプションにより、Clonezillaがメモリに読み込まれるため、起動元のディスクを操作対象にできます
GRUBを更新します。
bash
$ sudo update-grub
Phase 2: クローン実行
Step 5: Clonezillaで起動
- PCを再起動
- GRUBメニューで「Ubuntu」や「Windows」など既存のデュアルブート用の選択肢と並んで、「Clonezilla Live (ToRAM)」があるのでそれをを選択
- Clonezillaが起動したら、言語とキーボードを選択

Step 6: クローンモードの選択
Clonezillaのウィザードで以下を選択します。
- Start_Clonezilla を選択

- device-device を選択(直接ディスク間コピー)

- Beginner を選択(初心者モード)
- disk_to_local_disk を選択(ディスク→ディスクのクローン)
Step 7: ソースとターゲットの選択
⚠️ ここが最も重要です。間違えるとデータが消えます!
plain text
ソースディスク(コピー元):
[✓] nvme0n1 476.9GB ← 既存のSSD
ターゲットディスク(コピー先):
[✓] sda 931.5GB ← 新しいSSD
実際の画面だと、以下のように選択肢が表示されます。
コピー元のソースとしてPCのマザーボードに接続された nvme0n1 のディスクを選択、コピー先として、sda を選択しました。

Step 8: クローンオプションの選択
パーティションサイズの扱いについて選択を求められます。
k1(比例拡大): すべてのパーティションを比例的に拡大k0(元サイズ維持): 元のサイズのままコピーし、後で手動調整
私は -k0(元サイズ維持) を選択しました。理由は以下の通りです。
- Windowsパーティションは拡張不要(329GBで十分)
- Ubuntuパーティションのみを最大化したい
- 回復パーティションの位置を調整したい
Step 9: クローン実行
step 8 の後の画面がこちらです。
1TB Samsung 990 EVO Plus がコピー先であることを確認し、y を押して実行します。

クローンの実行には、私の環境では約1時間かかりました(データ量や接続方式によって変動します)。
クローン実行中は、以下のような画面で、パーティションごとにコピーする進捗状況が示されます。

Step 10: 物理的なSSD交換
クローン完了後、以下の手順でSSDを交換します。
- PCをシャットダウン
- 既存のSSDを取り外し
- 新SSDを内蔵スロットに装着
- 電源を入れて起動確認
Phase 3: パーティション拡張
クローン直後は、パーティションサイズが元のSSDと同じままです。新SSDの余った領域を活用するため、パーティションを拡張します。
Step 11: 起動確認
まず、UbuntuとWindowsの両方が正常に起動することを確認します。
bash
# Ubuntu起動後
$ lsblk
$ df -h
# 再起動してGRUBからWindowsを選択
# Windowsのデスクトップまで到達すればOK
windows も無事起動でき、再度パーティションツールでその内容を確認したら、無事交換されたSSDとパーティションを確認することができました。

クローン後の ssd の状況は問題なさそうなので、再起動してubuntu に戻り、パーティション拡張作業を続けます。
Step 12: GPartedのインストール
ディスク使用率が97%のため、まず空き容量を確保してからGPartedをインストールします。
bash
# 空き容量を確保
$ sudo apt clean
$ sudo apt autoremove -y
$ sudo journalctl --vacuum-time=3d
# GPartedをインストール
$ sudo apt update
$ sudo apt install -y gparted
Step 13: パーティション拡張の実行
bash
$ sudo gparted /dev/nvme0n1
上記のコマンドのあと、以下のウィンドウが開きます。SSDが交換されて、容量は増えていますが、unallocated の状態でUbuntuが使用している領域が交換前と同じいっぱいの状態なので、これを拡張していきます。

拡張は、GPartedのGUI上で以下の操作を行います。
操作1: 回復パーティション(p4)を右端に移動
デュアルブート環境では、Windows回復パーティション(p4)がUbuntuパーティション(p5)の後ろにあることが多いです。この場合、p5を拡張するためには、まずp4を右端に移動する必要があります。
/dev/nvme0n1p4を選択- 右クリック → 「Resize/Move」
- パーティションを右端にドラッグ
- 「Resize/Move」をクリック
上記の操作を実行すると free space preceding が、移動した分だけ増え、 free space following が0になり、一番最後尾に Windows回復パーティション(p4) が移動されたことが確認できます。
以下の画像は、その時のスクショです。

操作2: Ubuntuパーティション(p5)を拡張
/dev/nvme0n1p5を選択- 右クリック → 「Resize/Move」
- 右端を最大までドラッグ
- 「Resize/Move」をクリック
スクショは無いですが、Windows回復パーティション(p4) を移動したのと同じ容量で操作します。
操作3: 変更を適用
- 緑のチェックマーク「Apply」をクリック
- 確認ダイアログで「Apply」をクリック
- 完了まで待機(数分程度)
以下のような表示になれば完了です。

作業結果
Before / After 比較
SSD容量
- Before: 476.9GB
- After: 931.5GB
- 改善: +454.6GB
Ubuntuパーティション
- Before: 146.5GB
- After: 601.1GB
- 改善: +310%
空き容量
- Before: 4.5GB
- After: 435GB
- 改善: +430.5GB
使用率
- Before: 97% 🔴
- After: 24% 🟢
- 改善: -73pt
最終的なパーティション構成
bash
$ sudo fdisk -l /dev/nvme0n1
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 206847 204800 100M EFI System
/dev/nvme0n1p2 206848 239615 32768 16M Microsoft reserved
/dev/nvme0n1p3 239616 690966527 690726912 329.4G Microsoft basic data
/dev/nvme0n1p5 690966528 1951475711 1260509184 601.1G Linux filesystem
/dev/nvme0n1p4 1951477760 1953523711 2045952 999M Windows recovery
パーティション番号(p4とp5)と物理的な配置順序が異なりますが、これは問題ありません。UUIDで管理されているため、正常に動作します。
bash
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p5 591G 131G 435G 24% /
学んだこと
1. Clonezillaの「To RAM」モードは強力
SSD自体にClonezillaをインストールし、RAMに読み込んで実行することで、USBメモリなしでクローン作業が可能です。同じSSDをクローン先として使用できる点が便利でした。
2. パーティション順序と番号は一致しなくてよい
物理的な配置順序(p5 → p4)と論理的なパーティション番号が異なっていても、システムは正常に動作します。LinuxはUUIDでパーティションを識別するため、順序の違いは問題になりません。
3. 回復パーティションの位置に注意
Windows回復パーティションがUbuntuパーティションの直後にある場合、拡張前に移動が必要です。GPartedなら GUI で簡単に操作できます。
まとめ
デュアルブート環境でのSSD換装は、単一OS環境より複雑ですが、Clonezillaを使えば安全に実行できます。AIに確認しながら作業を進めたので、安全にできました。パーティションの確認とか操作は、ある程度もともと理解はしていたのですが、GRUB のところはぶっちゃけ、どういう仕組かはよくわからなかったです。このクローン作業する以前から、デュアルブートするときに、GRUB の起動ディスク選択画面?は出ていたので、もしかして、grub のファイルをいじらなくても自動で、clonezilla の選択肢が出てきて、clonezilla の起動ができたかもしれません。
なにはともあれ、作業の流れをまとめると以下の通りです。
- Clonezilla環境を準備(USBメモリまたはSSD直接インストール)
- Clonezillaでディスク全体をクローン
- 物理的にSSDを交換
- GPartedでパーティションを拡張
- 両OSの起動を確認
この方法なら、Windows回復環境も含めてすべてのパーティションを維持したまま、新しいSSDに移行できます。作業後は、Ubuntuの稼働も安定し、Clonezilla を使って、1TBSSDに拡張して良かったです。
容量不足で悩んでいる方の参考になれば幸いです。