14000枚の写真をデータ損失ゼロでZimaCube 2に移行する方法 — Immich移行ガイド

エヴァ・ウォンテクニカルライター であり ZimaSpaceの常駐ティンカーでもあります。 生涯のオタクであり、 ホームラボとオープンソースソフトウェアに情熱を持っています。彼女は複雑な技術的概念をわかりやすく、 実践的なガイドに翻訳することを専門としています。エヴァはセルフホスティングは楽しくあるべきで、怖がるものではないと信じています。彼女のチュートリアルを通じて、コミュニティが ハードウェアのセットアップを解明する手助けをしています。初めてのNAS構築からDockerコンテナの習得まで。

💡 コミュニティスポットライト:u/Ambitious_Shallot_79、r/minilab

あなたには写真ライブラリがあります。何年もの思い出。丁寧に整理したアルバム。タグ付けした顔。家族に送った共有リンク。

その後NASをアップグレードすると、ファイルを移動するだけでは不十分だと気づきます。データベースがなければ、すべてのアルバム、顔タグ、思い出が失われます。写真はあっても整理が消えてしまいます。

DIYのZimaOSサーバーからZimaCube 2へ、14,505枚の写真と925本の動画、合計134 GiBを移動しました。すべてのアルバムが無事で、すべての顔タグも引き継がれました。共有リンクもすべて機能しています。

ここでは私が実際に行った方法、ほぼ失敗しかけたこと、そして旧環境ではできなかったZimaCube 2の強みを紹介します。

なぜImmichか、なぜ今か

Immichがセルフホスト型の写真ソリューションとして支持される理由があります。Googleフォトレベルの機能—顔認識、意味検索、自動バックアップ(スマホから)、共有アルバム—を提供しつつ、写真を他人のサーバーに送ることはありません。

しかしImmichの魂はPostgreSQLにありますデータベースにはアルバム、顔のベクトル、人物クラスタ、スマート検索用のCLIP埋め込み、そしてライブラリをあなたのものにするすべてのメタデータが保存されています。データベースなしでファイルだけを移動すると、写真の入ったフォルダと空のImmichインスタンスが残るだけです。

この移行には一つのルールがありました:データ損失ゼロ。新しいサーバーが検証されるまでは古いサーバーは消去しません。

Immichが実際に保存しているもの(そしてそれが重要な理由)

ファイルに触れる前に、移動すべきものを正確にマッピングしました:

コンポーネント 場所 内容 移行が必要ですか?
pgdata /DATA/AppData/immich/pgdata 完全なPostgreSQL — アルバム、顔、人物、メタデータ ✅ 重要
model-cache /DATA/AppData/immich/model-cache ダウンロード済みのCLIP/顔認識モデル ✅ 再ダウンロードを防止
写真ライブラリ /DATA/Gallery/immich 14,505枚の写真 + 925本の動画 + サムネイル(134 GiB) ✅ 実際のメディア
自動バックアップ /DATA/Gallery/immich/backups 過去14日分のデイリーデータベーススナップショット 💡 すでに存在します
🎁 pgdataディレクトリを除く写真ファイルのみを移動すると、すべての写真は手に入りますが、アルバム、顔タグ、人物、思い出、共有リンクは一切含まれません。ImmichはPostgreSQLを真実の情報源として扱います。両方を一緒に移動する必要があります。

Immichは毎日午前2時に自動でデータベースのバックアップを作成し、バックアップディレクトリに最新の14件を保持します。手動でダンプを実行する前に、最近の自動バックアップがすでに存在しているかどうかを確認してください

方法:ZimaOS Filesアプリ(LANコピー)

両方のマシンは同じLAN上でZimaOSを実行しています。つまり、内蔵のFilesアプリを使って直接LAN転送が可能でした—外部ドライブもSCPコマンドも中間ストレージも不要です。

ステップ1:ソースマシンをマウントする

ZimaCube 2でFilesアプリを開き → +ストレージ追加 → LANストレージ → ソースマシンのローカルIPを入力して認証します。これでソースマシンのファイルシステムがZimaCube 2上で参照可能なストレージとして表示されます。

