web-dev-qa-db-ja.com

いくつかの一般的なシナリオでGrub2をインストールする方法

コミュニティでは、非常に一般的ないくつかのシナリオでGrub2をインストールする方法に関するクリーンガイドが長い間必要とされていると感じています。 シナリオごとに1つのセクションがあり、指定されたもの以外を想定していない場合は、回答を解決済みとして受け入れます。 元の仮定を維持しながら、既存の回答、wikiスタイルに追加してください。

ルール:
1。答えのどの時点でも、Ubiquity(Ubuntuインストーラー)を呼び出すことはできません。
2。あまり教育的ではないため、自動修復ツールを使用しないことを強くお勧めします

シナリオ1:非ブートLinux OS、ブートパーティションなし、Live CDからの修正

セットアップ:

  • /dev/sda1はフォーマット済みext*
  • /dev/sda2はフォーマット済みlinux_swap
  • MBRがスクランブルされ、/dev/sda1が消去されたため、/boot/grub/*が起動しません
  • rm -rf /boot/grubおよびdd if=/dev/zero of=/dev/sda bs=440 count=1を実行するのと同等になります

説明する:

  • ライブCD/USBから起動し、Grub2をMBRと/boot of /dev/sda1に復元する方法

シナリオ2:非ブートLinux OS、ブートパーティション、Live CDからの修正

セットアップ:

  • /dev/sda1はフォーマット済みfat
  • /dev/sda2はフォーマット済みext*
  • /dev/sda3はフォーマット済みlinux_swap
  • MBRがスクランブルされ、/dev/sda2がフォーマットされたため、/dev/sda1が起動しません

説明する:

  • ライブCD/USBから起動し、Grub2をMBRと/dev/sda1に復元し、/dev/sda2fstabを更新する方法

シナリオ3:サムドライブへのインストール、さまざまなOSの起動、Linux OSから

セットアップ:

  • /dev/sdbはリムーバブルメディアです
  • /dev/sdb1はフォーマット済みfat
  • /dev/sdb2はフォーマット済みext*
  • /dev/sdb3はフォーマット済みfat
  • それ以外の場合、/dev/sdbのMBRは初期化されません。
  • /dev/sdaにインストールされたLinuxベースのOSから実行しています

説明する:

  • Grub2を/dev/sdb1にインストールし、/dev/sdb1をアクティブにする方法、起動時に/dev/sdb2/dev/sdb3の間で選択できるようにする方法。

シナリオ4:(ボーナス)サムドライブへのインストール、ISOの起動、Linux OSから

セットアップ:

  • /dev/sdbはリムーバブルメディアです
  • /dev/sdb1はフォーマット済みfat
  • /dev/sdb1には/iso/live.isoが含まれます
  • /dev/sdb2はフォーマット済みext*
  • /dev/sdb3はフォーマット済みfat
  • それ以外の場合、/dev/sdbのMBRは初期化されません。
  • /dev/sdaにインストールされたLinuxベースのOSから実行しています

説明する:

  • Grub2を/dev/sdb1にインストールし、/dev/sdb1をアクティブにし、ブート時に/dev/sdb2/dev/sdb3/iso/live.isoから選択できるようにする方法。
3
Huckle

Grub2関連コマンドの一般的な背景

  • grub-install

    1. Sudo grub-install /device
      /deviceは、Grubがメインのgrub実行可能ファイルをMBRまたはパーティションブートレコードに書き込む物理ドライブを指します。 /dev/sd[a-z]という形式のデバイスにはMBRが書き込まれ、/dev/sd[a-z][0-9]という形式のデバイスにはPBRが書き込まれます。主な違いは、ハードウェアが常にMBRにあるものを実行し、PBRが実行されるかどうかはそこにあるコード次第です。 Grub2以外をMBRにインストールし(grubレガシーなど)、パーティションの1つのPBRにインストールされているGrub2をロードするセットアップがあります。ただし、一般的には、/dev/sd[a-z]を使用してGrub2をMBRにインストールすることをお勧めします。このオプションは、コマンドのすべての形式に必要です。
    2. Sudo grub-install {--no-floppy|--allow-floppy} /device
      これら2つのフラグは、grub-installコマンドラインの他のバリエーションで使用できます。最初のオプション--no-floppyは、grubにフロッピーディスクを検索しないように指示して、全体の実行時間を短縮するために使用されました。 Grubの最近のコピーには、デフォルトでフロッピーを検索しないようになったため、この機能を有効にする--allow-floppyオプションが追加されました。
    3. Sudo grub-install [--force] /device
      --forceオプションを追加すると、マスターブートレコードではなく、パーティションブートレコードにGrubをインストールできます。通常、この動作は許可されていません。これを行う理由の理由については、以下のシナリオのいずれかで詳しく説明します。
    4. Sudo grub-install [--recheck] /device
      これにより、[_ FILL THIS IN]で使用されるファイル/boot/grub/device.mapが再生成されます
    5. Sudo grub-install [--target=] /deviceこのオプションは、起動時に実行される特定のファームウェアを指定する場合に使用されます。 BIOSとUEFI、およびx86とx64のバリアントがあります。 BIOSを使用していて、ブートする予定の同じマシンにGrub2をインストールする場合、これは完全にオプションであり、Grub2がこれを独自に検出することをお勧めします。
  • grub-mkconfig

    1. Sudo grub-mkconfig -o /boot/grub/grub.cfg
      これは、このコマンドの標準形式です。これにより、/etc/grub.dの各スクリプトが順番に実行され、それらすべての出力が-o fileオプションで指定されたファイルに追加されます。ファイルの場所は、インストールまたは修復の種類によって異なります。 grub/grub.cfgのエントリを参照してください
  • grub-update

    1. Sudo grub-update [*]
      これは、grub-updateを呼び出すことができる唯一の形式です。これは単にgrup-mkconfig -o /boot/grub/grub.cfgのラッパーです。つまり、/bootをマウントして動作させる必要があります。すべての引数はgrub-mkconfigに直接渡されます

Grub2関連ファイルの一般的な背景

  • /boot/grub/device.map(オプション)
    [これを記入]

  • /boot/grub/core.img(必須)
    これはgrub2のメイン実行可能ファイルです。 [もっと詳しく]

  • grub/grub.cfg(必須)
    このファイルは、grubのすべてのメニューエントリが読み取られるファイルです。これは、grubがインストールされたオペレーティングシステムの/etc/grub.dにあるスクリプトのリストで生成されます(これは、grubが最終的に起動するものである場合とそうでない場合があります)。 grub-mkconfigのエントリを参照してください。このファイルは(Grubに更新があり、/bootがマウントされている場合)OR(grub-updateが実行されます)OR(grub-mkconfig -o /boot/grub/grub.cfgが実行されます)。このファイルは、インストールまたは修復を行うかどうかによって正確に存在する場所が異なるため、相対パスでリストされます。修復する場合は、/bootを含むパーティションを/mnt/bootなどのどこかにマウントする必要があります。この場合、パスは/mnt/boot/grub/grub.cfgになります。すでにブートされているLinuxシステムにインストールする場合、パスは/boot/grub/grub.cfgになります。このファイルが見つからない場合でも、grubコマンドシェルを使用して起動できます。これはこのドキュメントの範囲外です(そのためmostlyが必要です)。

シナリオ1:ブートパーティションなし

  1. Live CD、USB、またはその他のLinux環境を起動します

シナリオ2:ブートパーティション

  1. Live CD、USB、またはその他のLinux環境を起動します

シナリオ3:サムドライブ

  1. USBドライブを既存のLinux環境に接続する
  2. /dev/sdb1のマウントポイントを作成してマウントする
  3. /dev/sdbのMBRにgrubをインストールします
  4. ???

コマンド:

# Step 2
Sudo mkdir /mnt/usb-boot-part
Sudo mount /dev/sdb1 /mnt/usb-boot-part
# Step 3
Sudo grub-install --boot-directory=/mnt/usb-boot-part /dev/sdb

シナリオ4:ループバックデバイス

  1. シナリオ#3のUSBドライブを既存のLinux環境に接続します

本当に有益なサイト

  1. [件名]: リンク
3
Huckle