gpartを使用して誤ってブートパーティションを削除しました。

gpartを使用して誤ってブートパーティションを削除しました。

私はただ入った。

gpart delete -i 1 ada0

いつ書くべきか

gpart delete -i 1 ada1

残念ながら、reboot私は間違いを理解する前にこれを入力しました。ディスクada0にはデフォルトのGPTレイアウトがあり、FreeBSD 10.1インストーラはそれをデフォルトのパーティション化オプションに入れます。

当然、システムは今再起動されません。それでは、パーティションを再追加する方法はありますか?マシンを復元する最速の方法は何ですか?再実行するのに時間がかかるシステムに対するカスタマイズされた変更が多いため、完全に再インストールしたくありません。

答え1

次は動作します。 FreeBSDインストールディスクをダウンロードし、シングルユーザーモードで起動します。完了したら、次の操作を行います。

gpart show ada0

ディスクレイアウトを説明するテキストを印刷する必要があります。結果は次のとおりです。

=>       34  500118125  ada0  GPT  (238G)
         34       1024     1  - free -  (512K)
       1058  490732544     2  freebsd-ufs  (234G)
  490733602    8388608     3  freebsd-swap  (4.0G)
  499122210     995949        - free -  (486M)

これで、編集用にGPTを実行してバックアップできますgpart backup ada0。これにより、次の内容が表示されます(パーティション1を削除したため)。

GPT 128
2    freebsd-ufs      1058 490732544  
3   freebsd-swap 490733602   8388608

出力をファイルにコピーし、次のように編集します(freebsd-bootの後の数字はの空き容量の数ですgpart show ada0)。

GPT 128
1   freebsd-boot        34      1024  
2    freebsd-ufs      1058 490732544  
3   freebsd-swap 490733602   8388608

上記の内容をというファイルに保存した場合、newgpt次は起動可能な状態にGPTを復元します。

gpart restore -F ada0 < newgpt
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0

ブートコードをディスクに残しておく必要があるため、最後のコマンドは重複しなければなりませんが、テストするために中断できるシステムがないので、それを準備します。

関連情報