ステップ2:ソースでImmichを停止する

このステップを飛ばして後悔する人が多いです。コピー前にImmichを停止してください。稼働中のPostgreSQLは常に書き込みを行っているため、データベースを一貫性のあるフラッシュ済み状態にする必要があります。ソースマシンで:ZimaOS App Store → Immich → 停止。

ステップ3:両方のディレクトリをコピーする

ZimaCube 2のFilesアプリから、マウントされたソースに移動して以下を選択します:

ソースパス ZimaCube 2の宛先パス
/DATA/AppData/immich /DATA/AppData/immich
/DATA/Gallery/immich /DATA/Gallery/immich

両方の場所を選択し、「移行」を押します。選択肢は「宛先で上書き」と「ソースで元のまま保持」— 検証が完了するまでソースは削除しないでください

ZimaCube 2の2.5GbE接続を使い、134 GiBの転送が約10〜15分で完了しました。私の古いDIYサーバーは1GbEでしか接続できず、同じ転送は30〜40分かかっていたでしょう。これはスペック表には現れない、しかしデータ移動のたびに重要な実際の違いです。

ステップ4:ZimaCube 2にImmichをインストールする

ZimaOS App Storeを開き、Immichを検索してください。重要な警告:App Storeには複数のImmichバリアントが表示されることがあります。ソースマシンで使用しているまったく同じバリアントをインストールする必要があります。

Immich(公式ZimaOS/CasaOSアプリ)— 以前に使用していた場合はこちらを使ってください

BigBearCasaOS Immich — docker-composeの変数が異なり、postgresの認証情報やデータベース名も異なるため、公式アプリからの直接pgdataコピーとは互換性がありません

🔑 docker-composeの変数—postgresのユーザー名、パスワード、データベース名、ネットワークモード—はアプリ定義に組み込まれています。ソースと宛先のアプリバリアント間で不一致があると、Immichが復元されたデータベースに接続できなくなります。これはImmichの移行で最も一般的な失敗ポイントです。

インストール後、すぐにアプリを起動しないでください。Immichは初回起動時に既存のpgdataディレクトリを検出し、新しい空のデータベースを初期化する代わりにそれに接続します。

NASセットアップ中にZimaOS / CasaOSアプリストアで「immich」アプリを検索

ステップ5:既存の資格情報でログイン

http://192.168.x.x:2283でImmichを開き、元のインスタンスと同じユーザー名とパスワードでログインします。あなたの完全なライブラリ—アルバム、顔、人物、設定—はそのままです。

Immichアプリケーションのウェルカムスプラッシュ画面と、データベース移行成功後の開始ボタン

ステップ6:ジョブキューの確認

プロフィール → 管理 → ジョブキューに移動します。pgdata移行後、データベースにはすでに以前処理された結果がすべて含まれているため、ほとんどのキューはアクティブ: 0 / 待機: 0を表示するはずです。

Missingのカウントがあるキューがあれば、Missingボタンをクリックして未処理の資産のみを処理してください:

キュー 実行すべきタイミング
サムネイル生成 プレビューが空白の写真がある場合
メタデータ抽出 GPS/位置情報/日付が欠落している資産がある場合
スマート検索 セマンティック検索で結果が返らない場合
顔検出 顔データが不完全に見える場合

移行統計

指標 価値
移行された写真 14,505
移行された動画 925
総データ量 134 GiB
転送時間(2.5GbE) 約12分
アルバムは保持されます すべての
顔タグは保持されます すべての
共有リンクは保持されます すべての
データ損失 ゼロ

なぜZimaCube 2がこれを実行する価値があったのか

単に同じ体験に移行したわけではありません。ZimaCube 2は、私の古いDIY ZimaOSボックスでは実現できなかった3つのアップグレードをもたらしました:

2.5GbE転送。写真ライブラリは増え続けます。すべてのフルバックアップ、大量のインポート、移行は、標準ギガビットの2.5倍の帯域幅の恩恵を受けます。ZimaCube 2のデュアル2.5GbEにより、バックアップを最大限に活用しつつ、ネットワークの他の部分は応答性を保てます。

