🖥️

Windowsが入ったSSDとHDDを新しい2台のSSDにクローンしてみた

2024/10/12に公開

常時利用しているWindowsマシンのSSDとHDDがともに寿命を迎え、新たに2台のSSDを用意してOSごとクローンして引っ越しました。無事成功したので作業の手順をここに記録しておきます。

新旧の構成

旧構成 新構成
Cドライブ
ブートドライブ
SSD 500GB
Crucial CT500MX500SSD1
2.5インチ, SATA3
SSD 500GB
Crucial CT500P3SSD8
M.2 (2280), NVMe, PCIe Gen3 x4
Dドライブ HDD 1TB
WesternDigital WD Blue WD10EZEX
3.5インチ, SATA3
SSD 1TB
Crucial CT1000P3SSD8
M.2 (2280), NVMe, PCIe Gen3 x4
構成
OS Windows 10
マザーボード ASRock Fatal1ty X370 Gaming K4
インターフェース - M.2 (2280), NVMe, PCIe Gen3 x4
- M.2 (2280), NVMe, PCIe Gen2 x2

2017年構築の自作PCです。

ブートドライブは C ですが、Dドライブにもソフトウェアをインストールしており切り離せません。そこで今回は C, D の両方をクローンしました。容量はどちらも同じサイズです。

これまでSATA接続していたSSDとHDDを、M.2接続のSSDにクローンします。2017年のマザーボードと既に7年経過していますが 2280 サイズの M.2 がちょうど2つあります。ただし片方は Gen2 x2 の帯域しかないので結果的に Dドライブ側の SSD 性能は頭打ちになります。

寿命が近づいたSSDとHDDの延命が主目的のため、容量増加とスピードアップは度外視しています。

事前に用意するもの

  • 新しいSSD(2台)
  • 空のUSBメモリ(32GB)

作業手順

1. Ubuntuの準備

Ubuntuの公式サイトからISOイメージをダウンロードします。ISOイメージをUSBメモリに書き込むためにRufusもダウンロードしておきます。Rufusはポータブル版で問題ないです。

ISOイメージとRufusのダウンロードが終わったらRufusを起動し、ISOイメージを空のUSBメモリに書き込みます。


UbuntuのISOイメージを書き込んでいるところ

2. 新しいSSDの取り付け

PCをシャットダウンし、電源も切断して筐体を開き、新しいSSDを取り付けます。クローン元のSSDとHDDはまだ外しません。

この後の作業のために不必要なストレージデバイスが接続されている場合はすべて外しておきます。


SSD取り付け前

3. USBメモリからUbuntu起動

電源を接続し、USBメモリから Ubuntu を起動します。ASRock のマザーボードでは F2 または DEL キーでBIOSの設定メニューへ、F11 キーでブートメニューに入れます。

このとき、新たに増設した SSD が2台分見えていることを確認しておきます。


ブートメニューでUbuntuを入れたドライブを選択

うまくいくと GRUB2 の画面でブート方法が聞かれるので Try and Install Ubuntu を選択します。

4. ターミナル起動

しばらくすると Ubuntu が起動します。通常だとそのまま Ubuntu のインストールプログラムが自動起動するので、起動したら閉じます。

このタイミングでインターネットに接続しておきます。 今回は有線LAN接続でしたので何も設定しませんでした。

次の作業のためにターミナルを開きます。
ターミナルの場所がわからないときは Windowsキー を押下して検索ワード欄に terminal と打てば出てきます。

5. GParted と ddrescue のインストール

パッケージ情報を更新させます。

$ sudo apt update

デバイス名のチェックとクローンの確認のために GParted を使います。
実は Ubuntu 24.04 内にはもともと GParted が入っているのでインストールの必要がありません。何らかの理由で入っていない場合は以下のコマンドでインストールします。

$ sudo apt install gparted

実際のクローンには ddrescue を使います。
ddrescue は Ubuntu 24.04 内にはもともと含まれていないのでインストールが必要です。そしてリポジトリにも通常は見つからないようなので deb パッケージからインストールします。

$ wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gddrescue/gddrescue_1.23-2build1_amd64.deb
$ sudo apt install ./gddrescue_1.23-2build1_amd64.deb

今回は ddrescue は 1.23 を使いましたが、最新版は 1.27 のようです。ミラーサイトにて提供されているバージョンが確認できます。

6. GParted でデバイス名の確認


PCに接続されているストレージ一覧

GPartedを起動すると、現時点で接続されているストレージが表示されます。画像の場合、

  • /dev/nvme0n1 : 増設したクローン先のSSD (500GB)
  • /dev/nvme1n1 : 増設したクローン先のSSD (1TB)
  • /dev/sda : クローン元のHDD (1TB, Dドライブ)
  • /dev/sdb : クローン元のSSD (500GB, Cドライブ)
  • /dev/sdc : 今回の作業には関係のない内蔵HDD
  • /dev/sdd : Ubuntuを起動したUSBメモリ

の6台が見えています。ここで増設したデバイスが見えていない場合は取り付けからやり直しになります。

このデバイス名が必要になるので確実にメモしておきます。

7. ddrescue のコマンドの確認

$ sudo ddrescue [options] [クローン元デバイス] [クローン先デバイス]

オプションには -f -v を使いました。 -f は強制上書き(force)、 -v は進捗状況を表示(verbose)です。

今回は2台分のクローンを行うのでコマンドも2回打ちます。実行前にテキストエディタを開いてコマンドを書き、正しいか必ずチェックしましょう。今回の場合は

旧構成のデバイス名 新構成のデバイス名
Cドライブ
ブートドライブ
/dev/sdb /deb/nvme0n1
Dドライブ /dev/sda /deb/nvme1n1

なので、実行すべきコマンドは

$ sudo ddrescue -f -v /dev/sdb /deb/nvme0n1
$ sudo ddrescue -f -v /dev/sda /deb/nvme1n1

になります。
絡むデバイスが4台とも別なので並列実行できそうですが、トラブル発生時に対処が難しくなりそうなので大人しく一つずつ実行します。

8. ddrescue 実行


実行結果

用意したコマンドを一つずつ実行します。今回は不良セクタは存在しないのでエラーなしで進みます。
SSD → SSD (500GB) で24分55秒、HDD → SSD (1TB) で3時間14秒かかりました。

9. GParted で確認


クローン先SSDに正常にパーティションができている

GParted を再び実行してクローン先SSDを確認すると、クローン元と同じパーティションができているはずです。

10. クローン元デバイスの除去

UbuntuをシャットダウンしてUSBメモリを抜きます。電源を切断して筐体からクローン元になった SSD と HDD を抜きます。ここで元のデバイスを除去しないと Windows が起動しないようです。

11. 起動

必要があればブート構成をクローン先のSSDに変更しておきます。これで通常通り Windows が起動すればクローン作業はすべて終了です。

おまけ: ベンチマーク結果

旧構成 新構成
Cドライブ
ブートドライブ
Dドライブ

旧構成のCドライブ(SSD)は2019年から、Dドライブ(HDD)は2016年から使用していました。比較方法が異なるので単純比較はできませんが、Cドライブは6.0倍、Dドライブは5.3倍ほど読み取りが速くなりました。

Dドライブの速度が低いのは、前述の通り Gen2 x2 で接続されているために性能が頭打ちになっているためです。それでもHDDよりも5倍以上は高速なので非常に快適です。

最後に CrystalDiskInfo の結果も載せておきます。SSDの残り寿命は 3% でした。

旧構成 新構成
Cドライブ
ブートドライブ
Dドライブ

参考文献

https://zenn.dev/tantan_tanuki/articles/6cc223c5133bb5

https://qiita.com/umetaman/items/5b8222170cd31218f388

https://www.gdm.or.jp/review/2017/0331/200779/8

Discussion