1TB HDにインストールされたFreeBSDのimg(ddで製作)があります。
今回は小さいディスク(500 GB)を使用する必要があり、もちろん同じイメージを復元しようとすると機能しませんが、パーティションテーブルとMBRを手動で調整しようとするとシステムは起動しません。
私がしたこと:
後ろにDDing、私は直接行ったフロッピーディスクMBRエンドセクタを調整するには、次のものを使用します。別れたパーティションを正しい境界に縮小します。
私の計算によると、パーティションが500 GBディスクのセクタ2048で始まることを考えると、最後のセクタを976771120(合計976773168)に設定するのが正しいと思います。
その後、新しいパーティションは2048 - > 976771120で、新しいMBRもこのロジックを使用します。実際にFreeBSDブートマネージャのステップ1に進むことはできますが、ブートプロンプトで停止します(エラー66)。おそらく、次のブートローダステップがどのように機能するのかわからず、FreeBSDブートのためにパーティションスキームとMBRを変更するだけでは十分ではありません。たぶん修正が必要な先読みconfファイルもありますか?私の基本OSではないので試行錯誤過程を経ています。ありがとう
編集:出力が追加されました。写真は残念ながら唯一のオプションです。実際のデータが本当に小さいことを覚えてはいけません(<2GB)。
1 台目のディスク、500 GB 計画 (非動作) 2 台目のディスク、1 TB 元の計画 (稼働中)
答え1
まず、問題が発生した場合に備えてバックアップコピーが必要です。どのファイルシステムを使用しても、ツールが必要です。
まず、使用しているファイルシステムのパーティションを論理的に縮小できるプログラムが必要です。以前はntfsとext3を使用してこれを数回実行しましたが、アイデアは各ファイルシステムに対して同じです。
sda1.img
あなたのイメージがパーティション()のイメージであるとします。フルディスク(sda.img
)の場合は、パーティションを「抽出」するか、イメージ全体を物理ディスク(1TB以上)に入れて処理します。後で作業内容を新しい500 GBディスクにコピーします。これは、サイズ変更プログラムがディスクイメージ全体の場合などのオフセットパーティションをサポートしていない可能性があるためです。
your old disk (sda):
+--------+----------------+---...
| mbr... | sda1 (system) | sda2...
+--------+----------------+---...
1. ntfsresize
//((物理ディスク上)/(イメージから))を使用してパーティションファイルシステムを縮小します。 (パーティション)画像のファイルシステムのサイズが変更されます。tune2fs
whatever-fs-resizer
/dev/sda1
sda1.img
2.サイズ変更されたシステムパーティションと追加のメガバイトを収容できる新しい(500 GB)ディスク()に新しいパーティションテーブルを作成し、ファイルシステムが新しいパーティション/dev/sdb
(/dev/sdb1
)に収まるようにします。それを使用してくださいfdisk/cfdisk/(g)parted/whatever-you-like
。起動可能にすることを忘れないでください/dev/sdb1
。
技術的に必要な量を正確に計算できますが、心配しないでください。リサイザーはファイルシステムのサイズを変更してパーティション全体を/dev/sdb1
満たすことができる必要があります(後で詳しく説明します)。
3.調整したサイズをsda1.img
新しいターゲットにコピーします/dev/sdb1
(dd
またはcat
:使用$ cat sda1.img > /dev/sdb1
)。
4./dev/sdb2|3|4...
必要に応じて別のパーティションをフォーマットします。
5.仕事を楽しんでください。
答え2
昔の方法で修正しましょう。
newfs /dev/ada1s1
mount /dev/ada1s1 /mnt
cd /mnt
dump -0a -f - /dev/ada0s1 | restore -rf -
gpart bootcode -b /boot/mbr -p /boot/boot1 ada1
これにより、新しいファイルシステムが作成されマウントされ、回復が必要なターゲットディレクトリに移動します。 UFSは、決して失敗しない既存のバックアップツールを使用してファイルシステム全体をコピーします。最後のコマンドはブートコードを記述します。
免責事項:常にコマンドを確認してください。パラメータの一部が間違っている場合、結果はもちろん破壊的である可能性があるためです! !ここで何が起こっているのか理解する必要があります。
答え3
これは私にとって少しマゾヒズムのようです。
個人的にはバックアップをしておきたいですdd
。次に、移動する前に縮小して機能していることを確認します(縮小 - >再起動 - >確認 - >最終dd)。
あなたのデータが500GB未満であると仮定します。しかし、ディスク上でそれがどのように構成されているかはわかりません。
sfdisk
それでは、パーティションを使用して修正したことがありますかparted
?しかし、ファイルシステムを保護するために何をしますか?パーティションを単純に変更しても、ファイルシステムのデータの順序が変わらず、切り捨てられたファイルシステムのレイアウトも管理されません。
だからあなたが見逃しているのは、ファイルシステムを処理することです。 FreeBSDは通常UFSまたはZFSを使用します。 UFSの場合は、以下を見てください。成長(8)(望むよりFreeBSDでのUFS /rootパーティションのサイズ変更)。 ZFSを使用すると、ボリュームマネージャとファイルシステムの組み合わせなので、すべてが完全に異なります!
したがって、あなたの直接の質問に答えるためには多くの追加情報が必要です。しかし、データを取得する方法に関する暗黙の質問ははるかに簡単です。新しいディスクに起動可能なFreeBSDインストールを設定します。その後、データをコピーします。
山の写真
ディスクのddイメージがある場合は、それをマウントできます。他のシステムでこれを行うか、ポータブルUSBディスク/ネットワークドライブを使用してください。
/dev/ada0
したがって、asの完全なソースコピーがある場合は、ada0.dd
そのイメージを仮想メモリディスクとして使用できます。
# mdconfig -a -t vnode -u 0 -f /home/realpclaudio/ada0.dd
/dev/md0
これにより、完全なディスクが提供されます。
これで、すべてがよく見えることを確認できます。
# fdisk /dev/md0
これは前のディスクとまったく同じでなければなりません。その後、データの表示を開始できますが、これはファイルシステムによって異なります。
超高速ファイルシステム
UFSファイルシステムをディスクにマウントします。
# mount -t ufs -o ro /dev/md0s1a /mnt
これは、最初のスライスのルートファイルシステムである可能性が高いです。スライスがあればマウントすることもできます。
# mount -t ufs -o ro /dev/md0s1e /mnt/var
# mount -t ufs -o ro /dev/md0s1g /mnt/home
ZFS
ZFSを使用している場合は、ZFSツールを使用してディスクを管理できます(参照:zpoolの管理。
# zpool import -o altroot=/mnt mypool
# zfs list