一度失敗したシステム移行
もともとX250のLinuxはnfggのPlextor SSDに載っていたのだが、今回はこれをTranscendの240GBに差し替えることにした。というわけで、怠惰な僕はシステム移行をやらざるを得ない。
システム移行なんて大したことじゃない。旧環境をtarで固めてバックアップするか、そのままコピーして、マウントしてるUUIDを書き換えるだけだ。
ngffのリーダーを持ってないので直接コピーはできず、まず固めるしかない。固めるにはUbuntuのLive CDが必要で、その環境で作業する。
# 古いrootパーティションをマウント。rootはひとつだけ
sudo -s
mkdir /mnt/old
mount /dev/sdb3 /mnt/old
# rootパーティションを固める。ちなみにpoolは元のHDDのマウント先。バックアップを取る都合上、別のディスクにしか置けない
tar czf /mnt/pool/oldubuntu14.04.tar.gz ./*
固め終わったらひとつ注意点。自分はGPT + EFI起動なので、EFIパーティションもバックアップすべきだが、これはそのままコピーすれば済む。固める必要はない。

固め終わったらマシンを開けて新しいディスクを挿し、同じくLive CDから起動。まずGpartでパーティションを切る。普通はroot、efi、swapの3つで、古いディスクと同じ構成にする。その後新しいパーティションをマウントして、固めたファイルを解凍する。
sudo -s
mkdir /mnt/new
mount /dev/sdb3 /mnt/new
cd /mnt/new
tar xzf /mnt/pool/oldubuntu14.04.tar.gz
ついでにefiのファイルもコピーしておく。efiはfatフォーマットで、bootラベルを設定する。
まだ終わりじゃない。多くのwikiには古いMBR起動向けの手順として、chrootしてgrubを入れ直すとか書いてあるが、これは使えないし、そもそも必要ない。新しいディスクに入って元のUUIDが書かれてる箇所を全部書き換えればいいだけだ。

主に直すのはこの辺り。
# ここは起動リスト。基本的に最新のUUIDひとつを直せば、とりあえず入れる
/boot/grub/grub.cfg
# 次にrootのマウント
/etc/fstab
最後に忘れちゃいけないのが、efiパーティションにあるgrub.cfgもUUIDをrootパーティションに合わせて書き換えること。
書き換え完了、起動、成功。そして入ってみたらIntelのGPUドライバモジュールが死んでた……
他の方法では特に問題なかったのに、そのモジュールだけはどうしても上がってこない。最後に散々いじくり回してやっと上がったが、記録も残してないし、システムも原型を留めてない感じで、元のバックアップも見つからない。どこかで切り取ったらしい。

もうこれ以上やる意味はないなと思って、作り直すことにした……以前のメモを見ながらやればやり直しは早い。最初から入れ直せばよかった。
というわけで、これは一度失敗したシステム移行の話である……
コメントは中国語の本家サイトで受け付けています。このミラーは閲覧専用です。