HDDからSSDへOSごとコピー(ubuntu)

HDDの容量がいっぱいになったのでSSDに変えた。
作業はコピー元のubuntu16.04で行う。
以下手順。
参考
linux環境を複製する方法 - ぴょぴょぴょ? - Linuxとかプログラミングの覚え書き -

  1. gpartedのインストール。
    sudo apt-get install gparted

  2. gpartedでパーティションテーブルを作成。
    フラグ付け等は不要だった。
    500GBを100GBと400GBに分割。

  3. マウント。
    適当にフォルダを作ってマウントする。

    sudo mkdir /mnt/s1
    sudo mkdir /mnt/s2
    sudo mkdir /mnt/c1
    sudo mount /dev/sdb1 /mnt/s2
    sudo mount /dev/sdb1 /mnt/s2
    sudo mount --bind -oro / /mnt/c1

  4. データコピー。
    まずはオプション"n"をつけて内容確認。
    といっても時間もそこそこかかるし量が膨大なので途中で打ち切っちゃってもいいかも。
    今回はhomeディレクトリのみ別パーティション

    sudo rsync -aDnv --exclude "/mnt/*" --exclude "/home" /mnt/c1 /mnt/s1

    上記コマンドでOKだったらオプション"n"を外す。

    sudo rsync -aDv --exclude "/mnt/*" --exclude "/home" /mnt/c1 /mnt/s1

    50GBくらいで15分くらいだった?
    同様にhomeもコピーを行う。

    sudo rsync -aDnv /mnt/c1/home/ /mnt/s2

    sudo rsync -aDv /mnt/c1/home/ /mnt/s2

  5. fstabを修正。

    sudo emacs /mnt/s1/etc/fstab

    UUIDを直す。
    UUIDの確認は以下のコマンド。

    ls -l /dev/disk/by-uuid

  6. 起動確認
    PCを再起動してbootメニューから起動ドライブを変更する。

あとがき

実は間抜けなことに最初はオプションなしのcpコマンドでhomeをコピーした。
すると、OSは起動してログイン画面までは到達するけどログインできない事態に。
パスワードを入力するとubuntuのSEが鳴り元の画面に戻される。例のポコポン地獄。
CUIを開くとsudoが打てなかった。
文字化けで読めなかったけどsudo,uidという文字が見えたのでググってみると/usr/bin/sudoの権限が変わってしまっていたらしい。
元のHDDはusrを別パーティションにしていたから?よくわからない。
幸い/bin/sudoは問題なく使えたので正常に終了することはできた。
いろいろ粘ってみたけど解決しなかったので、usrだけ削除して再度rsyncでデータ持ってきたら、直った。良かった。