WindowsをGrubで最初に読み込む方法

これは、動作中のブートローダーなしでは起動できないため、 "ライブ"システム(例えば、Knoppix)から生成されます linuxディストリビューションあなたのハードドライブにインストールされています。

基本的なブートセクタ情報

インストールが実際にどのように行われたかを説明する前に、BIOSとMS DOSを簡単に調べる必要があります。 ブートセクタの解釈(1つまたは複数)は、10年以上前に登場した原則に従って発生します。 以下では、いくつかのタイプのパーティションの存在を認識しているものとします。

メインレコーディングディスク(MBR)。 これは最初のセクターです ハードドライブ。 これは512バイトで、通常はわずかなプログラム(446バイトを超えない)を含んでいます。 以下は、4つのメインセクション(64バイト)とデジタル署名(2バイト)のパーティションテーブルです。

ブートセクタパーティション。

このようなセクタはMBRだけでなく、各パーティションにも存在し、実際には16セクタのハードディスク(8192バイト)を占有することができます。 ほとんどのファイルシステム ブートセクタ  パーティションは使用されません。つまり、データ自体は後続のセクタでのみ開始されます。 しかし、例外があります。 たとえば、XFSファイルシステムではすべてのセクタが使用されます。 XFSパーティションのブートセクタ情報が消去されると、ファイルシステムは崩壊します!

コンピュータを起動します。

BIOSが起動すると、最初のハードディスクのMBRレコードが読み込まれ、 rAM  最後の2バイトに55のAA 16進コードが含まれているかどうかを確認します。 これらのコードは、ロード可能なメディアを識別するために使用されます。 コードが一致する場合、ミニプログラムはブートセクタから実行されます。 MS DOSまたはWindows(Linuxではなく)がインストールされているコンピュータでは、システムパーティションのどれがアクティブとしてマークされているか(通常これが最初のパーティションです)が検出されます。 次に、このプログラムは、アクティブパーティションのブートセクタから別のプログラムをロードして実行します。 このプログラムは、すでにWindowsまたはMS DOSを実行する責任があります。

お使いのコンピュータに複数の ハードドライブブート時にハードドライブが要求される順序でBIOSに構成することができます。 したがって、最新のコンピュータでは、システムは 外部ドライブ  またはUSBフラッシュドライブ。 BIOSは、CDまたはDVDから起動するように設定することもできます。

WindowsとLinuxの平和的な共存を確保するためのいくつかの戦略があります。

最も一般的な方法は、MBRにLinuxブートローダをインストールし、実行するシステム(WindowsまたはLinux)を選択することです。

コンピュータがすでにインストールされている場合 windows版  (新しい9x / ME)では、Windowsブートローダが動作するように設定することができます。 利点は、MBRが触れる必要もないことです。 欠点は、設置プロセスが比較的複雑であることである。 WUBIを除いて、私はこのような操作を実行できるLinuxディストリビューションを知らない。 常に手動で作業する必要があります。

3番目のオプションは、メインパーティションをブートセクタにインストールし、このパーティションをアクティブとしてマークすることです。 このオプションを使用する場合、前のケースと同じ大きな利点があります.MBRに触れる必要はありません。 欠点は、メインパーティション(論理パーティションではない)だけで、パーティションのブートセクタに関係のないファイルシステムでのみ動作することです。 これらの制限が存在するため、このオプションはさらに検討しません。

バックアップMBR

root#cp / usr / lib / grub

次に、次のsetupコマンドを実行して実行します。 (hdl、12)の代わりに、/ bootディレクトリがあるハードディスクのパーティションのデバイス名を指定する必要があります。 注意してください - 多くの場合、/ bootディレクトリはシステムパーティションではなく、独自のパーティションにあります! 変数(hdO)は、設定する場所を示します。
  Windowsローダーを介して間接的に実行される場合。
  それが間接的に起動されている場合は、すでにMBRに入っているLinuxローダー(例えば、)を使用しています。あなたはそれに触れたくありません。 このオプションは、主に複数のLinuxインスタンスを並行して使用する場合に使用できます。
  プライマリパーティションのブートセクタにインストールされ、fdiskコマンド(キーA、ブート可能フラグを切り替えるコマンド)を使用して、このパーティションを「アクティブ」としてマークします。 この場合、MBRにあるプログラムは、アクティブなパーティションのブートセクタを考慮に入れます。 この方法は、GRUBや他のブートローダがすでにMBRにインストールされている場合と同様に、論理パーティションでは機能しません。

通常、このインストールにはLinuxシステムパーティションが使用されます。 つまり、Linuxを/ dev / sda7パーティションにインストールし、同じパーティションのブートセクタにGRUBをインストールする場合は、以下のコマンドを実行します。 MBRのインストールとの唯一の違いは、セットアップでは、(hdO)ではなく、必要なパーティションを指定することです。

root#grub grub\u003e root(hd1,12)grub\u003e setup(hd0,6)(ブートセクタ/ dev / sda7へのインストール)grub\u003e quit

注意

  いくつかのファイルシステムでは、パーティションブートセクタはブートローダや他のプログラムでは使用できません。 これらのシステムにはXFSが含まれています。 XFSパーティションのブートセクタにGRUBをインストールすると、ファイルシステムは破壊されます! このため、ブートセクタへのインストールはこのようなシステムには適用されません。

USBへのインストール

最新のコンピュータのBIOSでは、通常、USBメディアからシステムを起動することができます。 原則として、GRUBをインストールすることは可能です

フラッシュドライブのブートセクタでそれからブートする 窓を使って理論的にはすべてが単純ですが、実際には問題が頻繁に発生します。 問題の原因は2つあります。

マザーボードは、起動時にUSBドライブを正しく認識し、ダウンロードツールとして使用する必要があります。 フラッシュドライブは、2つの方法でフォーマットすることができます:「スーパーフロッピー」または ハードドライブ。 どのオプションが使用されるかはBIOSによって異なります。

また、BIOSでUSBサポートをアクティブにする必要があることに注意してください(通常、このために特別なBIOSパラメータが使用されます)。 Linuxとは異なり、GRUBはBIOSを介してのみUSBドライブにアクセスできます!BIOSがUSBドライブをブートディスクとして認識すると、(少なくとも一部では bIOSバージョン)GRUBがデータキャリアを「見る」順序は変わるでしょう。 ここで、USBドライブは最初のディスク(hdO)と見なされ、内蔵ハードディスクは(hdl)、(hd2)などで要求されます。必要に応じて、/ boot / grub / devices.mapを適宜変更してからGRUBをインストールします。

