注意:誤記などが残っている可能性があります。間違いを見つけた場合はご連絡ください。
Ubuntuの一式バックアップとリストア
ハードディスクにインストールしたUbuntuをtarコマンドを使ってバックアップ、新しいハードディスクにリストアし起動できるようにする。
Ubuntuは、1TB程度のハードディスクにインストール
領域を3つ確保。全てプライマリー領域とする。
1・・・ext4、/ にマウントしてUbuntuをインストール。30GB程度を確保する。
2・・・SWAP。8GB程度を確保。
3・・・1,2を利用した残り。ext4、データバックアップの作業、保管場所として利用。
1=> /dev/sda1 ---- バックアップするのはここのみ
2=> /dev/sda2
3=> /dev/sda3
バックアップ先として、USBメモリ、またはスマートメディアの64GB程度のものを利用する。
バックアップ
1. Ubuntu16.04のライブCD(インストールCD)より起動する
2. ターミナルを起動し、sudo -i などでroot(管理者)になる
3. バックアップする領域をマウントします。
マウントポイントを作成
# mkdir /mnt/sda1
マウントする
# mount /dev/sda1 /mnt/sda1
確認
# mount
# df -h
4. バックアップ先をマウントします。
ハードディスクの次の記憶装置の為に、/dev/sda の次という事で /dev/sdb などとして認識される事が多い。メモリを本体に接続します。/dev/sdb1 として利用可能になっているものとします。
マウントポイントを作成
# mkdir /mnt/sdb1
マウントします
# mount /dev/sdb1 /mnt/sdb1
確認
# mount
# df -h
5. バックアップします
カレントフォルダを移動します
# cd /mnt/sda1
ファイルをメモリに保存します
# tar cvpzf /mnt/sdb1/backup.tar.gz --exclude=./proc --exclude=./lost+found --exclude=./mnt --exclude=./sys .
※ 最後のドットがあります。
6. マウントして二つをアンマウントしメモリを適切に取り外す
カレントフォルダを移動
# cd /
アンマウント
# umount /mnt/sdb1
# umount /mnt/sda1
起動しているUbuntuをバックアップ
CDから起動し直しせずに、内容を一式保存するのも概ね同様の考え方で可能です。tarコマンドを利用した上記と同様の方法でバックアップする場合は、開始してから終了するまでに数分掛かります。その間にファイルの更新が行われないようにしてください。タイミングによっては、動作している業務システムのデータに矛盾が生じることがあります。
本体HDDは/dev/sdaに 区画sda1, sda2(スワップ) ,sda3(バックアップ等作業)として利用し、USBは/dev/sdb1 として認識しているものとします。
1.業務システム等を停止します。
2.USBなどのバックアップメディアを本体に接続します。
USBは利用できる状態であれば、自動認識し /media/以下にマウントされてます。ここでは、一度umountして、/mnt/sdb1 としてマウントし直します。
# umount /dev/sdb1 # mkdir /mnt/sdb1 <--- 作成されていない場合 # mount /dev/sdb1 /mnt/sdb1 # mount <--- 確認します
3./mnt/sdb1/backup.tar.gzとしてファイルを保存
# tar czvpf /mnt/sdb1/backup.tar.gz --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys /
4.USBをアンマウントし、本体より外す
# umount /dev/sdb1 # mount <--- 確認します
リストア
新しいハードディスクは、バックアップしたハードディスクと同様の領域を作成します。
Ubuntu16.04のインストールCDより起動し、sudo -i で管理者(root)となり作業を行います。
領域作成は、fdiskにより領域確保、初期化を行う。ハードディスクは/dev/sda として認識されていると仮定。
1.fdisk による パーティションの作成
2.作成した利用域を初期化
# mkfs.ext4 -c /dev/sda1
# mkfs.ext4 -c /dev/sda3
# mkswap -c /dev/sda2
ハードディスク、バックアップデータのあるメモリをマウントします。メモリは/dev/sdbとして認識されているものとします。
マウントポイントを作成します。
# mkdir /mnt/sda1
# mkdir /mnt/sdb1
マウントします。
# mount /dev/sda1 /mnt/sda1
# mount /dev/sdb1 /mnt/sdb1
データをメモリからハードディスクに戻す(リストア)
カレントフォルダを移動
# cd /mnt/sda1
# tar xvzpf /mnt/sdb1/backup.tar.gz
バックアップ時に除外していたシステムが管理するフォルダ等を作成
# mkdir proc
# mkdir lost+found
# mkdir mnt
# mkdir sys
ブートローダー、ここではGRUBをインストールする
# mount --bind / dev/ /mnt/sda1/dev
# mount --bind /sys/ /mnt/sda1/sys
# mount -t proc none /mnt/sda1/proc
# chroot /mnt/sda1 /bin/bash
# grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-32-generic-pae
Found initrd image: /boot/initrd.img-2.6.32-32-generic-pae
Found linux image: /boot/vmlinuz-2.6.32-28-generic-pae
Found initrd image: /boot/initrd.img-2.6.32-28-generic-pae
Found memtest86+ image: /boot/memtest86+.bin
done
# grub-install /dev/sda
Installation finished. No error reported.
# exit
- grub-mkconfig での表示例(特に数字の部分)は実際にインストールされているLinuxのカーネルバージョンなどにより変化します。上記は一例です。
- grubとLinuxの起動についての基礎知識は次のURLなどでおさらいしておきます。
gihyo.jp: http://gihyo.jp/dev/serial/01/sc-literacy/0013
日経 xTECH: https://tech.nikkeibp.co.jp/it/article/COLUMN/20061025/251720/
/etc/fstab の編集
UUID= でのハードディスクの領域指定は、バックアップしたハードディスクのユニークな
情報による指定方法であるので、「UUID=f5c00898-df5f-487b-ac37-e5d9280574e7」の形式の指定をfstabのマウントポイントの指定から判断して、「/dev/sda1」、「/dev/sda2」、「/dev/sda3」に置き換えます。
# umount /mnt/sda1/sys
# umount /mnt/sda1/proc
# umount /mnt/sda1/dev
# umount /mnt/sda1
# umount /mnt/sdb1
IPアドレスの設定方法、管理によっては、管理ファイルを変更する必要があるかもしれません。
CDを抜いて再起動します。
robootすると、画面に適切なタイミングでCDを取り出しのメッセージが表示されます。
Ubuntu14.04の場合は、ネットワークのデバイス名がマックドレスで予約される
14.04では、再起動後にネットワークデバイス名が予約済みとなり、思ったようにネットワークアドレスが設定出来ない事があります。その場合は、起動後に、/etc/udev/rules.d/70-persistent-net.rules ファイルの設定をコメントとし、予約を無効にしてください。
更新履歴
- 2018-07-13 Ubuntu14.04の場合の/etc/udev/rules.d/70-persistent-net.rules ファイルの説明を追加
- 2018-07-13 「起動しているUbuntuをバックアップ」の補足を追加
- 2018-07-09 誤記についての注意を追加
- 2018-07-08 WEB等をまとめて本ページを作成