データベース用のNVMeストレージ。ImmichのPostgreSQLデータベースは、HDDよりもNVMeで劇的にパフォーマンスが向上します。サムネイル生成、スマート検索クエリ、顔認識など、すべてpgdataから読み取られます。ZimaCube 2のNVMeプール上では、以前HDDで遅延していたデータベース操作が即時に行われます。

6ベイの拡張性。 現在134 GiB。来年はどうでしょう?ZimaCube 2は6つのSATAベイに加え、7番目のベイに4つのM.2スロットを備えており、この写真ライブラリは数年間ストレージの壁にぶつかることなく成長できます。

IceWhale ZimaCube 2 6ベイNASは、高性能セルフホストストレージのための前面ホットスワップドライブベイを備えています

写真ライブラリをZimaCube 2に移行する →

セルフホストの写真環境を構築中ですか?当社のパーソナルクラウドストレージデバイスガイド、ZimaCube 2でのDocker&CI/CDの詳細解説、そしてZimaCube 2 Pro開封レビューをお読みください。

よくある質問

アルバムや顔タグを失わずにImmichをZimaCube 2に移行できますか?

はい — ただし、写真ファイルとpgdataディレクトリ(PostgreSQLデータベース)の両方をコピーする必要があります。データベースにはすべてのアルバム、顔のベクトル、人物クラスタ、メタデータが保存されています。写真だけを移動すると、整理されていないファイルだけが残ります。両方のディレクトリを一緒にコピーすれば、ライブラリは完全に保持されます。

ImmichデータをZimaCube 2に転送する最速の方法は何ですか?

両方のマシンが同じLAN上でZimaOSを実行している場合は、内蔵のFilesアプリのLANストレージマウント機能を使ってください。ZimaCube 2の2.5GbE接続を使うと、134 GiBの転送は約10〜15分で完了します。より大きなライブラリや異なるネットワーク上のマシンの場合は、外付けUSBドライブが次善の選択肢です。

移行時にImmichのアプリストア版は重要ですか?

はい — これは非常に重要です。ZimaOSアプリストアには複数のImmichバリアント(公式版とBigBearCasaOS版など)が表示されることがあります。これらは異なるdocker-compose変数(postgresの認証情報、データベース名、ネットワーク設定)を使用しており、互換性がありません。ソースマシンとまったく同じバリアントをインストールしてください。そうしないと復元したデータベースが接続できません。

コピー前にソースのImmichを停止する必要がありますか?

はい。稼働中のPostgreSQLインスタンスは継続的に書き込みを行います。ライブデータベースのコピーは不整合な状態になるリスクがあります。ソースマシンでImmichを停止し、フォルダをコピーしてから、宛先で起動してください。移行を確認するまで、ソースマシンはオフのままでもバックアップとしてオンのままでも構いません。

ImmichはZimaCube 2でどれくらいのストレージを必要としますか?

写真ライブラリのサイズに加え、ライブラリとともに増加するPostgreSQLデータベース、サムネイルキャッシュ、およびトランスコード済みビデオバージョンのための余裕も計画してください。14,500枚の写真を含む134 GiBのライブラリは、オーバーヘッドを含めて合計約150〜160 GiBを使用します。ZimaCube 2の6つのSATAベイは、拡張の余地を提供します。

Zimaキャンペーンハブ

もっと読む

IkeaのKallaxを10インチラックのホームラボに変えて、ZimaCube 2を使いました
Jul 08, 2026Community & Stories

IkeaのKallaxを10インチラックのホームラボに変えて、ZimaCube 2を使いました

ラックマウント型のホームラボは魅力的に聞こえますが、リビングルームに企業用ジェットエンジンのような騒音が侵入するのは避けたいものです。10インチミニラックのムーブメントはその解決策です。コンパクトなハードウェアとカスタム3Dプリントを使い、イケアのKallaxキューブ1つに完全に収まる、静かで高性能なホームラボの作り方を詳しく解説します。

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.