ubuntu
カテゴリ
Ubuntu Server クリーンインストール
2026/08/12 09時'install'
Ubuntu Server の構築を終え、多少のトラブルはあるものの順調に動作している、これだけ依存してしまうと、Lenovo ThinkPad L380 の故障で止まってしまうと辛いので、予備機の購入と並行して、バックアップからのクリーンインストールでリストアがスムーズに行えるようにする。

毎日のバックアップは以下の通り行っている。

ファイル内容生成元
docker_backup_*.tar.gz/mnt/data/docker 全体(immichを除く)。EPGStation/Mirakurun/Vaultwarden/PassManager/AdGuard/whisper等、各サービスのdocker-compose.ymlとデータを含むdaily_backup.sh
home_backup_*.tar.gz/home/vafee(キャッシュ・ビルド成果物系を除く)daily_backup.sh
apache_backup_*.tar.gzApacheのsites-available/sites-enabled、vafee-serverのconfdaily_backup.sh
systemd_backup_*.tar.gzhls-*.service、pcscd関連、cloudflared.serviceなど個別unitファイルdaily_backup.sh
hostconf_backup_*.tar.gz/etc/msmtprc、/etc/fstab、/etc/apt/preferences.ddaily_backup.sh
vaultwarden_backup_*.tar.gzVaultwardenのvw-data(docker_backupにも含まれる、単体復旧用の予備)daily_backup.sh
passmanager_backup_*.tar.gzPassManagerのDB・鍵情報(同上、予備)daily_backup.sh
cert_backup_*.tar.gz.gpgLet's Encryptワイルドカード証明書、ts.net証明書、Cloudflare APIトークン(GPG暗号化)daily_backup.sh
crontab_user/root_*.txtvafee・rootそれぞれのcrontab内容daily_backup.sh
D:\Ubuntu-sv BackUP\scripts\/mnt/data/backup/scripts/ 配下のスクリプト一式(daily_backup.sh、encode_host.sh、tv_bak_move.py等)amatsukaze_send_5.ps1
D:\JPEG\immich\Immichライブラリ(写真本体)amatsukaze_send_5.ps1

■Ubuntu Server インストール 環境整備













■ TV録画ワークディレクトリの作成

外付けSSDにワークディレクトリーを作成していたが、IO負荷を下げるために、内蔵SSDに作成することとした。
mkdir -p /home/vafee/work_jls

■ Python3 インストール

ホストにPython3 をインストール
sudo apt update && sudo apt upgrade
sudo apt install python3.9


■Apache 2 インストール

ホストにApache 2 をインストール
sudo apt install apache2 -y
sudo systemctl enable apache2
sudo systemctl start apache2
sudo a2enmod cgi

以前Windowsでのcgiファイルは shift-JIS を使用していたが、Ubuntu Server は、UTF-8に変換するので nkf(Network Kanji Filter)をインストール
sudo apt update && sudo apt install nkf -y

■ホスト設定設定の復元

外付けSSDは使用に問題なくそのまま使用する場合 YYYYMMDD は、最新日付に置き換える
cd /mnt/data/backup

sudo tar -xzf hostconf_backup_YYYYMMDD.tar.gz -C /
sudo mount -a   # fstabの内容を反映

手動追記したfstabの外付けSSD行と、ここで復元されるバックアップ内のfstabが重複・矛盾しないか確認すること。外付けSSDは同一ディスクなのでUUIDは変わっていないはずだが、念のため cat /etc/fstab で内容を確認してから mount -a するとよい

■Dockerサービスの復元

mnt/data/docker 配下のデータ自体は外付けSSD上にそのまま残っている(=docker_backup_*.tar.gzを展開し直すと、むしろ古いバックアップ時点の状態で上書きしてしまう恐れがある)。必要なのはDockerエンジン自体の再インストールと、コンテナの作り直しだけ。
cd /mnt/data/backup 

# Dockerエンジンを新規インストール(内蔵SSD側のソフトウェアなので必須)
sudo apt update
sudo apt install -y docker.io docker-compose-plugin
sudo systemctl enable --now docker
 
# 各サービスディレクトリで、既存の docker-compose.yml とデータをそのまま使ってコンテナを作成
cd /mnt/data/docker/epgstation && sudo docker compose up -d
cd /mnt/data/docker/vaultwarden && sudo docker compose up -d
cd /mnt/data/docker/passmanager && sudo docker compose up -d
cd /mnt/data/docker/adguard      && sudo docker compose up -d
cd /mnt/data/docker/vafee-server && sudo docker compose up -d
# ...他の稼働中サービスも同様に、/mnt/data/docker/ 配下の各ディレクトリで実行
 
# 再起動時の自動起動は各docker-compose.ymlのrestart設定(restart: always / unless-stopped)で
# 既に賄われているため、up -dを一度実行すれば以降は再起動のたびに自動で立ち上がる。
# 念のため現在起動中の全コンテナに再適用して確認したい場合:
docker update --restart unless-stopped $(docker ps -q)
※ /mnt/data/docker配下の実際のサービス名(ディレクトリ名)は上記例と異なる場合があるので、ls /mnt/data/docker で実在するディレクトリを確認してから1つずつ実行すること。


■その他の復元

cd /mnt/data/backup 

#Apache
sudo tar -xzf apache_backup_YYYYMMDD.tar.gz -C /
sudo a2ensite internal-vafee-lab.conf   # 有効化状態を確認
sudo systemctl reload apache2

#systemdサービス
sudo tar -xzf systemd_backup_YYYYMMDD.tar.gz -C /
sudo systemctl daemon-reload
sudo systemctl enable --now cloudflared encode-watcher   # 必要なものを有効化

#ホームディレクトリ
tar -xzf home_backup_YYYYMMDD.tar.gz -C /

#crontab
crontab crontab_user_YYYYMMDD.txt
sudo crontab crontab_root_YYYYMMDD.txt
 
# 反映確認(それぞれ内容が表示されればOK)
crontab -l
sudo crontab -l

#cert_backup(GPG暗号化、要復号)
# Bitwardenから「ubuntu-sv cert_backup 復号用パスフレーズ」を取得し、まず新規作成
sudo mkdir -p /root/.secrets
sudo bash -c 'echo "(Bitwardenから取得したパスフレーズ)" > /root/.secrets/backup_passphrase'
sudo chmod 600 /root/.secrets/backup_passphrase
 
gpg --batch --yes --passphrase-file /root/.secrets/backup_passphrase \
    -d cert_backup_YYYYMMDD.tar.gz.gpg > cert_backup_YYYYMMDD.tar.gz
sudo tar -xzf cert_backup_YYYYMMDD.tar.gz -C /


■スクリプトの復元

外付けSSDが健全なので、/mnt/data/backup/scripts/ 自体は最初から存在している。Windows機から取得し直す必要はない(7章参照)。念のため実行権限だけ確認しておく
cd /mnt/data/backup/scripts

chmod +x /mnt/data/backup/scripts/*.sh

記事一覧