Windowsが入ったSSDとHDDを新しい2台のSSDにクローンしてみた
常時利用している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ドライブ |
参考文献
Discussion