最適な方法は、まずフラッシュドライブにGRUBをインストールすることです。 Linuxが動作しているとき、GRUBは(hdn + 1)というフラッシュドライブを認識します。ここでnは最後の内蔵ハードドライブです。 あなたの linuxシステム前述の例のように/ dev / sdb13セクションにあり、コンピュータに2つの内蔵ディスクがある場合、フラッシュドライブが呼び出されます(hd2)。 MBRフラッシュドライブにGRUBをインストールするには、次のコマンドを使用します。

root#grub grub\u003e root(hd1,12)grub\u003e setup(hd2)(MBRにUSBメディアをインストールする)grub\u003e quit
  理想的な場合、再起動後、コンピュータはフラッシュドライブ上のMBR内のGRUBを検出し、期待どおりにmenu.l stにリストされているオペレーティングシステムをロードします。 オペレーティングシステムを起動するときに問題が発生した場合は、Cキーを押してGRUBメニューから対話モードに切り替え、catコマンドとタブキーを使用して、GRUBがハードドライブを認識できる名前を見つけます。 Escキーを押すとメニューに戻り、Eキーを使用してブートコマンドを変更してもう一度試してみることができます。

Linuxをインストールする ハードドライブUSB経由で接続します。 これまでは、USBフラッシュドライブはダウンロードを開始するためだけに使用されることが想定されていました。 しかし、Linux自体が大容量のフラッシュドライブやUSB経由で接続された外付けハードドライブに搭載されていると、状況は複雑になります。 ほとんどのディストリビューションでは、USBドライブを簡単にインストールできますが、起動時に問題が発生する可能性があります。 あなたは3つの主要な障害を克服する必要があります。 GRUB - 上記のように、USBドライブにGRUBをインストールするときに問題が発生する可能性があります。 このインストールがうまくいくかどうか試してみてください。 実験する bIOS設定  これらのプロパティをmenu.lstファイルに手動で設定しようとします。

カーネルのUSBモジュール - 起動時に、カーネルはUSBドライブにアクセスできる必要があります。 これを実現するには、必要なUSBモジュールをInitrdファイルに保存する必要があります。 Initrdファイルの作成方法と作成方法に関する基本情報は、次のセクションで報告します。

ハード・ディスクの名前は、(/ dev / sdaから/ dev / sdbに)変更される可能性があります(デバイスの名前は、コンピュータのブート方法によって異なります)。 したがって、/ etc / fstabファイル内で、また、デバイス名ではなくmenu.lstのカーネル行にルートパラメータを指定するときは、UUIDアノーマを使用することをお勧めします。 作業している場合は、uuidを使用してmenu.lstで、カーネルとInitrdファイルが配置されるパーティションを選択することもできます。

現代と一緒に働くとき マザーボード原則として、USBドライブに直接インストールされたLinuxを簡単に使用できます。 しかし、それを機能させるために、時には頑張って時間を費やす必要があります。 Linuxでの作業を始めたばかりの場合は、このオプションの使用をお勧めしません。
同じことを読む:

選択して起動するには オペレーティングシステム ブートアッププロセスの間、特別なプログラムが使用されます - ブートローダ 最も一般的なブートローダはGrubです。 いくつかのオペレーティングシステム(Windows上のLinuxなど)をインストールする場合、最後にインストールされたOSがブートローダーメニューに最初にインストールされます。

これにより、Linuxをメインシステムとして使用するユーザーには問題は発生しません。 しかし、あなたがまだ新しい人で、Linuxを第2のシステムで使いたいと思っていて、それでもWindowsが主流であれば、Windowsを最初にしたいと思うかもしれません。 この記事では、 ブートウィンドウ  最初は荒れ果てた。 2つの方法を考えてみましょう:Grubカスタマイザプログラムを使用し、手動で、Grubブートローダ設定ファイルを使用します。

グラブカスタマイザ

Grubカスタマイザは、Grubローダのさまざまなパラメータを設定するためのプログラムです。 ロードポイントの位置と順序を含む。 公式のリポジトリからプログラムをインストールすることができます。 たとえば、Ubuntuではppaを使う必要があります:

sudo add-apt-repository ppa:danielrichter2007 / grub-customizer
  $ sudo apt-get update
  $ sudo apt-get install grub-customizer

プログラムを起動するには、端末(Ctrl + Alt + T)を開き、grub-customizerと入力します:

プログラムが必要です ルート権一部のシステムでは、次のコマンドを使用する必要があります。

gksu grub-customizer

また、メインメニューからプログラムを実行することもできます。 メインウィンドウは次のようになります。


起動後数秒で、プログラムはインストールされているオペレーティングシステムをスキャンし、同じウィンドウ内でWindowsブートを最初に転送することができます。 これを行うには、目的の項目をクリックします。 右クリック  コンテキストメニューを開くには:


メニューの項目を選択します。 上がる。 このアクションは、Windowsが最初にリストに追加されるまで数回繰り返す必要があります。 これで、デフォルトでgrubがロードされます。

Windowsを元に戻したい場合は、逆の操作があります。 下に移動.

設定を保存するには、[保存]ボタンをクリックします。 終わった。 コンピュータを再起動して何が起こったかを見ることができます。


しかし、私は便利かもしれないいくつかのオプションに触れたいと思います。 Windowsを最初にGrubにロードする代わりに、デフォルトの起動項目を変更できます。 タブをクリックします。   基本設定:


ここでは、デフォルトで使用されるデフォルトの項目を選択するために、リスト エンゲージ:


さらに、デフォルトで最後にロードされたOSをロードすることができます。これにはチェックマークが付いています:


ターミナルからGrubをロードする順序を変更する

私が約束したように、今度は設定ファイルを使ってGrubでWIndowsを最初にロードする方法を見ていきます。 Grubの設定は/boot/grub/grub.cfgファイルにあります。

gksu gedit /boot/grub/grub.cfg

原則として、メニューバーは次のようになります。

