私は、常にまったく同じパーティションレイアウトでドライブを作成する必要があるアプリケーションに取り組んでいます。私の最初の考えは、sfdiskで元のドライブのパーティションテーブルを一度ダンプすることでした。
sfdisk -d /dev/sdX > parttable
そしてそれを他のすべてのドライブに適用します:
sfdisk /dev/sdX < parttable
しかし、この方法は機能していないようです。 USBドライブから正しいパーティションテーブルをダンプし、gpartedでランダムパーティションをいくつか作成して、最初のパーティションテーブルをドライブに書き戻そうとしました。
しかし問題は、パーティションが認識されないことです。たとえば、Gpartedはパーティションを不明としてリストします。パーティションテーブルにはファイルシステムに関する情報が格納されていないため、作成したパーティションをフォーマットする必要があると考えました。
私の質問は次のとおりです。パーティションテーブルとパーティションに関する情報(ファイルシステムなど)を何らかの方法で保存し、この方法で(最大で1つのコマンドで)新しいドライブを作成できますか。
ところで:msdos partiontable
編集:別の方法としては、ドライブ(parttable、ファイルシステムなど)に関するすべてのデータを自分で収集し、コマンドを手動で作成します。 1つのコマンドでパーティションテーブルを作成し、複数のパーティションをフォーマットすることは(おそらくpartedで)可能ですか?
次の条件での作業:
/dev/sdx
です/dev/sdy
になります/dev/sdy4
になります/dev/sdy1
にマウントされ、最終的なシステムでは/boot
にext3
ファイルシステムがマウントされます。/dev/sdy2
に/
にマウントされ、最終的なシステムではext4
ファイルシステムにマウントされます。/dev/sdy3
ファイルシステムを使用した最終システムの/home
にext4
マウントされます。master_system.tar.gz
にtarで圧縮されています。root
ではなくSudo
として実行されますが、rootとしてログインするか、ターミナルでsu
としてログインしますdupe_mnt
ディレクトリがあります元のディスクのパーティション構造を「コピー」するには、構造が変更されない限り、一度だけ必要です。
sfdisk --dump /dev/sdx > master_table
あなただけが、問題のシステムで、マスターとして機能するDebianシステムから何をコピーするかを決定できるので、私はそのいずれにも入りません。 /proc
、/dev/
、および/sys
ディレクトリをコピーしないことは承知しておりますが、他のディレクトリは除外する必要があります。そのアーカイブを任意の方法で作成し、master_system.tar.gz
という名前を付けます。これには、/boot
および/home
ディレクトリを含める必要があります。それだけです。コピーするDebianシステム、またはディスクのパーティションを変更するまで、セットアップは行われます。
作成するスクリプトは、sys_replicate.sh
と呼ばれます。
#!/bin/sh
target=$1;
sfdisk /dev/${target} < master_table;
# Format the swap partition
mkswap /dev/${target}4;
# Format the data partitions
mkfs.ext3 /dev/${target}1;
mkfs.ext4 /dev/${target}2;
mkfs.ext4 /dev/${target}3;
# Mount the target root filesystem and its parts
mount /dev/${target}2 dupe_mnt;
mount /dev/${target}1 dupe_mnt/boot;
mount /dev/${target}3 dupe_mnt/home;
# Copy the master system to the target
cd dupe_mnt;
tar -zxvpf ../master_system.tar.gz;
cd ..;
# Unmount the new system
cd ..
umount /dev/${target}3;
umount /dev/${target}1;
umount /dev/${target}2;
#done
ファイルsys_replicate.sh
にはexecute
ビットを設定する必要があります。 chmod +x sys_replicate.sh
このプロセスを使用するには、セットアップ後にターゲットディスクを接続します。 USBの場合は、利用可能であることをシステムが認識していることを確認してください。内蔵HDDの場合、明らかに再起動が必要で、システムが自動的に検出するはずです。接続したら、[〜#〜] very [〜#〜]であることを確認してください。ディスクを追加すると文字が再配置されるため、/dev
がどれであるかを確認してください。準備ができたら、root
シェルで次のコマンドを実行します。
./sys_replicate.sh sdy
デバイス名/dev/sdy
および/dev/sdx
は、運用システムに合わせて変更する必要があります。また、結局のところ、sfdisk
can GPTディスクと拡張パーティションを処理するため、以前のコメントの質問は必要ありませんでした。コピーとして、オリジナルよりも大きいディスクを使用する場合、すべてが引き続き機能します。 簡単に再利用できないスペースが無駄になるので、コピーするマスターディスクを選択する前にそれを考慮してください。
パーティション構造の作成とDebianシステムのコピーは独立しているため、一方を変更しても、もう一方を更新する必要はありません。
MBRパーティションはディスクのセクター0であり、ddでそれを複製します。
Sudo dd if=/dev/sda of=/dev/sdb bs=512 count=1
注意:ターゲットディスクのデータが破壊される可能性があります。新しいパーティションをアクティブ化するには、kpartxを実行する必要があります。
コメントで述べたように、ddはデータ、パーティションレイアウトなどをコピーします。唯一の問題は、ソースとターゲットのディスクが同一でなければならないことです(シリンダー、ヘッド、セクターなど)。
ややハードウェアニュートラルになるより良いオプションは、clonezillaを使用することです- http://clonezilla.org/