nmtysh.log

Tech系のネタや日々の独り言などを書いています。

Ubuntuのデータを別のDiskへコピーする(引っ越し)

Ubuntuのデータを別のDiskへコピーする HDDのお引越しをしました。(sdbからsdaへ引っ越し)

環境: Ubuntu 14.04 LTS 32bit
必要なもの: LiveCDもしくはLiveUSB, 現在使用しているデータ量より大きいDisk(パーティション)

0. 事前準備

LiveCD もしくは LiveUSB(以下、LiveCD) を準備します。
現在使用しているデータ量よりも大きいext4フォーマット済みのパーティション(Disk)を用意します。


1. rsyncでコピー

LiveCD で起動して移行前、移行後のパーティションをそれぞれマウントします。
マウントできたらrsyncでコピーします。
予めパーティションにラベルをつけておくとコマンドで指定するパスが短くなるのでお勧めです。

rsync -aAXHxShv --append --partial --timeout=600 --bwlimit=0 \
    --stats --progress --preallocate \
    /media/ubuntu/Ubuntu/ \
    /media/ubuntu/ba00bbb9-28d9-47c7-9086-02992c2e679e

この例では Ubuntu パーティション(移行前)から、新しいパーティション(ラベルなしのためマウントポイントにUUIDが使用されている) へコピーしています。


2. /etc/fstab 修正

移行後のパーティションからUbuntuを起動するために、/etc/fstabのエントリを新しいパーティションへ変更します。
まず、UUIDを調べます。

root@ubuntu:~# blkid
(一部抜粋)
/dev/loop0: LABEL="Ubuntu 14.04 ja amd64" TYPE="iso9660" 
/dev/loop1: TYPE="squashfs" 
/dev/sda1: UUID="ba00bbb9-28d9-47c7-9086-02992c2e679e" TYPE="ext4" 
/dev/sda6: UUID="17230e9d-98ef-45ed-b173-2f5351864bbb" TYPE="swap" 
/dev/sdb1: LABEL="Ubuntu" UUID="09851018-3599-44da-abda-c5962e23c880" TYPE="ext4" 
/dev/sdb6: UUID="119615e5-048e-44f4-a066-7dbd1f44032e" TYPE="swap" 


swapパーティションも忘れずに変更してください。

root@ubuntu:~# cat /media/ubuntu/ba00bbb9-28d9-47c7-9086-02992c2e679e/etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/sda1 during installation
UUID=ba00bbb9-28d9-47c7-9086-02992c2e679e /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda6 during installation
UUID=17230e9d-98ef-45ed-b173-2f5351864bbb none            swap    sw              0       0


3. grub2のインストール

新しいDiskから起動できるようにgrub2をインストールします。
このままではインストールできないので、新しいパーティションchrootします。
その際に、/proc や /dev, /sys などを新しいパーティション配下へbindしてあげます。

root@ubuntu:~# mount --bind /proc /media/ubuntu/ba00bbb9-28d9-47c7-9086-02992c2e679e/proc 
root@ubuntu:~# mount --bind /dev  /media/ubuntu/ba00bbb9-28d9-47c7-9086-02992c2e679e/dev
root@ubuntu:~# mount --bind /sys  /media/ubuntu/ba00bbb9-28d9-47c7-9086-02992c2e679e/sys
root@ubuntu:~# chroot /media/ubuntu/ba00bbb9-28d9-47c7-9086-02992c2e679e/


chrootできたらgrub2をインストールします。
インストールした後に update-grub を実行してエントリを更新します。

root@ubuntu:/# grub-install /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.

root@ubuntu:/# update-grub
Generating grub configuration file ...
Linux イメージを見つけました: /boot/vmlinuz-3.13.0-45-generic
Found initrd image: /boot/initrd.img-3.13.0-45-generic
Linux イメージを見つけました: /boot/vmlinuz-3.13.0-44-generic
Found initrd image: /boot/initrd.img-3.13.0-44-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin


4. 再起動

LiveCDを終了してPCを再起動したら新しいパーティションから起動できます。