メニューエントリitem_name --options(
...

たとえば、Windowsの項目:

menuentry "Windows 8(ローダー)(on / dev / sda1)" --class windows --class os $ menuentry_id_option "osprob
  er-chain-FC324E26324DE66C "(
....

さて、メニュー項目の順序を変更するには、この行と一緒にすべてを白抜きの括弧で切り捨て、他のすべての項目の前に貼り付けるだけで十分です。 その後、ファイルを保存することができます。 リブートして見る。 Windowsのブートがデフォルトです。 マイナスのみ この方法の  Grubの設定を更新すると、すべての設定が失敗します。

Grubカスタマイザでデフォルトでロードされたアイテムを設定するのと同じ方法で、これは端末で行うことができます。

/ etc / default / grubファイルを開きます。

gksu gedit / etc / default / grub

ここではラインに興味があります:

0を目的のロードするアイテムに置き換えると、番号ではなくアイテムの名前を指定することもできます。たとえば、次のようになります。

GRUB_DEFAULT = "Windows 8(ローダ)(/ dev / sda1上)"

次のコマンドで設定ファイルを開くことなく、利用可能なダウンロード項目を表示できます。

sudo grep menuentry /boot/grub/grub.cfg

最後にロードされたシステムのロードをカスタマイズして、これを行うこともできますし、行を追加することもできます

GRUB_SAVEDEFAULT = true

GRUB_DEFAULTで、savedを指定します:

GRUB_DEFAULT =保存済み

この方法の明白な利点は、更新中に情報がこのファイルから取得されるため、Grub構成の更新中の設定が失敗しないことです。 次に、設定を更新して、コマンドで設定を保存しましょう。

すべてのシステムにこのオプションがあるわけではないので、別のコマンドを使用することもできます:

grub2-mkconfig -o /boot/grub/grub.cfg

それだけです。 今、GrubでWindowsを最初に起動する方法を知っています。 しかし、この記事で紹介されている情報は、より幅広い目的に使用できます。 Windowsだけでなく、ブートシーケンスを管理する必要がある他のいくつかのシステムにも役立ちます。

ブートローダのインストールRed Hat Enterprise Linux ASシステムを特別な ブートディスクブートローダをインストールする必要があります。 GRUB(デフォルトでインストールされている)とLILOのどちらかを選択できます。 GRUBはRed Hat Enterprise Linux ASをお使いのコンピュータにダウンロードできるダウンローダプログラムです。 また、Windows 9xなどの他のオペレーティングシステムをロードすることもできます。 この画面では、ブートローダの設定方法(インストールする場合)とブートローダの設定方法(GRUBまたはLILO)を定義します。 インストールするブートローダを選択します。 LILOを使用する場合は、GRUBではなく、LILOが選択されていることを確認してください。



図3-9。 ブートローダをインストールする

ブートローダー(GRUBまたはLILO)をインストールする場合、インストールする場所を決定する必要があります。 ブートローダは、次の2つのいずれかの場所にインストールできます。

マスターブートレコード(MBR))これは、システムコマンダーやOS / 2のブートマネージャーなど、別のオペレーティングシステムのブートローダーがMBRにインストールされていない限り、ブートローダーの推奨場所です。 ブートローダをMBRにインストールするときは、コンピュータの電源を入れた直後にGRUB(またはLILO)がブートを実行するように指示します。 カスタマイズされた (root)の最初のセクタ他のオペレーティングシステムのブートローダ(OS / 2のブートマネージャなど)をすでに使用している場合にお勧めします。 この場合、まずこのローダが制御を取得します。 ブートローダを設定してGRUB(またはLILO)を起動すると、Red Hat Enterprise Linux ASが起動します。

システムにインストールされるブートローダー:GRUBまたはLILOを選択します。 Red Hat Enterprise Linux ASのみを使用する場合は、ブートローダをMBRにインストールしてください。 コマンドにデフォルトのパラメータを追加する場合は gRUBブート  またはLILOをフィールドに入力します カーネルパラメータ。 指定されたすべてのパラメータは、起動時にLinuxカーネルに転送されます。 - このパラメータを使用すると、/ bootパーティションの1024シリンダ制限を克服できます。 システムがLBA32拡張をサポートしている場合、1024シリンダを超えてシステムをブートできるので、/ bootパーティションをその境界を越えて移動することができます。 この段階のインストーラがBIOSでこの拡張機能のサポートを判断しなかった場合は、パラメータを設定します LBA32の強制使用(通常は不要)(LBA32の強制使用(通常は不要))この表には、他のオペレーティングシステムのセクションを含むすべてのパーティションの一覧が表示されます。 ルートを含むセクション ファイルシステム  現場でのRed Hat Enterprise Linux AS ブートラベル(ブートラベル)  Red Hat Linuxとして指定されています。 他のセクションにもタグがあります。 他のセクションのラベルを追加する(または既存のラベルを変更する)場合は、そのセクションをクリックして強調表示します。 セクションを選択すると、フィールド内の名前を編集してラベルを変更できます ブートラベル.

  回復モード

リカバリモードを使用する必要がある場合は、次の方法でこれを行うことができます。CDからブートした後、boot:プロンプトでlinux rescueと入力します。 作成したネットワークブートディスクからブートした後、boot:プロンプトでlinux rescueと入力します。 その後、ネットワークからリカバリディスクイメージをダウンロードするように指示されます。 作成した起動ディスクから起動したら、boot:プロンプトでlinux rescueと入力します。 次に、インストール方法と正しいパスを選択してインストールをダウンロードできます。 リカバリモードの詳細については、を参照してください。   オフィシャルRed Hat Linuxカスタマイズガイド.

  代替システムローダー

GRUBまたはLILOを使用してRed Hat Enterprise Linux ASシステムをブートしたくない場合は、次のオプションを選択できます。

ブートディスクインストーラによって作成されたディスクを使用できます(完了している場合)。 LOADLIN MS-DOSからLinuxを起動できます。 残念ながら、これには、Linuxカーネルのコピー(およびSCSIアダプタを使用している場合は元のRAMディスク)がMS-DOSパーティションに置かれている必要があります。 これは唯一の方法です:Red Hat Enterprise Linux ASシステムを別の方法(たとえば、LILOまたはフロッピーディスクを使用して)でロードしてから、カーネルをMS-DOSパーティションにコピーします。 LOADLINは、ftp://metalab.unc.edu/pub/Linux/system/boot/dualboot/または対応するミラーで入手できます。 SYSLINUXSYSLINUXは、LOADLINに非常によく似たMS-DOSプログラムです。 ftp://metalab.unc.edu/pub/Linux/system/boot/loaders/と対応するミラーで入手できます。 商用ブートローダ市販のオペレーティングシステムのブートローダを使ってLinuxをブートすることができます。 たとえば、System CommanderとPartition MagicはLinuxをブートできます(Linuxのルート(ルート)パーティションにGRUBまたはLILOがインストールされている必要があります)。

  マルチプロセッサプラットフォーム、GRUBおよびLILO

