私はGRUB2
でかなり悪い経験をしました。私は (と言った) その設計と開発プロセスについていくつかの厄介なことを言うことができます。私は特にその更新方法が嫌いです:何らかの理由で、いくつかのスクリプトを半自動的に更新する必要があります-チェーン内の別のスクリプトを介して間接的に-すべてのカーネル更新-または他の多くのマイナー(そして一見無関係) )構成の変更。
これは、以前にLILO
で体験したこととは直接対照的です。私はそれを元に戻すことを真剣に検討しています-私はそれに問題を抱えたことはなく、その構成はかなり単純でした。 1つには、覚えているように、を更新するだけでした(または、更新されるだけです)単一の単純に管理された構成テキスト-kernel-updateごとのファイル。
では、LILOは現在のカーネルを備えた最新のハードウェアでどのように機能するのでしょうか。 GRUBはどうですか?他のブートローダーはどうですか?前提条件をすべて満たす必要がありますか、それとも、昔は覚えていたように、構成ファイルを作成してlilo
コマンドを実行するだけですか?カーネルパッケージの更新(Debian/Ubuntu)は、GRUB2の場合と同様にLILOを更新しますか?
コピーと貼り付けのどちらを行うかを決めるのは本当に難しいので、すべて良いので、読んでもらいます。
gdisk
と rEFInd
の両方を作成および保守します。しかし、その前に、少しコメントしたいと思います。上記のELILOリンクは、Rod Smithによって書かれた rodsbooks.com にあるUEFIブートに関する多くのページの1つへのリンクです。彼は熟練したテクニカルライターであり、UEFIブートのトピックをググったことがなく、彼の何かを読まなかった場合は、上位のいくつかの結果をスキップしたことが原因である可能性があります。
上記のリンクで、彼は LinuxカーネルのEFIスタブローダー について言及しています。これは、ファームウェア自体によってLinuxカーネルを直接呼び出すことができるため、私の意見では、これを使用する必要があります。何をしているかに関係なく、何かがファームウェアによって実行されています-何かがgrub
のようです。ファームウェアがOSカーネルを直接ロードできる場合、ブートローダーは何が良いのでしょうか? UEFIファームウェアは、パーティションテーブルによってespのフラグが付けられたFATフォーマットのGPTパーティションをマウントし、UEFIブート変数としてオンボードフラッシュメモリモジュールに保存したパスを実行します。したがって、1つのことは、LinuxカーネルをそのFATパーティションに配置し、そのパスをそのブート変数に格納することです。 突然、カーネルは独自のブートローダーになります
ブートローダーが解決するように設計された問題は、BIOSシステムがbootフラグの付いたパーティションの最初のセクターのみを読み取り、それを実行することでした。 512バイトのカーネルで意味のあることを行うのは少し難しいので、実際のカーネルを保持するファイルシステムをマウントしてチェーンロードできる小さなユーティリティを作成するのが一般的でした。
実際、512バイトではブートローダーにとっても十分ではないことがよくありました。たとえば、grub
は実際には、カーネルをチェーンロードする前に自身をチェーンロードします。これは、カーネルが第2ステージを、ブートセクターとファイルシステムの最初のセクターの間の空の領域に割り込むためです。汚いハックのようなものですが、うまくいきました。
Rod SmithのrEFIndが行うことは、EFI applicationとして起動することです-これは比較的新しい概念です。これは、ディスクから実行され、ファームウェアに戻るプログラムです。 rEFIndが行うことは、ブートメニューを管理し、ブート選択(ファームウェアにを返して実行することです。 これにはUEFIファイルシステムドライバーが付属しています-たとえば、カーネルのEFIスタブローダーをnon-FATパーティション(現在の/boot
など)管理が非常に簡単です-そのようなことが必要な場合まったく-設定可能なブートマネージャーの利便性に、実行可能なシステムカーネルのシンプルさを追加します。
mount --bind
することができます。/
にすべきシンボリックリンクを許可しないパスがある場合、それは/boot
です。 /boot
の孤立したシンボリックリンクは、トラブルシューティングが必要な問題の種類ですではない。それでも、インプレースカーネルの更新や複数のカーネル構成を処理するために、たとえ恐ろしいアイデアであっても、いくつかのディストリビューションで/boot
に複雑なインダイレクションを設定することは一般的な十分な方法です。
これは問題であり、EFIシステムの場合ではないファイルシステムドライバーをロードするように構成されています(rEFIndパッケージで提供されるものなど) FATは全体的にかなり愚かなファイルシステムであるため、そしてそれはそれらを理解していません。
私は個人的にはrEFIndで提供されるUEFIファイルシステムドライバーを使用していませんが、ほとんどのディストリビューションにはパッケージマネージャーを介してインストールできるrEFIndパッケージが含まれ、独自のひどいシンボリック/boot
configとrEFIndのパッケージ化されたUEFIファイルシステムドライバーを使用することを忘れていました。
% grep esp /etc/fstab &&
> ls /esp/EFI
LABEL=ESP /esp vfat defaults 0 1
/esp/EFI/Arch_root /boot none bind,defaults 0 0
Arch_root/ Arch_sqsh/ Arch_xbmc/ BOOT/ ipxe/
ですから、これらの2行を/etc/fstab
に入れて、新しいLinuxインストールの/boot
を含める予定のフォルダーをポイントし、全体を心配してほとんど完了しました。私もしなければなりません:
cat /boot/refind_linux.conf
"Arch" "root=LABEL=data rootflags=subvol=Arch_root,rw,ssd,compress-force=lzo,space_cache,relatime"
最初のpacman
を介したrefind-efi
パッケージのインストールは別として、必要な数の個別のインストール/構成をセットアップするために必要なのはそれだけです。上記の文字列の大部分は、カーネルパラメータとして指定されたbtrfs固有のマウントオプションで構成されることに注意してください。より一般的な/boot/refind_linux.conf
は、おそらく次のようになります。
"Menu Entry" "root=/dev/sda2"
そして、それだけで十分です。
それでもELILOが必要な場合は、上記のリンクでインストール手順を見つけることができます。 rEFIndが必要な場合は、最初の段落にリンクがあります。基本的に、UEFIブート構成を行う場合は、最初に rodsbooks.com をお読みください。
GRUB2の代わりにLILOを使用しています。正直なところ、それは私の選択ではありませんでした-GRUB2のインストールはDebian Live CDインストーラーで失敗しましたが、その後LILOをインストールして成功しました。私は2歳のラップトップでDebian Stableを実行しています。 LILOは完璧に動作します。
UEFI BIOSを使用している場合でも、LILOは引き続き使用できます。 UEFIは通常、Linuxカーネルを直接ロードできます。ただし、これはUEFI自体に依存します。
ただし、1台のマシンで複数のOSを起動する場合など、起動選択画面が必要な場合は、小さなブートローダーが便利な場合があります。
代わりに [〜#〜] extlinux [〜#〜] を使用することを検討します。 SYSLINUXのバリアントですが、ext
タイプのパーティションにあります。
EXTLINUXの優れている点は、LILOよりも拡張性が高く、多くのオプションがある一方で、シンプルであり、アクティブに維持されていることです。
update-grub
に相当するものを覚えていません。ただし、Debianでまだサポートされている古いシステムがあります。 (これは私のARMサーバー)のubootに使用されます)。
最新のカーネルは/boot/vmlinuz
にシンボリックリンクされており、initrdは/boot/initrd.img
にシンボリックリンクされています。カーネルパッケージによって更新されます。ブートローダーはそれらにポイントされ、各ブートでシンボリックリンクを逆参照します。
したがって、回復オプションを取得できない場合があります。いずれにしても、これは最も広くテストされているオプションにはならないので、正常に機能するブートディスクを維持することをお勧めします:-)。
更新:目標が最新のコンピューターで文字通りLILOを実行すること以外の場合は、おそらく他の回答で説明されているように、より良い代替案があります:)。
上記は、LILOのオリジナルのBIOSベースのバージョンに対してのみ意味があります。セキュアブートまたは同じメニューからWindows 8をブートしたくない場合、最新のハードウェアはEFIに加えてBIOS互換性を提供します。理論的にはELILOを機能させることはできますが、セキュアブートやWindows 8のロードはサポートしていません。ELILOは一般的に意味をなさなくなったので、背後にコミュニティはほとんどないと思います。