ハードディスクを小さなサイズにクローンする方法。
- Clonezillaは素晴らしいですが、そのような機能をサポートしていません。
- また
dd
、PartImageはこの要求をサポートしていません。 rsync
MBRはファイルではないため、MBRはコピーされません。
バックアップを取らないためにHDDのクローンを作成する必要rsync
があるので、受け入れられる答えではありません。
助言がありますか?
ハードディスクを小さなサイズにクローンする方法。
dd
、PartImageはこの要求をサポートしていません。rsync
MBRはファイルではないため、MBRはコピーされません。バックアップを取らないためにHDDのクローンを作成する必要rsync
があるので、受け入れられる答えではありません。
助言がありますか?
回答:
単に十分なスペースがないため、大きなパーティションを小さなパーティションにクローンすることはできません(使用dd
など)。
ただし、大きなパーティションにあるファイルが小さなパーティションにも収まる場合は、rsync
それらのファイルをコピーするために使用できます。使用する正確なオプションは、特定のユースケースによって異なりますが、すべてのファイルを単純にコピーするには、次のようにする必要があります。
rsync -av /mount/point/of/large/partition/ /mount/point/of/small/partition
編集: もう一度:大きなパーティションを小さなパーティションに複製することはできません。(しかし、読み進めてください、あなたの問題はまだ解決できます。)
その理由は簡単です。ソースパーティションがターゲットパーティションよりも大きいからです。何を期待しますか?いくつかのブロックをドロップするだけですか?どれ?そして、どのようにdd
知る必要がありますか?もちろん、あなたが使用できるdd
のbs=
とcount=
唯一のオプションは、それがあなたのターゲットパーティション上に収まるように、ソースパーティションの最初のSO-と、それほど多くのブロックをコピーしますが、壊れたパーティションになってしまいます。それは確かにあなたが望むものではありません。
あなたがするのでだから、クローンすることはできません小さいパーティションへの大きなパーティション、あなたができる唯一のことはすることです最初に小さいかのようなものを使用して、ターゲットパーティションと同等のサイズにソース・パーティションのサイズを小さくgparted
する認識していますデータが失われないように、ファイルシステムの詳細。そして、唯一それから、あなたは使用することができdd
、パーティションのクローンを作成します。理想的には、ソースパーティションの新しいサイズは、ターゲットパーティションのサイズと同じ(小さくも等しくもしない)でなければなりません。そうしないと、クローン作成後にターゲットパーティションに未割り当て領域ができてしまいます。
また、大きなドライブのMBRを小さなドライブのMBRに単純にコピーしないでください(その逆も同様)。512バイトのサイズでハードドライブの最初のセクションであるMBRには、ハードドライブのレイアウトに関する情報が含まれています。
(ことに注意してください446+64+2=512
。)
MBRのクローンを作成する場合は、次のように最初の446バイトのみをクローンします。
dd if=/dev/source of=/tmp/mbr.bak bs=512 count=1
dd if=/tmp/mbr.bak of=/dev/target bs=446 count=1
...交換する/dev/source
と/dev/target
、ソースとターゲットのハードドライブ]、例えば、のデバイス名を持つ/dev/sda
と/dev/sdb
、それぞれ。(詳細については、こちらをご覧ください。)
ただし、適切な方法は、新しいハードドライブでクリーンなGrubの再インストール(またはMBRにあるもの)を実行することです。
要約すると、大きなドライブを小さなドライブに複製する場合は、次の手順を実行します。
ソースドライブと同じ数のパーティションを持つターゲットドライブにパーティションテーブルをレイアウトします。ソースドライブのパーティションとターゲットドライブのパーティションは1対1で対応している必要がありますが、ターゲットドライブの(一部の)パーティションは、ソースドライブの対応するパーティションよりも小さい場合があります。fdisk
またはcfdisk
そのようなツールを使用します。
ソースドライブ上の対応するパーティションよりも小さいターゲットドライブ上の各パーティションについて、ソースドライブ上のこの対応するパーティションのサイズを小さくして、ターゲットドライブ上のパーティションのサイズと一致させます。そのようなツールを使用してくださいgparted
。
ソースドライブの各パーティションに対して、コマンドを発行します
dd if=/dev/sdaX of=/dev/sdbY
... /dev/sdaX
ソースドライブから/dev/sdbY
ターゲットドライブ上の対応するパーティションにパーティションを複製する(もちろん、デバイス名を適切に置き換えます)
MBRのクローンも作成することを主張する場合はdd
、この投稿(上記の/tmp/mbr.bak
ものを含む)で上記で説明した2つのコマンドを使用します。ただし、クリーンなGrubの再インストールの方が良いことに注意してください。
rsync
クローニング用ではありません。それがまさに私が言っていたことです-私の投稿を注意深く読んでください。;)すべてのパーティションとMBRのクローンを作成する方法を説明するために、投稿を編集しました。これがあなたの望むものに近いことを願っています。
parted
/ gparted
を使用することはまったく問題ありません。よくあることですが、目標を達成する方法はたくさんあります。fdisk
/ cfdisk
はより「基本的な」ツールであり、上記の説明では、私は単に仕事をする最も基本的なツールを参照しようとしていました。
Malte Skoruppaがすでに投稿しているため、正確なクローニングはできません。ただし、clonezillaは、より大きなディスクがいっぱいでない限り、このタスクを実行できます(Malteはすでにこれについて言及しています)。
基本的に、詳細オプションを有効にし、小さいディスクに関する警告メッセージを「無視」する必要があります。参照してくださいClonezillaをドキュメントをスクリーンショットと詳細については。160GB HDDのバックアップを64GB SSDに復元するときに同じ問題が発生しました。私にとってこれはうまくいきました。
必要な結果になるはずの別のソリューションは、同じサイズのディスクに復元し、新しいパーティションスキーマを小さいディスクに収めるために再パーティション化することです。参照jsm-techblog.blogspot.deこれを行う方法の詳細については。
-k1
と、ターゲットディスクに比例してパーティションテーブルが作成され、パーティション内-r
のファイルファイルシステムのサイズを自動的に変更するオプションがオンになると思います。これは正しいです?
k1
オプションを使用してこれを機能させることはできませんでしたが、-icds
オプションは私のために機能しました。詳細を回答を掲載します。
Gpartedは仕事をするべきです
gpartedでサイズ変更した後、Clonezillaでイメージングする前に、ドライブから起動してOSにエラーを修正する機会を与えます。
次に、Clonezillaを実行し、必要なハードディスクパーティションのコピーを作成します
私に最適な別のオプション:MondoRescure
Mondo RescueはGPL災害復旧ソリューションです。
バックアップメディアとしてのテープ、ディスク、ネットワーク、CD / DVD、複数のファイルシステム、LVM、ソフトウェアおよびハードウェアRAIDをサポートしています。
簡単なガイドはこちらにあります
スクリーンショットをいくつか投稿します。
1.サポートされているバックアップメディアタイプのリストから選択します。
2. CD / DVD- + R [W]にバックアップしている場合、MondoはCDバーナーにBurnProofテクノロジーが搭載されているか、ラップトップの内部にあるか、それともエキセントリックかを尋ねます。テープストリーマにバックアップしている場合、このメッセージは表示されません。
3.どの程度の圧縮が必要ですか?なし。テープストリーマにハードウェア圧縮が組み込まれている場合。CPUが非常に高速の場合、最大。平均は、ほとんどの状況でうまくいくはずです。
4.コンピューター全体(/ sys、/ run、/ proc、および/ tmpを除く)をバックアップする場合は、これをデフォルトの/のままにします。それ以外の場合は、サブセットを指定します(例:/ usr / local | / home)。各パスの間に必ずパイプを入れてください。
5.コンピュータ全体をバックアップする場合、特定のディレクトリ(/ shared / MP3など)を除外できます。「ディレクトリを除外する」ダイアログボックスでそれらを指定してください。各パスの間にパイプを入れてください、例えば/ shared / private | / scratch | / nfs | / windows
6.カーネルは正常ですか?Red Hat、Mandrake、SuSE、Debian、およびSlackwareのユーザーは、一般に「はい」と言ってください。これらのベンダーは、信頼できるカーネルの作成に長けているからです。GentooまたはLFSを使用している場合、カーネルは非標準である可能性があります。その場合、Mondoのフェイルセーフカーネル(別途提供)を使用する場合は「no」と言います。
7.アーカイブをメディアに書き込んだ後にアーカイブを検証する場合は、ここで「はい」と言います。ハードウェアとLinuxディストリビューションに絶対的な信念がある場合は、「いいえ」と言い、少し祈ってください。
8.先に進みたいと確信している場合は、「はい」と発声し、Mondoがコンピューターをバックアップしている間に他にやるべきことを見つけます。「いいえ」と言うと、シェルプロンプトで不意にダンプされます。:-)
9.バックアッププロセスが開始されます。最初に実行するバックアップ前のタスクがいくつかありますが、バックアップは基本的に進行中です。バックアッププロセスを簡素化するために、一連の質問がありました。次回は、必要に応じて、一連の質問に答える代わりに、さまざまなコマンドラインスイッチを使用してmondoarchiveを呼び出し、その動作を制御できます。詳細については、manページを参照してください。
10.Mondoは、バックアップするすべてのファイルのカタログを作成します。これには最大5分かかります。ファイルのリストは、セットごとに約4 MB(圧縮前)のファイルに分割されます。通常、これには1分かかります。
11.モンドはミンディに電話します。Mindiは、既存のLinuxディストリビューションとファイルシステムに基づいたブータブルメディアイメージと補助データディスクイメージを生成します。そうすれば、Mondoのツールが既存のファイルシステムおよびバイナリと互換性があることを確認できます。Mondoのツールがあなたのツールです。Mindiの実行には最大5分かかります。
12.最後に、モンドはコンピューターのバックアップを開始します。このプロセスには、アーカイブするデータの量、CPUの速度、使用するRAMの量などに応じて、数分または数時間かかる場合があります。通常のファイルをバックアップしてから、大きなファイル(約32MBを超えるファイル)をバックアップします。バックアップの検証を選択した場合、モンドはそれも行います。
1.バックアップメディアの種類を選択します。ライブ復元プロセスは、Mondoメディアから起動した後にmondorestoreをパラメーターなしで入力した場合に発生するものと非常に似ています。
2.テープ/ CDを挿入したら「OK」を押します。テープバックアップを生成した場合、テープ自体で十分です。CDバックアップを生成した場合、最初のCDで十分です。それ以外の場合は、ブートメディアが必要になる場合があります。
3.復元するファイルとディレクトリにフラグを立てます。[詳細]および[少ない]ボタンを使用して、サブディレクトリを開いたり閉じたりします。
4.ファイルを復元する場所を指定します。一般に、「/」が適切です。復元するファイルの新しいバージョンを上書きしたくない場合は、復元パスとして/ tmp / BKPなどを指定します。
5.Mondorestoreは、メディアから構成情報を取得します。(サンプル画面はテープユーザー向けです。CDユーザーには別のものが表示されます。)
6.データはハードディスクに復元されます-最初に通常のファイル、次に復元セット内の大きな(32MB以上の)ファイルがあります。
Clonezillaを使用すると、より大きなハードドライブからより小さなハードドライブへの「疑似クローニング」を実現できます。効果的に、ディスクのパーティションを保存および復元できます。次の手順(HDDからSSDへの転送用に開発された)がそこに到達します。
最初のトリックは、Gpartedを使用してハードドライブ上のパーティションのサイズを変更し、各パーティションを縮小して、含まれる未使用領域の量を減らすことです。明らかに、パーティションは、すべてのパーティションに必要な合計スペースがSSDの容量よりも小さくなるようにサイズ設定する必要があります。
次にClonezillaを実行し、個々のハードディスクパーティションのコピーを作成して(savepartsオプションを使用)、これらを外部USBドライブに一時的に保存します。ディスク全体(savedisk)のイメージを作成するのではなく、パーティション(saveparts)を保存する必要があることに注意してください。
参照:プロセスとリファレンスソースのリンクの詳細については、ハードドライブをより小さいSSDに「クローン」してください。
上記の例のほとんどは、実際に元のドライブのサイズを変更することを示唆しているため、実際にコピーを作成する前にデータを変更することにより、データが危険にさらされる可能性があります。
私が使用する非常にマニュアルではありますが、リスクが少ない別の方法があります。何かが失敗したためにフォールバックしたい場合に備えて、ソースドライブはそのままです。
また、クローン/サイズ変更では、ディスクスワップを行っている間に新しいドライブに移動しながら、新しいファイルシステムに切り替えることはできません。以下の手順では、目的のドライブに選択したファイルシステムのみを作成する必要があります。
元のドライブと一緒に新しい宛先ドライブをコンピューターにインストールします。
私の例では、ソース(元のドライブ)は/ dev / sdaであり、宛先(新しい小さいドライブ)は/ dev / sdbです。セットアップでは、異なる場合があります
/ mnt / sourceの下にsrcを読み取り専用としてマウントします
宛先ドライブを/ mnt / destinationの下にマウントします
次を使用してsrcファイルシステムを宛先ファイルシステムにコピーします。
新しいディスクがあるため、ubuntuはデバイス名の代わりにuuidを使用してドライブを見つけてマウントします。新しいドライブuuidを使用してディスクをマウントするように宛先fstabを変更します。
ls -la / dev / disk / by-uuid
/のuuidを変更し、/ mnt / destination / etc / fstabでスワップします。元のドライブとは異なるものに変更することにした場合、マウントポイントのファイルシステムを変更することを忘れないでください
grubが同じバージョンであることが重要な場合は、元のディスクを再度ブートし、以下のコマンドを実行して実行して、grubを新しいドライブにインストールします。
次に、ソースドライブをコンピューターから削除し、宛先ドライブを起動します。grubは完全に起動せず、grubリカバリシェルのリカバリシェルを終了します。
いくつかの必要なgrubモジュールをロードするには-insmod ext2-insmod linuxはディスクデバイスをリストします-ls
適切なデバイスを選択します(この例ではhd0、msdos1です)
vmlinuz-xxxおよびinitrd-xxxの正確な名前を見つけて、使用するgrubを構成します
ls / boot /
上記のlsから取得したvmlinuzおよびinitrdの適切な名前を確認して使用し、以下で使用しているサンプルバージョンの代わりにそれらを使用します。
linux /boot/vmlinuz-2.6.32-5-amd64 root = / dev / sda single
/ dev / sdaがデバイスの場合、ドライブは次回dstディスクのみでマシンを再起動するときにrootfsディスクになります
initrd /boot/initd.img-2.6.32-5-amd64
これでマシンが正常に起動します。最後にgrubを更新して新しいディスクuuidを使用するため、毎回この手動手順を繰り返す必要はありません。
ClonezillaとGPartedを使用して、データをより小さなドライブに転送できます。
GParted Live CDを使用すると、新しいドライブに収まるようにパーティションが縮小されます。空の(灰色の)スペースがドライブの右端にあるようにパーティションを移動します。最初のパーティションの前にすでに空のスペースがあった場合、ブートまたはその他の隠された情報が含まれている可能性があるため、そのスペースを残します。
Clonezillaを使用してdevice-device
クローンを作成します。詳細オプションを選択し、-icds
ディスクサイズのチェックをスキップするオプションを有効にします。クローンを続行し、古いドライブを削除して、新しいドライブから起動してみてください。-fsck-src-part
エラーが発生した場合は、ソースディスクのエラーの修復に役立つオプションを試してください。
イメージのすべてのデータが小さいディスクに収まる、つまり間違ったディスク領域に書き込まれないことが確実な場合は、オプション「-icds」をチェックできます。警告!このオプションを選択するには、何をしているのかを知る必要があります!
私が読んだFAQの 1 つは、Clonezillaで-icds
と-k1
オプションの両方を使用することを提案しましたが、それは私にはうまくいきませんでした。他の人は、GPartedを使用してパーティションをコピーできると述べましたが、すべてのパーティションタイプをコピーすることはできず、その方法を使用した後にマシンを起動できませんでした。
質問に対する正しい答えではないかもしれませんが、同様の問題を解決しようとしてこのページに到達します。
古い256Mbコンパクトフラッシュカードを、破壊された32Mbのコンパクトフラッシュカードに複製したかったのです。フラッシュカードには、小さなスプリングコイルを製造する小さなLinuxアプライアンスが含まれています。
この方法で解決しました:
(もちろん、256Mbで使用される有効スペースは32Mb未満であったため、うまく適合します)
'dd'を使用して256Mbフラッシュカードのイメージを作成します(つまり、カードが/ dev / sdbにマウントされていると仮定します)。
dd if=/dev/sdb of=image256.iso
unetbootinを使用して、「image256.iso」ISO(Diskimageオプション)を読み取ります。
32MbカードがあるUSBドライブを選択し、32Mbカードにイメージをダンプします。
それだけです、32Mbカードが私のマシンを再び正常に起動しました。
HTH
250ギガバイト(sda)のブートディスクを120ギガバイト(sdc)のディスクに圧縮した経験を投稿します
sdaには2つのパーティションが含まれます。
私もです:
私のgpartedはlvmで動作しないので:
レスキューディスクから:
pvresize / dev / sda2 --setphysicalvolumesize xxxxxxxxxxxxK(LVスペースよりも1 GB多い)(ここにエラーがあります...
しかし、FS-LV-VGを縮小するだけなので、パーティションはまだ大きくなりました。
fdiskでパーティションを再作成します。
fdisk /dev/sda
d --> 2
n --> p --> 2 --> default --> (new reduced
size!!!)
w
次に、システムを再起動するまで、古いパーティションテーブルが使用されていることを確認します。しかし、再起動してイメージを実行するのを忘れました:
dd if = / dev / sda2 of = / dev / sdc2 bs = 4096(この時点で、何かが間違っていると思い、パーティションテーブルが新しいsda2の終わりを反映していないため、sdcで起動できませんでした)
しかし、すべてがOKで、再起動後、システムでさえブートするsdcパーティションを選択しました(PV、LV、/ bootの重複について不平を言っています)
私はラッキーかどうか、または不必要な手順を行うかどうかわからない...任意のコメントをいただければ幸いです。
免責事項:私はWereSyncの元の著者です
これはWereSyncを使用して可能です。WereSyncはMalteの回答の一般的なプロセスに従いますが、必要なコマンドは複数ではなく1つだけです。さらに、クローンをバックアップとして使用している場合、バックエンドでrsyncを使用するため、そのバックアップを増分的に更新できます。
WereSyncをインストールするには、pipを使用します。
pip install weresync
そこから単純にWereSyncコマンドを使用できます
weresync -C -g 2 -E 1 /dev/sda /dev/sdb
上記のコマンドは、/ dev / sdaから/ dev / sdbにデータをコピーします。この-C
フラグは、WereSyncが2つのドライブのパーティションが同等であるかどうかをチェックし、そうでない場合は、WereSyncが/ dev / sdaから/ dev / sdbにパーティションをコピーし、収まるようにサイズを変更することをマークします。新しいパーティションのUUIDは異なります。パーティションが有効かどうかのテストに使用されるシステムは細心の注意を要する場合があるため、最初のバックアップ後にこのフラグを省略することをお勧めします。
-g
そして-E
コマンドは、省略することができますが、ブートローダのインストールは、ほぼ確実にそのような場合には失敗します。
-g
「grubパーティション」を指すか、パーティションgrubをインストールする必要があります。通常、これは/にマウントされたパーティションです。/ dev / sda2が/にマウントされ-g 2
ている場合、上記の例のようにWereSyncに渡します。これが省略された場合、WereSyncはそれ自体で適切なパーティションを見つけようとしますが、エラーが発生しやすくなります。単純にフラグを渡すことをお勧めします。
-E
EFIパーティションを指します。EFIパーティションが/ dev / sda1にある場合-E 1
、上記のコマンドのようにWereSync に渡します。
/ bootフォルダー用に別のパーティションがある場合は、WereSyncにも知らせる必要があります。/ dev / sda3にある場合は-B 3
、WereSyncに渡します。
このコマンドで使用可能なフラグの詳細については、WereSync Command Documentationをご覧ください。
NVMe(Samsung 950 Pro)が認識されないため、再起動後に1607へのWin 10アップデートが破損するため、この問題に遭遇したため、NVMeを他の(より大きい)内部ドライブ(私の場合は「東芝」)に複製しました、Win 10を更新し、システムをNVMeに復元しました。
これを実現するために必要な手順を次に示します(restorepartsが機能し-icds
なかったため)。
安定版ブランチからClonzilaを使用した場合、CDから起動できるようにするには、BIOSでレガシーブートモードに切り替える必要があります。それ以外の場合、代替ブランチからのダウンロードを使用する場合、UEFIブートをサポートする必要があります。
ご自身の責任でガイドに従ってください。ここでの手順とコマンドはチェックおよびダブルチェックされますが、入力ミスによりデータの損失やハードウェア障害が発生する可能性があるため、まず何をしているのかを学び、正しい方向へのヒントとしてこれらの手順を実行してください。
1回目はWindowsでNVMeがまだWinブート情報を持っているため、競合が発生したと思うので、今回は東芝への最初のクローン作成直後(UEFIブートへの切り替え前)にNVMeドライブのすべてのパーティションを削除しました
〜削除はClonezillaシェルで簡単にできます:
sudo su
dd if=/dev/zero of=/dev/nvme0n1 bs=512 count=1
〜または、GPartedを起動し、そこで視覚的に実行します
(BIOSでUEFIブートに切り替えます)
MBRのコピーは私にとって何の役にも立たなかったため、このストーリーではGPTが重要なので、(Clonezilla)シェルに入り、東芝からNVMeにGPTをコピーします。
sudo su
sgdisk /dev/sda -R /dev/nvme0n1
sgdisk -G /dev/nvme0n1`
(説明)
Clonezilaは(Expertスイッチ-icdsを使用しても)パーティションを復元することを拒否するので、再びシェルに入り、次の操作を行います。
partprobe #forces kernel to reload partition infos
fdisk -l #shows all disks info
dd if=/dev/sda1 of=/dev/nvme0n1p1 bs=64K status=progress
dd if=/dev/sda2 of=/dev/nvme0n1p2 bs=64K status=progress
dd if=/dev/sda3 of=/dev/nvme0n1p3 bs=64K status=progress
...
(詳細)
Tosiba MBRおよびGPTのバックアップ:
sgdisk --backup=sda.gpt /dev/sda
バックアップを安全な場所にコピーします(手順6で行ったドライブイメージ全体ではなく、復元できるようにします)
mkdir /mnt/usb
(put in usb flash or similar)
mount /dev/sdb /mnt/usb
cp sda.gpt /mnt/usb
umount /dev/sdb`
Toshibaパーティション情報をクリアして、Windowsとの競合を引き起こさないようにします
dd if=/dev/zero of=/dev/sda bs=512 count=1
(BIOSでUEFIブートに切り替える)Windows 10(1607)DVDからブートし、[修復]> [トラブルシューティング]> [コマンドプロンプト]を選択して、これらすべてを実行します。
bootrec /fixboot
bootrec /scanos
bootrec /fixmbr
bootrec /rebuildbcd
exit
(詳細)
NVMeディスクでWindows 1607を再起動します