ルートFSイメージに基づいてUbuntuマシンの展開プロセスを設定したいと思います。簡単にフォーマットされたハードドライブに画像を復元したいです(配布中にディスクを完全に消去できます)。
構成を複数に分割するよりも単純に保ちたいです/
。/home
これまでClonezillaを試してみて、回復可能なルートパーティションイメージを正常に作成しました。ただし、このプロセスを使用すると、復元されたルートパーティションが非常に小さくなり、解凍時に基本イメージと同じくらい小さくなります(約20 GB)。実際のハードドライブのパーティションを最大容量まで増やしてから、すべてのシンボリックリンクやその他のアドインを含むファイルシステムを復元したいと思います。
また、パーティションがドライブに復元されたときにドライブにブートローダとブートパーティションを確実にインストールして設定するプロセスを探しています。どこを見るべきですか?dd
これに基づくすべてのプロセスはブロック単位で実行され、ターゲットパーティションをイメージと同じサイズにする必要があるようです。同時に、この方法で展開するマシンのすべてのディスクが同じ容量を持つことを保証することはできません。どのようなアプローチを取るべきですか?おそらく、パーティションの代わりにファイルシステムをバックアップするより高いレベルのイメージングソリューションが必要になるかもしれません。
修正する:可能な設定についていくつかの質問をした後、私の質問はこれにまとめられます。 1 つの手順で次のことを行うパイプラインを構築するには:
- DVD/CDからマシンを起動する
- 空き容量なしでハードドライブをMBR / root / swapとしてフォーマットします。
- 起動可能であることを確認してください
- ネットワークイメージからルートパーティションを複製する
これまで、私たちは次のワークフローを特定しました。
- 小さなディスク(70GB)のイメージを作成します。
- 全体的に復元
- 手動でgpartedと入力し、ルートパーティションがイメージバージョンよりも大きくなるようにパーティションのサイズを変更します。
しかし、2つのディスクを連続して起動します。これは非常に迷惑です。
答え1
ファイルシステムの回復- Bootzillaがどのように機能するかはわかりませんが、基本的に3つのオプションがあります。
デフォルトのブロックデバイスレベル(ファイルシステムの下など)で動作します。複製(例
dd
:)を使用して、元のイメージの正確なコピーを作成します。パーティションのサイズに関係なく、ファイルシステムは元のサイズのままになります(パーティションまたは物理デバイスが元のファイルシステムより小さい場合、深刻な問題が発生する可能性が高くなります)。これは最速のオプションです(デフォルトでは、ソースおよびターゲットデバイスの速度と相互接続速度によってのみ制限されます)。一方、柔軟性が最も低い。結局のところ、異なるサイズのパーティションが必要な場合は、手動で拡張する必要があります(またはスクリプトを作成する必要があります)。さらに、ブロックデバイス全体のイメージを維持すると、スペースが無駄になります(画像には未使用のスペースが含まれていますが、スペースはゼロで埋められ、イメージが圧縮される可能性があります)。
複数の(ほとんど)同じシステムを維持する場合、これは最も複雑ではなく、正しいアプローチです。
働く存在するファイルシステムレベル - 使用中のファイルシステムに付属のツールを使用してコンテンツをアーカイブし、新しくフォーマットされたファイルシステムに復元します。たとえば、次のような場合XFS
xfsdump
、mkfs.xfs
++の組み合わせを使用できますxfsrestore
(詳細はマニュアルページを参照)。少し遅いですが、アーカイブする画像には必要なデータのみが含まれています(無駄なスペースはありません)。これにより、関連するファイルシステムがほとんど空の場合、追加のオーバーヘッド(回復時のファイルシステム構造の更新)を簡単に補うことができます。また、増分スナップショットを作成して展開する機会も提供されます。新しいファイルシステムを作成する追加の手順により、必要なパーティションサイズ(十分に大きいサイズ)を使用し、各ターゲットファイルシステムを特定の要件(ブロックサイズ、メタデータスペースの変更など)に合わせて調整できます。欠点は、ファイルシステムによって異なることです。
tar
またはcpio
(またはrsync
さらにcp
)などの標準ツールを使用し、オプションで圧縮(以前の例のように)を使用してファイルシステムレベルで機能します。基本ファイルシステムを簡単に変更でき、プロセスは非常に簡単です。ツールの動作が大きく異なるため、特殊ファイル(希少ファイル、デバイス/名前付きパイプ)の処理に特別な注意を払う必要があります。また、ファイルシステムの境界を超えないようにする必要があります。
ブートローダー- 別のパーティションを使用しないでください/boot
。代わりに別々のパーティションを検討することをお勧めします/home
。多くの場合、データ用の別々のパーティションを持つことは不要または悪い考えです。
使用されているブートローダーによっては、ディスク全体の複製後も機能することがあります。同じサイズのディスク(パーティションだけでなく!)の最初のオプションですが、通常は「再インストール」が優先されます(とても簡単です)。必要な設定ファイルをすべてコピーすれば、ブートローダインストーラを実行するだけで十分です。
唯一の注意点はどこからブートローダはデータを読み取り、どこ書かれましたか?chroot
新しいファイルシステムを使用してそこからブートローダを実行するのは良い考えかもしれません。現在アクティブなルートファイルシステム(新しく複製されたファイルシステムなど)からバインドマウント/dev
してchroot/proc
できることを確認してください。/sys
注:20 GBのパーティションはかなり大きいです。たとえば、一般的なデスクトップ Linux のインストールは通常 10 GB 未満で、すでにかなりの量のソフトウェアが含まれています。
ユーザーが別のソフトウェアをインストールする場合、または管理者としてコンピュータごとにインストールする場合、その/usr
ソフトウェアは通常ユーザーの自宅に直接配置する必要があります。特にネットワークインストール用のホームディレクトリは便利です。システム固有のプログラムが必要な場所は、/usr/local
簡単に別のパーティションにすることができます。また、キャッシュ/ログを別々に保持するのが最善です。とりわけ、きれいな分離はアクセス権を完全に保ちます。すべてのユーザーが自分のコンピュータに管理者アクセスを必要とするわけではありません(例:多くの例外がありますが、最初は常に非標準と見なされる必要があります)。機械を再イメージ化しても必ずしもすべてが壊れるわけではありません。言い換えれば、特定の部分だけを再イメージングすることもできます。またMKFS DEVICE_OF(/var/chaches)
、rm -Rf /var/caches
必要に応じて、ファイルシステムからキャッシュされたデータのスナップショットを撮る方が簡単です。
欠点は、HDDの平均サイズのため、ディスク領域の断片化(複数のパーティションに分割)が問題にならないことです。