今回は120GBのSSDから500GBのSSDへデータ移行する方法を紹介します。レガシーブートとUEFIブートの双方に対応しています。
灯台もと暗しで容量が足りなくなった場合の対処を行う
何らかの理由で容量の小さなSSDやHDDが余り、そこにUbuntuをインストールしたものの、なかなか気に入ったので使い込んでいると容量が足りなくなった、なんてことがあるのではないでしょうか。あるいは昨今のSSDの値下がりもあり、新しいものを買ってきたのでデータをそっくりそのまま移行しつつパーティションを拡大して使用したい、なんてこともあるでしょう。そういった場合の方法を解説します。
今回は例として容量の小さなSSD(120GB)から大きなSSD(500GB)に変更しますが、HDDであっても全く同様です。アクセス速度の向上を期待して、同容量であってもHDDからSSDに変更するのもいいでしょう。移行先は現実的に500GB〜1TB程度のSSDとしています。4TBのHDDなどの場合はまた変わってくる部分もありますが、今回は考えないものとします。
OSはUbuntu 18.04 LTSを新規インストールしたものを想定しています。16.04 LTS以前だとスワップパーティションがあるのでまた話は変わってくるのですが、スワップパーティションは使用せずにスワップファイルを使用するように変更したほうがいいでしょう。ただし今回解説は省略します。もちろん最初にインストールしたOSが18.04 LTSなのか、16.04 LTSなのかという話であり、現在どのバージョンを使用しているのかは無関係です。
Ubuntu 18.04 LTSを新規インストールしたということは、PCによってはブートモードが従来のレガシーブートの場合とUEFIブートの場合が考えられるため、その双方について説明します。ブート方法が全く違うので、別に説明したほうがいいと考えました。
データの移行については、10年前の第121回で紹介したClonezillaや第289回で紹介したFSArchiverとそのフロントエンドであるqt-fsarchiver[1]を使用するのもいいですが、今回使用するのはUbuntu 20.04 LTSのインストールイメージです。灯台もと暗し的ですが、ライブイメージにはインストールされている(ハードドライブへのインストール中に削除される)GPartedにはパーティションをコピーする機能があるのでこれを使用します。もちろんパーティションの拡大をすることもできます。ただしブート周りをケアする機能はないため、コマンドラインで行います。別途ツールを用意する必要がなく、いつも手の届くところに置いてある(?)Ubuntuのライブイメージで作業できるのは大きなメリットではないでしょうか。
今回使用するSSD
今回使用するSSDは、もはやいつ買ったのかも覚えていないSAMSUNG SSD 830の128GBモデルです(図1)。もうすでにいろいろ使用していて空き容量が心もとない……というのを前提としたかったのですが、今回は検証環境ということでUbuntu 18.04.5 LTSのインストール直後であって空き容量もたっぷりあります。
もう一つはCrucialのCT500MX500SSD1です(図2)。本記事の掲載時点で現行製品であり、入手も容易です。また価格も下がってきているので、新規購入を検討するのにふさわしいモデルであると判断しました[2]。
レガシーブートの場合
コピー元とコピー先それぞれのSSDを接続し、Ubuntu 20.04 LTSのイメージから起動します。なお接続方法については問いません。SATAでもUSBでも結構です。パスが異なりますがNVMe SSDでもいいでしょう。今回は2台ともSATA接続になっています。
GPartedを起動し、もともと使用していたドライブを表示して「View」-「Device Information」をクリックしてください(図3)。レガシーブートの場合、デフォルトではパーティションが1つしかないため、レガシーブートかUEFIブートかわからない場合の区別にもなるでしょう。
確認するのは「Partition table」で、ここでは「msdos」になっています。新しいSSDでも同じパーティションテーブルにします。新しいSSDに切り替えて、「Device」-「Create Partition Table」をクリックします。するとパーティションテーブルを選択するダイアログが表示されるため、「msdos」を選択して「Apply」をクリックしてください(図4)。このダイアログにも記述されているとおりすべてのデータが消えてしまうため、事前に間違いがないかをよく確認してください。
完了後、コピー元に戻り、パーティションを選択して右クリックし、「Copy」をクリックします(図5)。コピー先を選択し、右クリックして「Paste」をクリックします(図6)。その際パーティションを拡大できるので、末尾まで延ばして「Paste」をクリックします(図7、図8)。ツールバーのにある右端のアイコン(緑の✓)をクリックし、ダイアログの「Apply」をクリックしてしばらく待つと、コピーが完了します。
コピー完了後パーティションを右クリックし、「Manage Flags」をクリックして「boot」にチェックを入れ(図9)、「Close」をクリックします。
GPartedでの操作はこれで完了です。続けてMBR(Master Boot Record)にGRUBをインストールします。端末を起動して次のコマンドを実行してください。
エラーが出ていないことを確認します。
ここまでできたらPCの電源を落とし、USBメモリーとコピー元のSSDを取り外し、起動します。
UEFIブートの場合
コピー元とコピー先それぞれのSSDを接続し、Ubuntu 20.04 LTSのイメージから起動します。なお接続方法については問いません。SATAでもUSBでも結構です。パスが異なりますがNVMe SSDでもいいでしょう。今回は2台ともSATA接続になっています。
GPartedを起動し、もともと使用していたドライブを表示して「View」-「Device Information」をクリックしてください(図10)。UEFIブートの場合、デフォルトではブート用のパーティションとシステム用のパーティションの2つあります。
確認するのは「Partition table」で、ここでは「gpt」になっています。新しいSSDでも同じパーティションテーブルにします。新しいSSDに切り替えて、「Device」-「Create Partition Table」をクリックします。するとパーティションテーブルを選択するダイアログが表示されるため、「gpt」を選択して「Apply」をクリックしてください(図11)。このダイアログにも記述されているとおりすべてのデータが消えてしまうため、事前に間違いがないかをよく確認してください。
完了後、コピー元に戻り、最初のパーティションを選択して右クリックし、「Copy」をクリックします。コピー先を選択し、右クリックして「Paste」をクリックします(図12)。再びコピー元に戻り、2番目のパーティションを選択して右クリックし、「Copy」をクリックします。コピー先を選択し、右クリックして「Paste」をクリックします。その際パーティションを拡大できるので、末尾まで延ばして「Paste」をクリックします(図13、図14)。ツールバーのにある右端のアイコン(緑の✓)をクリックし、ダイアログの「Apply」をクリックしてしばらく待つと、コピーが完了します(図15)。
ここまでできたらPCの電源を落とし、USBメモリーとコピー元のSSDを取り外し、起動します。
どうやってもブートできない場合
原則としては前述の方法でうまくブートしてくるはずですが、何らかの事情でブートしないこともあります。とはいえブートの修復はとても難しいので途方に暮れてしまいます。そんな場合の強い味方がBoot-Repairです。Boot-Repairは現状を診断し、自動的に適切な方法でブート関連トラブルを修復してくれます。修復できない場合もヒントを出してくれます。
ただしBoot-RepairはUbuntuのライブイメージには収録されておらず、またUbuntuのリポジトリにもないため、PPAからインストールする必要があります。
ライブイメージで端末を起動して次のコマンドを実行してください。
インストール完了後起動し(図16)、まずは「おすすめの修復」で修復を試みてください。