破損したスタートコードでFreeBSDシステムを起動するには?

破損したスタートコードでFreeBSDシステムを起動するには?

FreeBSDを搭載したHDD(またはSSDまたはフラッシュドライブ)があり、何らかの理由でブートコード(MBRの最初の446バイト)が破損しています。このFreeBSDをどのように起動できますか?

答え1

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
  • disk0s1aFreeBSDを起動したいデバイスを見つけるには、次のコマンドを入力します(通常は次のようになります)。lsdev
  • 次のように入力して、このデバイスを「現在」に設定します。set currdev="disk0s1a"
  • 入力してデバイスからもう一度読みますloder.conf(すべてのカーネルの調整とハッキングを有効にするため)。read-conf boot/loader.conf
  • オペレーティングシステムを起動してお楽しみください。入力するだけです。boot-conf

オペレーティングシステムが起動したら、起動コードを回復できます。私はsysinstallそれを使用していましたが、(Customize->Partitioning,,,, W("FreeBSD Boot Manager のインストール"),,,,,) <Yes>9.0-RELEASE から廃止され、10.0-RELEASE からデフォルトから削除されました。別の方法は、保存されたバックアップを使用して次からブートコードを抽出することです。BootMgr<OK>Q<Exit><Exit Install>/boot

# gpart bootcode -b /boot/mbr /dev/yourbootdevice

関連情報