最近、GRUB ntldr
モジュールを偶然見つけました。
どうやら使用できるものの1つは、chainloader
以下の例のようにWindowsのNTバージョン6.0以降を起動する代わりとして使用できることです。(Windowsパーティションのボリュームブートレコードが破損している場合に非常に便利です。)
menuentry "Windows 7 (bootmgr on /dev/sda1)" --class windows --class os {
insmod part_msdos
insmod ntfs
insmod ntldr
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
ntldr ($root)/bootmgr
}
このブートディレクティブの使用方法に関する詳細はどこで入手できますか?HTML版のGNU GRUBマニュアルを見たときにリストされていませんでした。
ckhanの答えに返信する
どうもありがとうございました!GRUB ntldr
コマンド/モジュールの詳細については、ソースコードを掘り下げてみる必要があると判断しました。しかし、あなたは私よりもはるかに良い仕事をしました。
電子メールのアーカイブを見て、コードを書いた人がどのようなデザインの議論をしたかを知ることは私には決してなかったでしょう。この方法は、将来非常に役立つ可能性があります。言及してくれてありがとう。
GRUB ntldr
サポートについての私の考え
- 区別がどれだけ意味するかはよくわかり
ntldr
ませんが、コマンドではなくモジュールです。または、必要に応じて動的にロードされるコマンド。ソースコードのリンクを
たどり、152行目()と159 行目()を見ると、ロードするコードがわかります... ...モジュールをアンロードしています。GRUBは、明らかに「コマンド」と思われる多くの機能をモジュールとして実装しています。私が知っている使用法の唯一の違いは、モジュールを使用する前に、コマンドでロードされていることを確認する必要があることです。余談: GRUBがをサポートしないのはなぜだろうといつも思っていました。コマンドは存在しますが、モジュールです。を返す場合、GRUB_MOD_INIT
GRUB_MOD_FINI
insmod ntldr
reboot
reboot
unknown command
insmod reboot
GRUBがreboot
コマンドを「記憶」できるようにします。
余談: GRUBがモジュールを「アンロード」するタイミングと理由は、まだわかりません。たぶん「ガベージコレクション」に似た何かの結果でしょうか?システムの電源を切って再起動した後でも、モジュールがロードされると持続するように見えることに気付きました。もちろん、あなたはそれに頼ることはできませんが、それは実際にどのように頻繁に機能するかのようです。 - 彼らがベースに
ntldr
しているのはおもしろいですchainloader
。私はchainloader.c
コードを見ていません。おそらく、Intel 16ビットリアルモードでも再配置の負荷がかかると思いますか?彼らのオプションとして彼らが実装しなかった
ことはむしろうれしいntldr
ですchainloader
。ウラジミールに同意します。カバーの下の類似点が何であれ、使用構文は非常に異なります。現在のアプローチはそれほど気味が悪いです。 - また、このコマンドをGRUBに追加することに対する熱意の明らかな欠如を見るのも興味深いです。どうやらGRUB開発者は、Windows パーティションブートレコード(PBR)の損傷は非常に少ないと考えていたようです。ただし、通常の十分なインストール中にそれを行う方法をスケッチすることができます。
ユーザーのシステムにWindowsがインストールされていると仮定して開始します。彼らは現在、Ubuntu(12.04 LTS)をWindows とともにインストールします。Ubuntuのインストール中のある時点で、GRUBのインストール先を明らかに決定できます。私が推測し始めることができない理由で、彼らの一部はWindowsがインストールされているパーティションにGRUBをインストールすることを決定します。
インストールが完了し、Ubuntuを正常に起動できます。ただし、GRUBメニューのエントリを選択してWindowsを起動しようとすると、Windowsは起動しません。代わりに、GRUBでWindowsを起動しようとすると、GRUBメニューが再表示されますか?
どうして?明らかに、彼らが実際に起こったことの一部をWindowsパーティションにGRUBをインストールすることを選んだとき、WindowsパーティションのPBRはGRUBのPBRで上書きされました。したがってchainloader +1
、Windowsブートローダーをチェーンロードするのではなく、GRUBを再ロードします。
IMOは、その状況でユーザーがWindowsを起動できるようにする最も安全で迅速な方法は、GRUBの新しいを使用することntldr
です。これは開発者にとって興味があるのだろうか。彼らはこのシナリオを予期していなかったと思う。
Windows以外のブートローダーntldr
とbootmgr
、GRUB ntldr
コマンドがロードできるのはなぜでしょうか?