山の写真

山の写真

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//((物理ディスク上)/(イメージから))を使用してパーティションファイルシステムを縮小します。 (パーティション)画像のファイルシステムのサイズが変更されます。tune2fswhatever-fs-resizer/dev/sda1sda1.img

2.サイズ変更されたシステムパーティションと追加のメガバイトを収容できる新しい(500 GB)ディスク()に新しいパーティションテーブルを作成し、ファイルシステムが新しいパーティション/dev/sdb/dev/sdb1)に収まるようにします。それを使用してくださいfdisk/cfdisk/(g)parted/whatever-you-like。起動可能にすることを忘れないでください/dev/sdb1

技術的に必要な量を正確に計算できますが、心配しないでください。リサイザーはファイルシステムのサイズを変更してパーティション全体を/dev/sdb1満たすことができる必要があります(後で詳しく説明します)。

3.調整したサイズをsda1.img新しいターゲットにコピーします/dev/sdb1ddまたは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

関連情報