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
disk0s1a
FreeBSDを起動したいデバイスを見つけるには、次のコマンドを入力します(通常は次のようになります)。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