壊れたブートコードでFreeBSDシステムをブートする方法は?


8

FreeBSDがインストールされたHDD(またはSSD、またはフラッシュドライブ)を持っていますが、どういうわけかブートコード(MBRの最初の446バイト)を破りました。どうすればこのFreeBSDを起動できますか?

回答:


13

512バイトのDOSライクなMBRがあり、その最初の446バイトをいくつかのがらくた(ゼロまたは/dev/urandom出力のみ)に置き換えたか、ブートコードを他の方法で破損したと想定します。この場合、MBRパーティションテーブルはその場所にありますが、システムはこのデバイスから起動できません。

アイデアは、他のBSDのようなシステムのローダーを使用して、デバイスとカーネルで起動することです。

  • BMCを介して、別のHDD、CD、フラッシュドライブ、PXE、仮想メディアから、BSDのようなOS(FreeBSD 6.0、7.0、8.0、8.1、8.2、8.3、8.4、9.2、およびFrenzy 1.4で試した)から起動する必要があります。 / KVMなど
  • 起動プロセス中にローダー画面の「ローダープロンプトへのエスケープ」オプションを押します(古いFreeBSDシステムでは「6」、FreeBSD 9では「3」、Frenzyでは「8」)。
  • 次のように入力して、カーネルとそのモジュールをアンロードします unload
  • 次のようdisk0s1aに入力して、FreeBSDからブートするデバイス(通常はのようなもの)を見つけます。lsdev
  • 次のように入力して、このデバイスを「現在」に設定します set currdev="disk0s1a"
  • 次のように入力loder.confして、デバイスから再度読み取ります(すべてのカーネルチューニングとハックが適用されることを確認してください)。read-conf boot/loader.conf
  • OSを起動してお楽しみください-入力するだけ boot-conf

OSが起動したら、ブートコードを修復できます。私が使用sysinstall( - >パーティションは、カスタムそのためW<Yes>BootMgr() "FreeBSDのブートマネージャをインストールする"、 、<OK>Q<Exit><Exit Install>が、それは9.0-RELEASE以降、非推奨と10.0-RELEASE以降ベースから削除されます。他の方法は、に保存されているバックアップを使用して/boot、そこからブートコードを抽出することです。

# gpart bootcode -b /boot/mbr /dev/yourbootdevice
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.