このセクションは、SMP(マルチプロセッサー)プラットフォームにのみ適用されます。 インストーラがシステム上でマルチプロセッシングプラットフォームを検出すると、/ boot / grub / grub.confまたは/etc/lilo.confに(ブートローダに応じて)2つのエントリが作成されます。 grub.confファイルには、Red Hat Linux(カーネルバージョン)とRed Hat Linux(カーネルバージョン-smp)というエントリが表示されます。 デフォルトでは、Red Hat Linuxがブートします(カーネルバージョン-smp)。 ただし、マルチプロセッシングカーネルを起動するときに問題が発生した場合は、Red Hat Linux(カーネルバージョン)のバージョンをダウンロードできます。 システムは同じ機能を保持しますが、1つのプロセッサでのみ機能します。 linuxとlinux-upエントリは、lilo.confファイルに表示されます。 デフォルトはlinuxをダウンロードすることです。 ただし、マルチプロセッシングカーネルを起動するときに問題が発生した場合は、Linuxアップバージョンをダウンロードできます。 システムは同じ機能を保持しますが、1つのプロセッサでのみ機能します。

Linuxで最も恐ろしいのは恐ろしい "ブートローダ"という言い回しです。 主な理由  これは、最も新しい linuxユーザー  動作するだけで働いた windowsシステム本格的な初期ローダーがない、またはユーザーとの対話が最小限に抑えられています。 Windowsの世界では、彼らはブートローダについて考えたことはありませんでした。 それらのために、オペレーティングシステムをロードするプロセスは完全に透過的でした。 彼らがしたほとんどは、 Windows回復  問題を解決するコンソール。 したがって、彼らは最も重要な部分の1つを知る必要があります。 ソフトウェア  コンピュータ - オペレーティングシステムをロードする小さなプログラム。

この記事の目的は、GRUBブートローダに関する基本的な情報を提供することです。 Linuxで自分の他の記事を読んだら、パーティションやLinuxの規約、コマンドラインに精通していると思います。 この知識をさらに深めるためには、次のステップを踏むことは理にかなっています。 GRUBのしくみと、 ブートメニューオペレーティングシステムの仕組み、表示されるエラーの修正方法、メニューの修復方法などを理解するのに役立ちます。 gRUBブートローダ  必要に応じて、異なる作業環境で複数のオペレーティングシステムをインストールする方法について説明します。

早い段階で インストールされたシステム  私たちはすべての努力をしたインストーラに頼っていました。 実際、GRUBの恐ろしい設定は完全に単純で完全に可逆的な手順です。 GRUBブートローダを習得することは、Linuxを使用する際のユーザのスキルを高める上で非常に重要なステップです。

