0.これは何ですか?
最も人気のあるブートローダーの新しいバージョンについて説明します。 オプションで安定したDebian 5.0 Lennyに登場したため、安定性について結論を出すことができます。 残念ながら、開発者自身によると、文書化する時間がないため、これまでのところ、すべてがコード内の入力、ロジック、コメントの方法で機能します:)
バージョンといえば。 最初の、そしてこれまでのところ、メインブランチは0.9x(すでにGRUB Legacyと呼ばれています)と見なされ、バージョン1.xxは正式にはGRUB 2と呼ばれています。
それで、このバージョンは、何もかもすべての古き良きデフォルトのブートローダーとどう違うのですか? 公式ウェブサイトはこのようなことを言っています :
- スクリプト、特にループ、条件、変数、関数のサポート
- GUI
- 動的なモジュールの読み込み。アセンブリ段階ではなく、実行時に機能を拡張できます
- 異なるアーキテクチャへの移植性
- 国際化
- GNU GRUBの柔軟性を高める真のメモリ管理
- ファイルシステム、ファイル、デバイス、ドライブ、端末、コマンド、パーティションテーブル、およびオペレーティングシステムのローダー用のモジュール式、階層型、オブジェクト指向フレームワーク
- 異なるプラットフォームからGRUBをインストールできるクロスプラットフォームインストール
- 難しい場合のセーフモード。 ステージ1.5が削除されました
- GRUB Legacyの設計中に行われたエラーの修正。後方互換性の要件により修正できませんでした。 たとえば、パーティションに番号を付ける方法
ご覧のとおり、多くの変更があります。 ここで、私は自分の人生で出会ったいくつかの実用的なポイントについて説明したいと思います。
伝統的に、私はあなたに警告します:私はすべての作業を安定したDebian Lennyで行いました。 コマンドまたはファイルの場所は異なる場合があります(そうすべきではありません)。
1.メニューの編集方法は?
これは、ブートローダーを使用する際の自然な質問です。 新しいバージョンでは、彼らは反対側から彼に近づきました。 古いmenu.lstファイルの類似物/boot/grub/grub.cfgを開くと、驚くでしょう。 ファイルヘッダーは次のとおりです。
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/update-grub using templates
# from /etc/grub.d and settings from /etc/default/grub
#
つまり、あなたは手でそれを支配することができますが、これは規則に従っていません。
規則に従って、メニューは/etc/grub.dのスクリプトと/ etc / default / grub configの設定に基づいて自動的に生成されるようになりました
スクリプトの説明を探した後、ファイル/etc/grub.d/READMEが見つかりました。このファイルは、新しいブートローダーの巧妙なデバイスに光線を当てています。 スクリプト名のプレフィックスが何のためにあるのかを調べます。
- 00_ *:00_header用に予約済み
- 10_ *:ブートレコード
- 20_ *:サードパーティプログラム(例:memtest86 +)
通常のシェル言語で記述されたスクリプト自体を見ることができます。 彼らは特別な困難を引き起こすべきではありません。 これらのスクリプトは、それぞれ可能性のあるディレクトリでコンパイルされたカーネルとinit.rdイメージを単純に検索します。
カーネルを自分でコンパイルすることに決めた場合、すべてが非常に簡単になります。適切なマニュアルを使用すると、debパッケージが得られます。 インストール中に、すべてが適切に配置され、ブートローダーの更新が開始されます。 スクリプトが機能すると、/ boot / grub / grub.cfgに新しいカーネルのメニューが更新されます。 単一の編集構成なし。
2.警告。
次に、もう一方の側面を見てみましょう。このような作業スキームでは何が起こる可能性がありますか?
- 特定のカーネルについては、特別なスクリプトを作成する必要があります。
- 例について詳しく説明する必要はありません。Xenカーネルをご覧ください。 それらは標準のものとわずかに異なるように起動するため、Xenカーネルの標準メニュー項目は良いものを起動しません。 誰かが興味を持っているなら、これについてもっと書きます。 ( UPD : 書いた )
- 「ある種の」スクリプトのためにメニューを手動で変更すると、次回(カーネルまたはGRUB自体を更新するとき)にスクリプトがエラーでクラッシュし、grub-pcパッケージは未構成と見なされます。 ルールに従ってすべてをやり直す必要があります。
- 上記のように、通常のドキュメントは非常に不足しています。 ブログやWikiページからの投稿を中断する必要があります。
3.結論
ご覧のとおり、GRUBは大きく変わっています。 気に入っても気に入らなくても、しばらくするとより多くの開発者がディストリビューションに追加するでしょう。 そしてそれは、コミュニティが新しい世代のブートローダーに移行するのをテストし、テストし、支援する必要があることを意味します。 頑張って!