Tag: バックアップ Tag: dump Tag: restore

Ubuntu、Linuxのシステムバックアップ

システム全体のバックアップ

 標準的なコマンドとしては、dumpとrestoreを使う方法が紹介されていると思います。ハードディスクが故障して新しいハードディスクにrestoreする場合は、OSのブートを行うMBRも設定しなければならない。以下などを参考にするといいと思われる。なお、WEBサイトには間違いもあるので、鵜呑みにせずに良く読んで不明な部分を解決し、まずはテスト環境でデータを戻してから本番環境で実行する事をお勧めします。基本的にrestoreはライブCDで起動し、バックアップ元、バックアップ先を手動でマウントして作業します。起動したUbuntuに上書きするような形でrestoreはしません。Cronezillaなどのバックアップ用に調整されたライブCDはデータのある部分のみを効率よく取得し、バックアップ元とバックアップ先の領域のサイズが多少違ってもリストア出来るようになっています。

様々なバックアップ方法があります。以下などを参考に確実にバックアップ、リストア出来る方法で運用してください。

上記URLに、tarでバックアップする方法が、以下にあります。これは、起動したシステムの/以下をバックアップする方法になると思います。少し情報が古いですが、これで問題無ければ、この方法が処理しやすいかもしれません。ただし、新しいハードディスクを利用しての復元(リストア)ではGRUBのインストールが必要ですし、swapパーティーションも適切に作成、設定します。
https://wiki.ubuntulinux.jp/UbuntuTips/Others/BackUpAndRestore

 原文と思われる以下のURLには更に詳しくtarコマンドを利用した場合のバックアップについて説明があります。
https://help.ubuntu.com/community/BackupYourSystem/TAR

【注意】 リストアの際で、新しいHDDにリストアする時などファイルシステムをmkfs.ext4などで初期化する必要がある場合には、ライブCDなどを使ってパソコンを起動しますが、ライブCDで利用するファイルシステム管理プログラムのファイルシステムのサポートしているバージョンとリストアされるそのバージョンに大きさ差があるとシステムが起動しない事があります。したがって、リストアの際には、そのOS(Ubuntu)のバージョンのライブCDで起動して作業をして下さい。そうすると概ねバージョンが大きく異なることはなく、ファイルシステムのサポートされるバージョンの差異によるトラブルを回避出来ます。




バックアップ(保存)先のメディア、機器

同一PC内

別のPC、サーバー、NASなど

NAS

RAID1のミラーリングなどが出来るNASがお勧めです。




LVM利用のバックアップを使わない環境へリストア

2020-09-28

 通常のtarを利用したシステム全体のバックアップをリストアする要領で戻したが、GRUB2によるブートが出来なかった。GRUB2自体のハードディスクの例えば/dev/sdaにインストールでエラーは出なかった。GRUB2の起動するOSの一覧メニューも出てきた。起動しようとすると、/root/proc がマウント出来ない云々と出てきた後にメンテナンスモードのようなものが起動した。
 GRUBの設定関係が環境が変わったことに対応していないと思われるがどのように変更したらよいのでしょうか。

駄目な時の処理の概要メモ

  • ishimaru@192.168.1.xxx ですが、バックアップしたい元のPCがIPアドレス192.168.1.xxxで動作していて、ishimaruユーザーはsudoが可能なユーザー。
  • SSHのポートは7821にしている。
RescueCD でリストアするPC(ここでは仮想環境内)起動
/dev/sda にext4とswapを作成
/dev/sda1 を /mnt にマウント
cd /mnt
ssh -p 7821 ishimaru@192.168.1.xxx "sudo -S tar cvplf - --exclude=/proc  --exclude=/lost+found --exclude=/mnt --exclude=/sys --exclude=/tmp /" | tar xvpl
 
GRUB2をインストールするので・・・
mkdir  proc  lost+found  mnt  sys  tmp
mount  --bind  /dev/ /mnt//dev/
mount  --bind  /sys/ /mnt/sys/
mount  -t  proc  none  /mnt/proc/
chroot  /mnt/   /bin/bash
export PATH=/bin:/usr/sbin:$PATH
grub-mkconfig   -o   /boot/grub/grub.cfg
grub-install /dev/sda
 
/etc/fstab を今回のシステムに合わせる
/etc/network/inerfaces の IP アドレスは、192.168.1.xxx以外にする
 
exit
umount /mnt/proc
umount /mnt/sys
umount /mnt/dev
 
cd /
umount /mnt
 
そして再起動するが・・・正常起動しなかった。

起動させるために

Ubuntuの同じバージョンを新たにインストール

openssh-server
apache2
postgresql
postfix
をapt install でインストール。

ssh -p 7821 ishimaru@192.168.1.xxx "sudo -S tar cvplf - \
  /home /root \
  /etc/passwd /etc/shadow /etc/group \
 /etc/ssl \
  /etc/ssh/sshd_config \
  /etc/apache2 \
  /etc/letsencrypt \
  /etc/postgresql \
  /var/lib/postgresql \
  /etc/postfix \
  /var/spool/cron/crontabs" \
 | tar xvpl