しかし、まず、重要な序文。 この記事は、GRUBについて学ぶのに役立つ説明情報と例から構成されています。 もちろん、これはすべてインターネットにあります。 しかし、新しいLinuxユーザーは、(特にPC - パーソナルコンピュータが起動しない場合は)関連する情報を検索するのに時間を費やすことがあります。 このマニュアルの目的は、マルチブートインストールの一般的な問題に対する簡単で迅速な解決策を提供することです。 linuxのインストール  オペレーティングシステム。

  1. はじめに
    1. GRUBの設定
      1. GRUBのインストール
        1. 典型的な問題
          1. 削除後にGRUBを復元するには?
          2. リンク

              すべてにファイルがあります

            GRUBの秘密をうまくマスターするには、* NIX指向のオペレーティングシステムの基本原則の1つを理解する必要があります。 すべてがファイルです。 ハードディスクやパーティションでもファイルとして扱われます。 これは魔法ではない。 これを覚えておけば、ハードディスク上のパーティションを変更するという危険な作業は、ファイルを操作することと変わりません。 ファイルマネージャ  (またはコマンドライン)。

            これを知ったので、技術的詳細の詳細な調査に進むことができます。

              はじめに

            GNU GRUBは、さまざまなフリーで独自のオペレーティングシステムをロードできるブートローダ(ブートローダまたはプライマリブートローダ)です。 GRUBはLinux、DOS、Windows、BSDでうまく動作します。 略語GRUBは、GRとUnified B ootloader(メイン統合ブートローダ)の略です。

            GRUBは動的に構成可能です。 これは、ブート時にユーザがGRUB設定を変更できることを意味します。 たとえば、既存のブートレコードを変更したり、新しいユーザーレコードを追加したり、異なるオペレーティングシステムカーネルを選択したり、initrdを変更することができます。 GRUBは論理ブロックアドレスモードもサポートしています。 つまり、お使いのコンピュータに最新のBIOSが搭載されている場合、8GB(最初の1024シリンダ)以上のハードディスク容量が利用可能になる可能性があります。 したがって、GRUBは自動的にすべてのスペースを利用できます。

            GRUBは、任意のデバイス(フロッピーディスク、フロッピーディスク、ハードディスク、CD-ROMドライブ、USBドライブ、ネットワークドライブ)から起動またはインストールでき、オペレーティングシステムをさまざまなソースからロードすることができます。 ネットワークドライブ。 また、オペレーティングシステムイメージをロードする前に展開することもできます。

            GNU GRUB Manual 0.97マニュアルより、この記事よりも多くの情報を得ることができます。

              LILOとは何ですか?

            LILOと呼ばれる別のLinuxブートローダ(Linuxのブートローダーを意味する最初の文字LI nux LO aderで構成されている)について聞いたことがあります。 LILOは多くのLinuxユーザーに適した変種ですが、私はGRUBが 最良の選択肢  いくつかの理由から:

            • LILOは16種類のブート設定のみをサポートしており、GRUBは無制限の設定をサポートしています。
            • LILOをロードできません ローカルネットワークグラブ缶。
            • LILOは設定ファイルを変更した後で毎回上書きされなければならず、GRUBではこれは必要ありません。
            • LILOにはコマンドインタラクティブインターフェイスはありません。

            上記を要約すると、GRUBは勝者のように見えることに注意してください。 だから、この小さな人ができることをあなたに教えてあげましょう。

              グラブはどのように機能しますか?

            コンピュータが起動すると、BIOSはハードドライブ、フロッピーディスク、CD-ROM、またはBIOSによって認識される他のデバイスのような最初の起動デバイスに制御を移します。 簡単にするために、これはハードディスクであると仮定しています。

            ハードディスクドライブの最初のセクタは、マスタブートレコード(MBR)と呼ばれます。 このセクタの長さはわずか512バイトです。 これにはメインローダーと呼ばれる小さなコード(446バイト)とパーティションテーブル(64バイト)が含まれています。 パーティションテーブルには、プライマリおよびセカンダリのハードディスクパーティションの説明が含まれています。

            デフォルトでは、MBRコードはアクティブなパーティションでスキャンされ、見つかった場合はそのブートセクタがメモリにロードされ、制御がそこに転送されます。

            GRUBは、デフォルトのMBRコードを独自のコードに置き換えます。

            同時に、GRUBの作業はいくつかの段階で構成されています。

            ステージ1:MBRの宿泊施設。 MBRのサイズが小さいため、必要なすべてのデータが含まれているステージ2へのリンクのみが配置されます。

            ステージ2:ユーザーインターフェイスのすべてのコンポーネントとGRUBの作業に必要な設定が含まれている構成ファイルに移行します。 ステージ2はディスク上のどこにでも置くことができます。 ステージ2の結果、構成テーブルが見つからない場合、GRUBはブートプロセスを終了し、ユーザーがブート構成を手動で選択できるようにします コマンドライン.

            ブート情報をMBRの直後に置くことができない場合に使用されるステージ1.5もあります。

            ステージの構造によって、GRUBのかなりの量(〜20〜30K)が得られます。 したがって、GRUBは非常に複雑で、ほとんどのブートローダと比較して設定が容易です。パーティションローダは、コンパクトで簡単にパーティションテーブルの制限に適合します。

              GRUBの用語

            このセクションは、GRUBを手に入れずにGRUBを使い始めるのを助けることを目的としています。 次のセクションでは、GRUBの実際のファイルと手動設定について説明します。

            GRUBには独自の規則がありますが、これはLinuxで使用されている従来の規則とは少し異なります。

            典型的なGRUB起動の例を次に示します。

               (hd0,1)

            • GRUBメニューリストにリストされているすべてのデバイスを囲む必要がある括弧。
            • hdはハードドライブを意味します。 フロッピーディスクはfd、CD-ROMはcdなどと呼ばれます。
            • 最初の数字(修飾されたユーザーの場合は整数)は、物理ハードディスクの番号へのリンクです。 最初のドライブのナンバリングはゼロから始まります。 一例として、hd2は3番目の物理ハードディスクへのリンクです。
            • 2番目の数字は、選択したハードディスクのパーティション番号へのリンクです。 セクションの番号付けもゼロから始まります。 この場合、1は第2セクションに対応する。

            GRUB(メニュー)では、IDEドライブとSCSIドライブ、またはプライマリパーティションとロジカルパーティションは区別されません。 どのハードディスクまたはパーティションをブートするかを決定するタスクは、BIOSとステージ1で決まります。

            ご覧のとおり、このコンベンションは非常に簡単です。

            1次セクションは0から3(hd ?, 0)、(hd ?, 1)、(hd ?, 2)、(hd ?, 3)で指定されます。 追加セクションの論理パーティションには、4から始まる番号が付けられます。 それらの番号は、ハードディスク上のプライマリパーティションの現在の数に依存しません。 たとえば、(hd1,7)。

            この入力だけでは、オペレーティングシステムをロードするのに十分ではありません。

            GRUBはまた、起動するオペレーティングシステムイメージを知る必要があります。 これらのパラメータと特別なフラグ(キー)は、各起動デバイスに割り当てられます。 たとえば、Windowsセーフモード用の特別なフラグです。

            次に、UbuntuのみをロードするGRUBメニューの例を示します。

            次に、トリプルブート構成(SUSE 10.2、Ubuntu 6.10、およびWindows XP)を備えたコンピュータのGRUBメニューの例を示します。 これは私の既存のマシンの中の本当のmenu.lstです。


            このデータの意味を理解してください。 コメント化されていない行のみが考慮されます。 コメントは 特殊文字  # いくつかの連続する灰色のx(前の行のインジケーター)で始まる行は、前の行の続きです。 言い換えれば、テキストは、テキストエディタウィンドウのサイズと画面解像度を考慮して、長い行の画面上の視覚を改善するために、単に別の行に転送されます。

            デフォルト0タイムアウト8

            最初の行(デフォルトは0)は、リストの最初のオペレーティングシステムがロードされることを意味します。 私たちの場合、これはSUSE 10.2です。 2行目(タイムアウト8)は、デフォルトのシステムがブートする前に、ブートするシステムをユーザーが選択する時間(秒)を示します。 シンプルではないですか?

            Gfxmenu(hd0,2)/ boot / message

            GRUBメニューはグラフィックにすることができます。 色の背景といくつかの追加要素を含むエレガントなユーザービューを表示するために必要なものはすべて、最初の物理ディスク、3番目のパーティション(hd0.2)にあります。 これはあなたが気付いたように、主要なセクションです。

            タイトルopenSUSE 10.2 root(hd0,2)kernel / boot / vmlinuz -... initrd /boot/initrd.img -...

            これはメニューの最初のオペレーティングシステムです。

            • title(title) - 基本、意味と同じ意味です。 この行は、ユーザーがメニューを読みやすくするためのものです。
            • root(hd0,2)は、設定ファイルがあるGRUBを指定します。 この例では、(hd0,2)/ boot / grubにあります。
            • kernel / boot / vmlinuz -...現在のオペレーティングシステムのカーネルモジュールを読み込みます。 いくつかの類似した画像が利用可能であるかもしれない。 / boot / vmlinuzの前にブートデバイスへのリンクがないという事実は、イメージがGRUB自体と同じハードディスクのパーティションに置かれていることを意味します。 この状況によって、デフォルトのオペレーティングシステムの選択が決定されることがよくあります。
            • initrd /boot/initrd.img -...は、ロード準備のためにシステムによって作成される一時的なシステムファイルです。 準備には、ロード前に、特定のハードウェア用のユニバーサルカーネルモジュールの適応が含まれます。

            カーネルを指定すると、追加のキーが使用されます。 それらは、ルートディレクトリ(ルート)の現在の位置、使用されるグラフィックスモード、およびスワップパーティション(スワップ)の位置を決定する。 この記事では、GRUBの高度な設定について詳しく説明しません。

            タイトルUbuntu、kernel ...(/ dev / sda9)カーネル(hd0,8)/ boot / vmlinuz -... initrd(hd0,8)/boot/initrd.img -...

            • この場合、タイトルの表示名と追加の技術的な詳細が表示されます。
            • カーネル(hd0,8)/ boot / vmlinuz -...最初のハードディスク(hd0,8)に9番目のパーティションを配置します。 ルートフラグ(/ dev / sda9)は、ルートパーティションにもカーネルモジュールが含まれていることを意味します。つまり、それらは同じハードディスクパーティションにあります。 通常、これは実用性と単純さの理由から行われます。 この場所は、オペレーティングシステムのインストール中に変更できます。
            • initrd(hd0,8)/boot/initrd.img -...ここでは新しいものはありません。

            カーネルモジュールセクションとルートセクションに関する注意:BIOSが1024シリンダ以上のアクセスをサポートしていない古いコンピュータでは、カーネルモジュールとルートパーティションを含むブートパーティションを別の場所にインストールする必要がありました。 しかし、Y2K問題(2000年問題)よりも若いコンピュータを使用するユーザーは、心配する必要はありません。

            あなたが注意を払うべきもう一つのことは詳細です ブートubuntu。 UbuntuはopenSUSEブートローダーを使ってロードされます。 このプロパティはMulti-boot Complianceと呼ばれます。 OpenSUSEはUbuntuを認識し、モジュール(特殊キーを含む)とマウントパーティションを正しく呼び出すことができます。 ただし、ほとんどのオペレーティングシステムはこのプロパティと部分的にしか互換性がありません(マルチブート準拠)。

            後で、同じ結果でUbuntuにさまざまな方法でログインする方法を紹介します。

            Windowsのタイトルrootnoverify(hd0,0)chainloader(hd0,0)+1

            • rootnoverify(hd0,0)は、マルチブート準拠機能がないため、openSUSEがWindowsオペレーティングシステムを特定できないことを意味します。 このため、カーネルに関する追加情報なしでオペレーティングシステムが呼び出されます。 GRUBは、必要なカーネルイメージが指定されたパーティションに存在し、オペレーティングシステムローダをマウントすると想定します。 ご覧のとおり、Windowsは最初のハードディスクの最初のパーティションにインストールされていました。 これはシステムにとって最適な場所です。
            • chainloader(hd0.0)+1コマンドは、直接ロードできないオペレーティングシステム用に特別に設計されています。 当然のことながら、Windowsオペレーティングシステムを直接ロードすることはできません。 チェーンローディング方式を使用してロードされます。 この名前が示すように、GRUBは、ブートシーケンスの制御を、デバイスにある別のブートローダに移します。このブートローダは、GRUBメニューにリストされています。 これは、WindowsオペレーティングシステムまたはLinuxなどの他のオペレーティングシステムである可能性があります。

            Ubuntuに戻ってみましょう。 Ubuntuを別の方法で読み込むことができると私は言ったことを覚えていますか? 実際には、Windowsの場合と同様に、チェーンロードされたものを使うことができます。

            タイトルUbuntuルート(hd0,8)チェーンローダー(hd0,8)+1

            これも同様に機能します。

            次のメニュー項目を使用すると、SUSEをフェールセーフモードでロードできます( セーフモード)。 この商品には貴重で有益な情報は含まれていないので、私たちの知識を損なうことはありません。

            いくつか例を挙げておきます。

            以下は、Ubuntu menu.lstに記録されている有効な例です(もちろん、コメントアウトされています)。

            タイトルWindows 95/98 / NT / 2000ルート(hd0,0)makeactive chainloader +1タイトルLinuxルート(hd0,1)カーネル/ vmlinuzルート= / dev / hda3 ro

            これで、GRUB言語を簡単に理解できます。 私たちはタイトルで始まりました。 rootは、Windowsカーネルを見つけてマウントすることを期待する特定のパーティションです(rootnoverifyこのジョブは提供されます)。 windowsブートローダ)。 GRUBルートデバイスの前の行で指定されたディスク上のルートディレクトリでパーティションをアクティブにするmakeactiveコマンド。 つまり、システムのターゲットパーティションを指定せずに(このパーティションはアクティブなパーティションと同じなので)chainloaderコマンドが実行されます。

            2番目のメニュー項目はさらに簡単です。 私たちはLinuxと呼ばれ、パーティションを定義し、カーネルをロードしました。 この場合は非常に面白いです。 カーネルイメージとルートパーティション(ルートまたは/)は異なるパーティションに存在するためです。 このケースは、古いコンピュータまたは1つのブートパーティションを持つコンピュータの場合と非常に似ています。

            そして最後に、絶対に狂ったもの:

            あなたはすべてが簡単だと理解しています! あなたの手を置くと、すべての疑念は消えてしまいます。

            詳細は、GNU GRUBマニュアル(日本語訳)0.97を参照してください。

              GRUBの設定

            ほとんどの場合、GRUBを設定する必要はありません。 オペレーティングシステムをインストールすると、GRUBが自動的にインストールされ、対応する文字列が次の場所に追加されます。 設定ファイル特に選択された場合 正しい順序  オペレーティングシステム(権威主義者、つまり、Windowsのようなオペレーティングシステム、最初は、柔軟なオペレーティングシステム、つまりLinuxとそのファミリ)のインストール。

            ただし、何か問題が生じた場合は、どこで何をすべきかを知る必要があります。

              GRUBのインストール

            GRUBはさまざまなデバイスにインストールできます。 ほとんどの人は、ハードディスクにGRUBをインストールするプロセスに興味があります。 しかし、他の設定の研究はまったく傷つくことはありません。 もちろん、あなたは上に移動することができます。

            以前はGRUBをインストールしていないので、必要なファイルの場所を知る必要があります。

            GRUBがインストールされている場合、そのメニューはルートパーティション内にあります:

               /boot/grub/menu.lst

            いつも、いつも バックアップコピー  変更前のこのファイル!

            また、GRUBファイルは、お使いのオペレーティングシステムのイメージ(通常はCD)内に置くことができます。

               / usr / lib / grub / i386-pc

            それにもかかわらず、ここに別の記事を読んで喜んでいない人のために、彼女の短いバージョンがあります。

            ターミナルまたはテキストエディタを使用して、PC(パーソナルコンピュータ)の環境に関する情報を表示することができます。 テキストエディタでファイルを開くには、コマンドラインでテキストエディタ、ファイル名、およびパスを指定する必要があります。 開くには システムファイル  スーパーユーザー権限(システムファイルの場合はsuまたはsudo)が必要です。

               $ sudo vi / etc / fstabまたは$ sudo gedit / etc / fstab

            あるいは、単にcatコマンドを使って端末の中に直接ファイルの内容を表示することもできます。

               $(sudo)cat / etc / fstab

            少数 有用なコマンドこれは、ブート、ハードディスク、パーティションを扱う場合に便利です。

            パーティションテーブルを表示します。

               $ fdisk -l

            マウントされたパーティションの一覧を表示します。

               $ cat / etc / fstab

            ここで、GRUBをインストールするために必要なものとその場所を知りました。

              グラブフロッピーディスク

            フロッピーディスクにGRUBをインストールするには、オペレーティングシステムイメージのディレクトリからフロッピーディスクの1番目と2番目のセクタにファイル(ステージ1とステージ2)をコピーする必要があります。 このために、セクタごとに情報をコピーするコマンドを使用します。

            実行する必要があるコマンドのリストを以下に示します(マニュアルから取ってあります)。

               $ cd / usr / lib / grub / i386-pc $ dd if = stage1 / dev / fd0 bs = 512 count = 1 $ dd if = stage2 of = / dev / fd0 bs = 512 seek = 1

            / dev / fd0は最初にマウントされたフロッピーディスクドライブ、bsは指定されたブロックサイズ(バイト単位)、countはコピーするブロック数を示す命令、seekは次のように表示されます。 記録する前にスキップするブロックの数。 このような一連の書き込みコマンドが選択されたことは驚くべきことではない。 最初はstage1を最初のセクタに記録し、stage2を2番目のセクタにコピーしました(最初のセクタを見逃して記録しました)。

            あなたはコマンドラインの完全な力を宿題として理解したので、私はあなたに他のチームの特質に対処するよう呼びかけます。 Wikipediaのddコマンドの詳細を読む。

            これは、フロッピーディスクにGRUBをインストールすることです。 オペレーティング・システムのイメージからステージをコピーしたので、構成するために必要なすべての情報があります。 もちろん、いつでも手動で変更することができます。 しかし、これについては次のセクションで説明します。

              デフォルトでGRUBをインストールする

            デフォルト設定は、GRUBステージ1をハードディスクの最初のセクタ(マスタブートレコード - MBRまたはパーティションテーブル)に配置することを意味します。 つまり、最近はまれになっているフロッピーディスクのような2番目のデバイスを使用せずに起動することができます。 後で(Windowsに似た)権威主義的なオペレーティングシステムをインストールするか、何らかの理由でマスターブートレコードを復元する場合(DOSコマンドラインからfdisk / MBRを実行する)、GRUBを削除し、 menu.lst。

            MBRにGRUBをインストールするには、外部メディア(フロッピーディスク、LinuxのライブCD)からブートする必要があります。 ダウンロード後、GRUBコマンドプロンプト(grub\u003e)が利用可能になるとすぐに、次のコマンドを実行します。

            GRUBルートデバイスを見つけます:

            Grub\u003e find / boot / grub / stage1

            GRUBは使用可能なすべてのステージ1を検索し、それらを画面に表示します。 複数のオペレーティングシステムイメージ(SUSE、Kubuntu、Mandrivaなど)がある場合は、複数のステージ1を利用できます。

            コンピュータに、ハードディスクの異なるパーティションにインストールされている次のオペレーティングシステムがあるとします。

            • SUSE on(hd0,1)
            • Kubuntu on(hd0,2)
            • Mandriva at(hd0,4)

            これらのシステムにはそれぞれ独自のGRUBがありますので、いずれもGRUBデバイスとして使用できます(GRUBファイルはそれぞれ独自のGRUBファイルを持っているため)。

            SUSE GRUBを使用する場合は、GRUBルートデバイスをハードディスクの最初のパーティション(hd0,1)にする必要があります。

            Grub\u003e root(hd0,1)

            MandrivaのGRUBを使いたい場合は、以下を行う必要があります:

            Grub\u003e root(hd0,4)

            ルートパーティションGRUBの位置を知っていれば 必要なファイルfindコマンドなしで実行できます。

            ルートパーティションを定義している場合は、情報をMBR(マスターブートレコード)に書き込む必要があります。

            Grub\u003e setup(hd0)

            最後に、grubコンソールを終了します。

            グラブ\u003e終了

            実行する必要のある一連のコマンドは次のとおりです。

            grub\u003e grub\u003e grub\u003e setup(hd0)grub\u003e quit

            別の物理ディスクまたはパーティションにGRUBをインストールできます。 この場合、シーケンシャルダウンロード(チェーンロード)を実行する必要があります。つまり、GRUBから別のローダーに制御を移す必要があります。これにより、システムがブートされます。

            これだけです。 シンプルで速い!

              grub-installでGRUBをインストールする

            この方法は、ディスクの自動変換を実行するため、(マニュアルに従って)安全性が低いとみなされます。 あなたは詳細なインストール支援が必要な初心者の方々のために落ち着かせることができます。これはおそらく最も望ましい方法です。

            1つの引数で1つのコマンドだけを呼び出す必要があります。ローダーをインストールする場所を指定します。 このコマンドは、同等のいくつかの方法で記述することができます。

               $ grub-install / dev / hda $ grub-install / dev / hd0 $ grub-install "(hd0)" $ grub-install hd0

            GRUBをインストールすると、オペレーティングシステムが起動します。 オペレーティングシステムをロードした後、GRUBを再度試すことができます。 設定データの追加や削除、シーケンシャルダウンロード(チェーンローダー)によるブートローダの変更、パーティションの表示と非表示など、手動で設定を変更します。

              GRUBの手動設定(インストール後)

            いつでもGRUBを再構成または再インストールできます。

              バックアップ!

            まず、GRUB構成ファイルを変更する前に、既存のメニューをバックアップすることを強くお勧めします。 別のマシンにコピーしたり、メニューを印刷して金庫に保管することもできます。

               $ cp /boot/grub/menu.lst /boot/grub/menu.lst_backup

            GRUBにアクセスするには、次のコマンドを実行します。 Linux端末:

               $ sudo grub

            しばらくすると、GRUBプロンプトが画面に表示されます。 招待状の存在は、その外観によって識別できます:grub\u003e。


            ブート時にGRUBコマンドラインにアクセスすることもできます。 GRUBメニューがロードされたら、キーボードのCボタンを押します。

              GRUBメニューに新しいオペレーティングシステムを追加する

            以前にインストールされたSabayonオペレーティングシステム(以前のSabayon Linux、以前はRR4、RR64はGentooディストリビューションのフォークであるLinuxカーネル上のディストリビューション)を持っているとします。 インストールプロセス中に、GRUBインストールをスキップします。 これは、以前にインストールされたGRUBの設定ファイルが変更されておらず、Sabayonに関するデータを含んでいないことを意味します。 そしてSabayonはロードできなくなります。

            注意:メニューのGRUBセクションは部屋と呼ばれます(おそらく、これはこのインスタンスの機能ですか?)。

            そこで、Sabayonをgrub設定ファイルに追加する必要があります。

            Sabayonがインストールされている場所がわかっている場合は、そのデータをmenu.lstに追加する必要があります。

            タイトルSabayon root(hdX、Y)チェーンローダー+1

            ただし、これは、コンピュータをメニューの編集なしで起動している間に実行できます。 インストールされたGRUBのロードが開始されたら、Cボタンを押してコマンドラインを起動します。 そして:

            Grub\u003e root(hdX、Y)grub\u003eチェーンローダー+1

            あなたが望むなら、あなたは使うことができます findコマンド  必要なデータを見つけることができます。

            これはすべてGRUBの魔法です。 ご覧のとおり、非常に簡単です。 しかし、GRUBのことを聞いたことがなく、奇妙なコマンドの長いリストしか見ていない人にとっては、それは難しいように見えるかもしれません。

            ブートストラップとGRUBの基礎がわかったので、より多くの情報を入手し、発生する可能性のある最も一般的な問題を分析するときです。

            トリッキーなやり方

            • フロッピーディスクまたはCDから起動する(LinuxのライブCDに収まるようにする)
            • GRUBコマンドラインにログインします。
              grub\u003e set(hd0)grub\u003e quit(grub\u003e grub\u003e setup / hrub / stage1)

            前と同じ!

              Windowsが最初のハードディスクにインストールされていない(スワッピング)

            GRUBはMicrosoftオペレーティングシステムを直接ダウンロードすることはできません。 特にWindowsが最初のハードディスクにインストールされていない場合は、シーケンシャルブートでも機能しないことがあります。 また、最初にWindowsをインストールする必要があることを覚えておく必要があります。最初のハードディスクと最初のパーティション(3Pルール - 最初の3つ)です。 同時に、Windowsを別のディスクにインストールした場合でも、スワップすることで問題を解決できます。

            ハードドライブ間の仮想スワップを行う必要があります。 従って:

            Grub\u003e map(hd0)(hd1)grub\u003e map(hd1)(hd0)

            これらの2行を追加したら、Windows(またはDOS)を起動する必要があります。

              いくつかのWindowsオペレーティングシステムが最初のハードディスクにインストールされています(Hide / Unhide)

            同じハードディスク上に複数のインスタンスがある場合、特にプライマリパーティションにインストールされている場合は、Windowsに問題が発生することがあります。 以前は、chainloaderコマンド(シーケンシャルブート)を使用したときに、Windowsブートローダに制御を移しました。 どのオペレーティングシステムローダーが今コントロールを転送しますか?

            この問題は、セクションを隠して表示することで簡単に解決できます。 GRUBがパーティションを隠してしまうと、Windowsでは見えなくなり、不確実さを避けることができます。 逆に、パーティションを表示すると、Windowsはそれを検出してパーティションから起動できます。

            ここに示した例は、マニュアルから取ったもので、この点を実証しています。

            我々が持っていると仮定 インストールされたWindows 第1および第2のハードディスクパーティションに保存します。 Windowsの最初のコピーをロードします。 次に、必要なすべての作業を行う次の一連のコマンドを実行する必要があります。

            grub\u003e unhide(hd0,0)grub\u003e hide(hd0,1)grub\u003e rootnoverify(hd0,0)grub\u003eチェーンローダー+1 grub\u003e makeactive

              パーティションのサイズを変更しました。 GRUBが動作していない

            これは興味深いケースです。 パーティションテーブルを変更するハードディスク(ハードディスクパーティションの管理、パーティションイメージからのパーティションの復元など)の操作にソフトウェアを使用した後に発生する可能性があります。 これは、通常、Windowsからこのような変更を行うと発生します。 Windowsはこのマシン上のMicrosoft製品以外のものに注意を払わないので、Linuxはこれらの変更について通知されません。 したがって、GRUBは動作しません。

            ほとんどの場合、ファイルシステムが損傷しており、この問題を解決するために修復する必要があります。

            ライブCDから起動し、次のコマンドを実行します(Linuxパーティションの場所を知っていることが前提です)。

            ファイルシステムチェックを実行する:

               $ fsck.ext2 / dev / hdXY

            XとYを、確認したいドライブ文字とパーティション番号(hda2、hdb3など)に置き換えます。

            ファイルシステムタイプをext2 / 3ファイルシステムに変更します。

               $ tune2fs -j / dev / hdXY

            次に、/ mnt / sysimageにルートファイルシステムをマウントし、grubを実行します。

               $ mount -t ext2 / dev / hdXY / mnt / sysimageまたは$マウント-t ext2 / dev / hdXY / mnt / sysimage $ cd / mnt / sysimage / sbin $ grub

            あなたは身近な環境に戻ってきました。

            詳細については linuxコマンドたとえば、fsck.ext2、tune2fsなどについては、Linux Reviewsのマニュアルページを参照してください。

            最後に、Ubuntuで答えられるいくつかの難しい質問

            テーマを継続する:
            アップル

            あなたのiPhone 7が画面をオンにしない場合にパニックになる理由はなく、起動しようとするとボタンが押されても反応しません。 それは心に留めておくべきです...