目次
概要
この章では、SUSE® Linux Enterprise Desktopで使用されているブートローダGRUB(Grand Unified Bootloader)の設定方法について説明します。すべての設定操作には、特殊なYaSTモジュールを使用できます。Linuxでのブートに不慣れな場合は、以降の各セクションを読んで背景情報を理解してください。また、この章では、GRUBでのブート時に頻繁に発生する問題とその解決策についても説明します。
![]() | UEFIを使用するコンピュータ上にGRUBがない |
|---|---|
通常GRUBは従来のBIOSを備え、UEFI (Unified Extensible Firmware Interface) 上にあるコンピュータにインストールされます。CSMが有効になっていないUEFIコンピュータでは、 | |
この章は、ブート管理とGRUBブートローダの設定に重点を置いています。ブート手順は、総じて第9章 Linuxシステムのブートと設定で説明しています。ブートローダは、マシン(BIOS)とオペレーティングシステム(SUSE Linux Enterprise Desktop)の間のインタフェースになります。ブートローダの設定は、オペレーティングシステムの起動に直接影響を及ぼします。
次の用語は、この章で頻繁に使用されており、少し説明を加えた方がよいと思われるものです。
MBRの構造は、オペレーティングシステムに依存しない規則に従って定義されます。最初の446バイトは、プログラムコード用に予約されています。通常、ここにはブートローダプログラムやオペレーティングシステムセレクタの一部が保管されています。次の64バイトは、最大4つのエントリからなるパーティションテーブル用のスペースです。パーティションテーブルには、ハードディスクのパーティション分割とファイルシステムのタイプに関する情報が含まれています。オペレーティングシステムでハードディスクを処理するには、このテーブルが必要です。MBRの従来の汎用コードでは、1つのパーティションにだけアクティブのマークを付ける必要があります。MBRの最後の2バイトは、静的な「「マジックナンバー」」(AA55)を含む必要があります。一部のBIOSでは、異なる値を持つMBRは無効とみなされ、ブートの対象とはみなされません。
ブートセクタは、拡張パーティションを除くハードディスクパーティションの最初のセクタであり、その他のパーティションの「コンテナ」として機能するだけです。これらのブートセクタのうち512バイトのスペースは、関連パーティションにインストールされているオペレーティングシステムをブートするためのコードが占有します。これは、フォーマット済みのDOS、Windows、およびOS/2パーティションのブートセクタに該当し、ファイルシステムの重要な基本データも一部含まれています。これに対して、Linuxパーティションのブートセクタは、XFS以外のファイルシステムの設定直後は当初空になっています。そのため、Linuxパーティションは、カーネルと有効なルートファイルシステムが含まれている場合にも、単独ではブートできません。システムブート用の有効なコードを含むブートセクタの場合、最後の2バイトにはMBRと同じマジックナンバー(AA55)があります。
GRUBは、2つのステージで構成されています。ステージ1は、512バイトから成り、そのタスクは、ブートローダの第2ステージをロードすることだけです。その後、stage2が読み込まれます。このステージにいは、ブートローダの主要部分が含まれています。
一部の設定では、適切なファイルシステムからステージ2を検出し、ロードする中間ステージの1.5を使用できます。可能であれば、デフォルトでインストール時、またはYaSTを使用したGRUBの初回セットアップ時に、こ
stage2は、多くのファイルシステムにアクセスできます。現在、Windowsで使用されているext2、ext3、ReiserFS、Minix、およびDOS FATファイルシステムがサポートされます。BSDシステムで使用されているXFS、UFS、およびFFSも、特定の範囲までサポートされます。バージョン0.95GRUBには、「El Torito」仕様に準拠するISO 9660標準ファイルシステムを含むCDまたはDVDからブートする機能も用意されています。システムをブートする前にも、GRUBはサポートされているBIOSディスクデバイス(BIOSにより検出されるフロッピーディスクまたはハードディスク、CDドライブ、およびDVDドライブ)のファイルシステムにアクセスできます。したがって、GRUBの設定ファイル(menu.lst)を変更しても、ブートマネージャを新たにインストールする必要はありません。システムをブートすると、GRUBはメニューファイルと共にカーネルまたは初期RAMディスク(initrd)の有効なパスとパーティションデータを再読み込みし、これらのファイルを検索します。
GRUBの実際の設定は、次の4つのファイルに基づきます。
/boot/grub/menu.lstこのファイルには、GRUBでブートできるパーティションまたはオペレーティングシステムに関する情報がすべて含まれています。この情報がない場合、GRUBコマンドラインは、どのように処理を続行するかユーザの指示を求めます(詳細については、10.1.1.3項 「ブート手順実行中のメニューエントリの編集」を参照してください)。
/boot/grub/device.mapこのファイルは、デバイス名をGRUBとBIOSの表記法からLinuxデバイス名に変換するために使います。
/etc/grub.confこのファイルには、GRUBシェルでブートローダを正常にインストールするために必要なコマンド、パラメータ、およびオプションが含まれています。
/etc/sysconfig/bootloader このファイルはperl-bootloaderライブラリが読み取ります。これはブートローダをYaSTで設定するときと、新しいカーネルがインストールされるたびに使用されます。カーネルパラメータなどの設定オプションが含まれ、これはブートローダ設定ファイルにデフォルトで追加されます。
GRUBは、さまざまな方法で制御できます。グラフィカルメニュー(スプラッシュ画面)を使用して、既存の設定からブートエントリを選択できます。設定は、ファイルmenu.lstから読み込まれます。
GRUBでは、すべてのブートパラメータをブート前に変更できます。たとえば、メニューファイルを間違って編集した場合は、この方法で訂正できます。また、ブートコマンドは、一種の入力プロンプトで対話的に入力することもできます。詳細については、10.1.1.3項 「ブート手順実行中のメニューエントリの編集」を参照してください。GRUBには、ブート前にカーネルとinitrdの位置を判別する機能が用意されています。この機能を使用すると、ブートローダ設定にエントリが存在しないインストール済みオペレーティングシステムでもブートできます。
GRUBは、2種類のバージョンで存在します。ブートローダとして、または/usr/sbin/grub中のLinuxプログラムとしてです。このプログラムをGRUBシェルと呼びます。GRUBシェルは、インストールされたシステムにGRUBのエミュレーションを提供し、GRUBのインストールまたは新規設定の適用前のテストに使用できます。ハードディスクやフロッピーディスクにGRUBをブートローダとしてインストールする機能は、コマンドsetupの形でGRUBに組み込まれています。この機能は、Linuxの読み込み時にGRUBシェル内で使用できます。
/boot/grub/menu.lst¶
ブートメニューを含むグラフィカルスプラッシュ画面は、GRUBの設定ファイル/boot/grub/menu.lstに基づいており、このファイルにはメニューを使用してブートできるパーティションまたはオペレーティングシステムに関する情報がすべて含まれています。
システムをブートするたびに、ファイルシステムからメニューファイルを読み込みます。このため、ファイルを変更するたびにGRUBを再インストールする必要がありません。10.2項 「YaSTによるブートローダの設定」で説明しているように、YaSTのブートローダを使用してGRUBの設定を変更します。
メニューファイルにはコマンドが含まれています。構文はきわめて単純です。各行には、コマンド1つとオプションのパラメータがシェルと同様にスペースで区切って指定されています。これまでの経緯が理由で、一部のコマンドでは最初の引数の前に等号(=)を使用することができます。コメントを記述するには、行頭にシャープ記号(#)を入力します。
メニュー概要の中にあるメニュー項目を識別できるように、各エントリに対してtitle (タイトル)を設定します。キーワードtitleの後に続くテキスト(半角スペースも使用できます)は、メニューの中で、選択可能なオプションとして表示されます。そのメニュー項目が表示された場合、次のtitleまでに記述されているすべてのコマンドが実行されます。
最も簡単な例は、他のオペレーティングシステムのブートローダにリダイレクトすることです。該当するコマンドはchainloaderであり、引数は通常、他のパーティション内にあるブートブロックをGRUBのブロック表記に従って記述したものです。たとえば、次のようにします。
chainloader (hd0,3)+1
GRUBでのデバイス名については、10.1.1.1項 「ハードディスクとパーティションに関する命名規則」を参照してください。この例では、1台目のハードディスクの4番目のパーティションの最初のブロックを指定しています。
カーネルイメージを指定するには、kernelコマンドを使用します。最初の引数は、パーティションにあるカーネルイメージを表すパスです。他の引数は、そのコマンドラインでカーネルに渡されます。
ルートパーティションへのアクセスに必要なビルトインドライバがカーネルに用意されていない場合、または高度なhotplug機能のある新しいLinuxシステムが使用されていない場合は、initrdファイルへのパスを示す引数だけを指定して、別のGRUBコマンドでinitrdを指定する必要があります。initrdのロードアドレスは、ロードされるカーネルイメージに書き込まれるので、initrdコマンドは、kernelコマンドの後に記述する必要があります。
rootコマンドは、kernelとinitrdの各ファイルの指定を簡略化します。rootの引数は、デバイスまたはパーティションだけです。このデバイスは、すべてのカーネル、initrd、または次のrootコマンドまでデバイスが明示的に指定されて「ない他のファイルのパスに使用されます。
bootコマンドは各メニューエントリの最後に必ず含まれています。そのため、メニューファイルにこのコマンドを記述する必要はありません。ただし、GRUBをブート時に対話形式で使用する場合は、bootコマンドを最後に入力する必要があります。このコマンド自体は、引数を使用しません。単純に、読み込み済みのカーネルイメージ、または指定のチェーンローダをブートします。
すべてのメニューエントリを記述した後、その1つをdefaultエントリとして定義します。デフォルトエントリを指定しなかった場合、最初のエントリ(エントリ0)が使用されます。デフォルトエントリがブートされるまでのタイムアウトを秒単位で指定することもできます。通常、timeout および default は、メニューエントリより先に記述します。サンプルファイルについては、10.1.1.2項 「メニューファイルの例」を参照してください。
GRUBを使用する、ハードディスクとパーティションの命名規則は、通常のLinuxデバイスの命名規則と異なっています。どちらかというと、BIOSが使用する単純なディスクエミューレーションに似ており、構文は一部のBSDデリバティブで使用されているものに類似しています。GRUBでは、パーティション番号は0から始まります。これは、(hd0,0)は最初のハードディスクの最初のパーティションになります。ハードディスクがプライマリマスタとして接続されている一般的なデスクトップマシンでは、対応するLinuxデバイス名は/dev/sda1になります。
可能な4つの基本パーティションに、パーティション番号}0~3が割り当てられます。論理パーティション番号は4から始まります。
(hd0,0) first primary partition of the first hard disk (hd0,1) second primary partition (hd0,2) third primary partition (hd0,3) fourth primary partition (usually an extended partition) (hd0,4) first logical partition (hd0,5) second logical partition
GRUBは、BIOSデバイスに依存しているので、PATA(IDE)、SATA、SCSIおよびハードウェアRAIDのデバイスを区別しません。BIOSまたは他のディスクコントローラで認識されるすべてのハードディスクには、BIOSの中で事前に設定されたブートシーケンスに従って番号が割り当てられます。
一般に、GRUBには、Linuxデバイス名をBIOSデバイス名に正確にマップする機能がありません。このマッピングはアルゴリズムを使用して生成され、device.mapファイルに保存されるため、必要に応じて編集できます。ファイルdevice.mapについては、10.1.2項 「device.mapファイル」を参照してください。
GRUBのフルパスは、カッコ内のデバイス名と、指定のパーティションにあるファイルシステム内のファイルへのパスで構成されます。このパスはスラッシュで始まります。たとえば、単一PATA(IDE)ハードディスクの最初のパーティションにLinuxを含んでいるシステムでは、ブート可能カーネルを次のように指定できます。
(hd0,0)/boot/vmlinuz
次の例は、GRUBのメニューファイルの構造を示しています。このインストール例では、Linuxのブートパーティションが/dev/sda5、ルートパーティションが/dev/sda7、およびWindowsのインストールファイルが/dev/sda1にあります。
gfxmenu (hd0,4)/boot/messagecolor white/blue black/light-gray
default 0
timeout 8
title linux
root (hd0,4) kernel /boot/vmlinuz root=/dev/sda7 vga=791 resume=/dev/sda9 initrd /boot/initrd title windows
rootnoverify (hd0,0) chainloader +1 title floppy
rootnoverify (hd0,0) chainloader (fd0)+1 title failsafe
root (hd0,4) kernel /boot/vmlinuz.shipped root=/dev/sda7 ide=nodma \ apm=off acpi=off vga=normal nosmp maxcpus=0 3 noresume initrd /boot/initrd.shipped
最初のブロックは、スプラッシュ画面の設定を定義します。
背景画像 | |
カラースキーマ:白(前景色)、青(背景色)、黒(選択項目)、明るい灰色(選択項目の背景色)です。配色はスプラッシュ画面には影響しません。影響を受けるのは、Escキーを押してスプラッシュ画面を終了するとアクセスできるカスタマイズ可能なGRUBメニューだけです。 | |
デフォルトでは、最初の( | |
ユーザ入力がないまま8秒が経過した場合、GRUBは自動的にデフォルトエントリをブートします。自動ブートを無効にするには、 |
2番目の(最大)ブロックは、ブート可能な各種オペレーティングシステムを示します。個々のオペレーティングシステムに関するセクションはtitleで始まります。
最初のエントリ( | |
第2のエントリは、Windowsを読み込む役割を果たします。Windowsは、1台目のハードディスク( | |
次のエントリは、BIOS設定を変更することなく、フロッピーディスクからブートすることを可能にします。 | |
ブートオプション |
メニューファイルは必要に応じて変更できます。その場合、GRUBは変更後の設定を次回のブート時に使用します。このファイルを永続的に編集するには、YaSTまたは好みのエディタを使用します。また、対話形式で一時的に変更するには、GRUBの編集機能を使用します。詳細については、10.1.1.3項 「ブート手順実行中のメニューエントリの編集」を参照してください。
グラフィカルブートメニューでは、ブートするオペレーティングシステムを矢印キーで選択します。Linuxシステムを選択した場合は、ブートプロンプトからブートパラメータを追加入力できます。個々のメニューエントリを直接編集するには、<Esc>キーを押してスプラッシュ画面を終了し、GRUBテキストベースメニューを表示してから<E>キーを押します。この方法で加えた変更は、現在のブートだけに適用され、永続的に採用されることはありません。
![]() | ブート手順実行中のキーボードレイアウト |
|---|---|
ブート時は、USキーボードレイアウトだけが使用可能です。詳細については、図28.3「USキーボードレイアウト」を参照してください。 | |
メニューエントリの編集により、障害が発生してブートできなくなったシステムを容易に修復できます。これは、ブートローダの設定ファイルの誤りをパラメータの手動入力により回避できるからです。ブート手順の中でパラメータを手動で入力する方法は、ネイティブシステムを損傷せずに新規設定をテストする際にも役立ちます。
編集モードを有効にした後、矢印キーを使用して、設定を編集するメニューエントリを選択します。設定を編集可能にするには、もう一度<E>キーを押します。このようにして、不正なパーティションまたはパス指定を、ブートプロセスに悪影響を及ぼす前に編集します。<Enter>キーを押して編集モードを終了し、メニューに戻ります。次に、<B>キーを押してこのエントリをブートします。下部のヘルプテキストに、さらに可能なアクションが表示されます。
変更後のブートオプションを永続的に入力してカーネルに渡すには、ユーザのrootでファイルmenu.lstを開き、関連カーネルパラメータをスペースで区切って既存の行に追加します。
title linux
root(hd0,0)
kernel /vmlinuz root=/dev/sda3 additional parameter
initrd /initrdGRUBは、次回のシステムブート時に新規パラメータを自動的に使用します。または、この変更をYaSTのブートローダモジュールで行うこともできます。新規パラメータをスペースで区切って既存の行に追加します。
device.mapファイルは、GRUBおよびBIOSのデバイス名をLinuxのデバイス名にマップします。PATA(IDE)とSCSIのハードディスクが混在するシステムでは、GRUBは、特殊プロシージャを使用してブートシーケンスの判別を試みる必要があります。これは、GRUBがブートシーケンスに関するBIOS情報にアクセスできない場合があるためです。GRUBはこの分析の結果をファイル/boot/grub/device.mapに保存します。BIOS内のブートシーケンスをSCSIの前にPATAに設定するシステムのdevice.mapファイルは、たとえば、次のようになります:
(fd0) /dev/fd0 (hd0) /dev/sda (hd1) /dev/sdb
または
(fd0) /dev/fd0 (hd0) /dev/disk-by-id/DISK1 ID(hd1) /dev/disk-by-id/DISK2 ID
PATA(IDE)やSCSIなどのハードディスクの順序はさまざまな要因によって左右され、Linuxではそのマッピングを識別できないので、device.mapファイル内のシーケンスは手動で設定することができます。ブート時に問題に直面した場合、このファイル内のシーケンスが、BIOS内のシーケンスに対応しているかどうかチェックします。さらに、必要に応じてGRUBは、前者を一時的に変更するように指示します。Linuxシステムのブート後に、YaSTブートローダモジュールまたは好みのエディタを使用して、device.mapファイルを永続的に変更できます。
device.mapを手動で編集した後、次のコマンドを実行してGRUBを再インストールします。このコマンドにより、device.mapファイルが再読み込みされ、grub.confに指定されているコマンドが実行されます。
grub --batch < /etc/grub.conf
menu.lstおよびdevice.mapの次に重要な第3のGRUB設定ファイルは、/etc/grub.confです。このファイルには、GRUBシェルでブートローダを正常にインストールするために必要なコマンド、パラメータ、およびオプションが含まれています。
setup --stage2=/boot/grub/stage2 --force-lba (hd0,1) (hd0,1) quit
このコマンドは、同じパーティションに存在するブートイメージを使用して、最初のハードディスク(hd0、1)の第2パーティションにブートローダを自動的にインストールするようにGRUBに指示します。マウントされたファイルシステムからstage2イメージをインストールするには、--stage2=/boot/grub/stage2パラメータが必要です。一部のBIOSは、LBAサポート実装に欠陥があります。これを無視する解決策として、--force-lbaを使用します。
/etc/sysconfig/bootloader¶
この設定ファイルは、ブートローダをYaSTで設定するときと、新しいカーネルがインストールされる際にのみ、使用されます。perl-bootloaderライブラリで評価され、それに従ってブートローダ設定ファイル(GRUBの/boot/grub/menu.lstなど)が変更されます。/etc/sysconfig/bootloaderはGRUB固有の設定ファイルではありません。値はSUSE Linux Enterprise Desktopにインストールされたブートローダすべてに適用されます。
![]() | カーネルアップデート後のブートローダ設定 |
|---|---|
新しいカーネルがインストールされるたびに、perlブートローダは | |
LOADER_TYPE
システムにインストールされたブートローダを指定します(GRUBやLILOなど)。変更は勝手にしないでください。ブートローダは、手順10.6「ブートローダのタイプの変更」に説明されているように、YaSTを使用して変更します。
DEFAULT_VGA / FAILSAFE_VGA / XEN_VGA
起動時に使用されるフレームバッファの画面解像度と色深度は、カーネルパラメータvgaで設定されます。これらの値は、デフォルトブートエントリ、フェイルセーフ、XENエントリに使用する解像度と色深度を定義します。有効な値は次のとおりです。
表10.1 画面解像度および色深度の参照
|
640x480 |
800x600 |
1024x768 |
1280x1024 |
1600x1200 | |
|---|---|---|---|---|---|
|
8ビット |
0x301 |
0x303 |
0x305 |
0x307 |
0x31C |
|
15ビット |
0x310 |
0x313 |
0x316 |
0x319 |
0x31D |
|
16ビット |
0x311 |
0x314 |
0x317 |
0x31A |
0x31E |
|
24ビット |
0x312 |
0x315 |
0x318 |
0x31B |
0x31F |
DEFAULT_APPEND / FAILSAFE_APPEND / XEN_KERNEL_APPEND
ブートローダ設定ファイルのデフォルト、フェイルセーフ、XENブートエントリに自動的に付加されるカーネルパラメータ(vga以外)。
CYCLE_DETECTION / CYCLE_NEXT_ENTRY
ブートサイクル検出を使用するかどうか設定します。使用する場合は、リブートサイクルの際に/boot/grub/menu.lstから使用する代替エントリ(たとえば、Failsafe)を設定します。詳細は、/usr/share/doc/packages/bootcycle/READMEを参照してください。
オペレーティングシステムのブート前でも、GRUBはファイルシステムへのアクセスを可能にします。rootパーミッションを持たないユーザは、システムのブート後、アクセス権のないLinuxシステム上のファイルにアクセスできます。この種のアクセスを阻止したり、ユーザによる特定のオペレーティングシステムのブートを防止するために、ブートパスワードを設定できます。
![]() | ブートパスワードとスプラッシュ画面 |
|---|---|
GRUBにブートパスワードを使用する場合、通常のスプラッシュ画面は表示されません。 | |
ユーザrootとして、次の手順に従ってブートパスワードを設定します。
rootプロンプトで、grub-md5-cryptを使ってパスワードを暗号化します。
# grub-md5-crypt Password: **** Retype password: **** Encrypted: $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/
暗号化後の文字列を、menu.lstファイルのグローバルセクションに貼り付けます。
gfxmenu (hd0,4)/message color white/blue black/light-gray default 0 timeout 8 password --md5 $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/
これで、ブートプロンプトからGRUBコマンドを実行するには、先にPキーを押してパスワードを入力する操作が必要になります。しかし、ユーザはブートメニューから引き続き任意のオペレーティングシステムをブートすることができます。
ブートメニューから1つまたは複数のオペレーティングシステムをブートする操作を禁止するには、menu.lst内で、パスワードを入力しなければブートできないようにする必要のある各セクションにエントリlockを追加します。たとえば、次のようにします。
title linux kernel (hd0,4)/vmlinuz root=/dev/sda7 vga=791 initrd (hd0,4)/initrd lock
システムをリブートしてブートメニューからLinuxエントリを選択すると、次のエラーメッセージが表示されます。
Error 32: Must be authenticated
<Enter>キーを押してメニューを表示します。次に、<P>キーを押してパスワードプロンプトを表示します。パスワードを入力して<Enter>キーを押すと、選択したオペレーティングシステム(この場合はLinux)がブートします。
SUSE Linux Enterprise Desktopシステムでブートローダを設定する最も簡単な方法は、YaSTモジュールを使用することです。YaSTコントロールセンターで、+の順に選択します。図10.1「ブートローダの設定」で説明しているように、システムの現在のブートローダ設定が表示され、設定を変更できます。
タブを使用して、各オペレーティングシステムのブートローダセクションの編集、変更、削除を行うことができます。オプションを追加するには、をクリックします。既存のオプションの値を変更するには、マウスで選択してからをクリックします。既存のエントリを削除するには、エントリを選択してをクリックします。ブートローダのオプションをよくご存知でない場合には、はじめに10.1項 「GRUBによるブート」を参照してください。
タブで、タイプ、場所、高度なローダ設定に関する設定を表示および変更できます。
をクリックして、高度な設定オプションにアクセスします。組み込みエディタでGRUB設定ファイルを変更できます。詳細については、10.1項 「GRUBによるブート」を参照してください。既存の設定を削除してしたり、YaSTでできます。設定をディスクに書き込んだり、ディスクから設定を読み直すこともできます。インストール時に保存した最初のMBR(Master Boot Record)jを復元するには、を選択します。
ブートローダの場所を変更するには、次の手順に従います。
手順10.2 ブートローダの場所の変更¶
タブを選択し、で、次のオプションの1つを選択します。
最初のディスクのMBRにブートローダをインストールします(BIOS 中のブートシーケンスプリセットによる)。
/パーティションのブートセクタにブートローダがインストールされます(デフォルト)。
/bootパーティションのブートセクタにブートローダがインストールされます。
拡張パーティションコンテナにブートローダがインストールされます。
このオプションを選択すると、手動でブートローダの場所を指定できます。
をクリックして、変更を適用します。
ブートローダは、標準のシステムを直ちにブートするわけではありません。タイムアウト中、ブートまたはカーネルパラメータを書き込むシステムを選択できます。ブートローダのタイムアウトを設定するには、次の手順に従います。
手順10.3 ブートローダのタイムアウトの変更¶
タブを開きます。
をクリックします。
新しい値を入力するか、マウスで矢印キーをクリックするか、またはキーボードの矢印キーを使って、の値を変更します。
を2回クリックして、変更内容を保存します。
![]() | タイムアウト0秒 |
|---|---|
タイムアウトを0秒に設定すると、ブート中にGRUBにアクセスできなくなります。同時に、デフォルトブートオプションをLinux以外のオペレーティングシステムに設定すると、結果としてLinuxシステムもアクセスできなくなります。 | |
コンピュータに複数のハードディスクがある場合、ディスクのブートシーケンスを、コンピュータのBIOSセットアップと一致するように指定できます(「10.1.2項 「device.mapファイル」」を参照してください)。次の手順に従います。
手順10.5 ディスクの順序の設定¶
タブを開きます。
をクリックします。
複数のディスクが表示されている場合には、ディスクを選択してからまたはをクリックして、ディスクの表示順を変更します。
を2回クリックして、変更内容を保存します。
詳細なブートオプションは、+の順に選択して、設定できます。通常は、デフォルト設定を変更する必要はありません。
ブートローダを含むパーティションをアクティブにします。Windows 98のような一部のレガシーオペレーティングシステムは、アクティブパーティションからのみブートできます。
現在のMBRを、オペレーティングシステムに依存しない独立した汎用コードで置換します。
Sets GRUBを、ディスクアクティビティを示すメッセージを表示するデバッグモードに設定します。
ブートメニューを隠し、デフォルトエントリをブートします。
![]() | |
ブートメニューを隠すと、ブート中にGRUBにアクセスできなくなります。同時に、デフォルトブートオプションをLinux以外のオペレーティングシステムに設定すると、結果としてLinuxシステムもアクセスできなくなります。 | |
信頼性の高いコンピューティング機能をサポートする信頼できるGRUBを起動します。
ブート画面の表示時に使用されるグラフィックファイルへのパスを設定します。
コンピュータがシリアルコンソールで制御されている場合は、どのCOMポートをどの速度で使用するか指定できます。さらに、を「serial」に設定します。詳細については、info grubまたはhttp://www.gnu.org/software/grub/manual/grub.htmlを参照してください。
コンピュータがシリアルコンソールで制御されている場合は、このオプションを有効にして、どのCOMポートをどの速度で使用するか指定します。info grubまたはhttp://www.gnu.org/software/grub/manual/grub.html#Serial-terminalを参照してください。
でブートローダのタイプを設定します。SUSE Linux Enterprise DesktopのデフォルトブートローダはGRUBです。LILOまたはELILOを使用するには、次の手順に従います。
![]() | LILOはサポートされていません |
|---|---|
LILOの使用は推奨されません。SUSE Linux Enterprise Desktopではサポートされていません。特殊な場合にのみ、使用してください。 | |
手順10.6 ブートローダのタイプの変更¶
タブを選択します。
で、を選択します。
表示されるダイアログボックスで、次のオプションのうち、いずれかを選択します。
YaSTは新しい設定を提案します。
YaSTは現在の設定を変換します。設定を変換すると、いくつかの設定内容が失われることがあります。
カスタム設定を書き込みます。この操作は、SUSE Linux Enterprise Desktopのインストール時には利用できません。
独自の/etc/lilo.confをロードします。この操作は、SUSE Linux Enterprise Desktopのインストール時には利用できません。
を2回クリックして、変更内容を保存します。
変換中に、古いGRUB設定はディスクに保存されます。これを使用するには、ブートローダのタイプをGRUBに戻し、を選択します。この操作は、インストール済みのシステムでのみ実行可能です。
![]() | カスタムのブートローダ |
|---|---|
GRUBやLILO以外のブートローダを使用する場合は、を選択します。このオプションを選択する場合には、あらかじめ、ブートローダのドキュメントをよくお読みください。 | |
YaSTを使用してLinuxブートローダをアンインストールし、MBRをLinuxインストール前の状態に戻すことができます。インストール中に、YaSTは自動的にオリジナルMBRのバックアップコピーを作成しており、要求があるとMBRを復元します。
GRUBをアンインストールするには、YaST を起動して+の順にクリックして、ブートローダモジュールを起動します。+を選択し、で確認します。
ブートマネージャを使用してシステムをブートできない場合、またはハードディスクにブートマネージャをインストールできない場合は、Linux用の、すべての起動ファイルを収録したブート可能なCDを作成することもできます。そのためには、システムにCDライタがインストールされている必要があります。
GRUBでは、stage2_eltoritoという特殊形式の stage2とカスタマイズされた menu.lst (オプション)を使用するだけで、ブート可能CD ROMを作成することができます。従来のファイルstage1およびstage2は不要です。
手順10.7 ブートCDの作成
ISOイメージの作成先ディレクトリに移動します。例:cd /tmp
GRUBのサブディレクトリを作成し、新たに作成されたisoディレクトリに移動します。
mkdir -p iso/boot/grub && cd iso
カーネル、stage2_eltorito、initrd、menu.lst、およびmessageファイルをiso/boot/にコピーします。
cp /boot/vmlinuz boot/ cp /boot/initrd boot/ cp /boot/message boot/ cp /usr/lib/grub/stage2_eltorito boot/grub cp /boot/grub/menu.lst boot/grub
root (hdエントリをx、y)root (cd)で置き換えて、CD_ROMデバイスをポイントします。また、メッセージファイル、カーネル、およびinitrdに対するパスを調整することが必要になる場合があります。これらのパスはそれぞれ、/boot/message、/boot/vmlinuz、および/boot/initrdを指す必要があります。調整を行った後、menu.lstは次の例のようになります。
timeout 8 default 0 gfxmenu (cd)/boot/message title Linux root (cd) kernel /boot/vmlinuz root=/dev/sda5 vga=794 resume=/dev/sda1 \ splash=verbose showopts initrd /boot/initrd
ブート処理時にブートメッセージの表示を防止するには、「splash=verbose」の代わりに「splash=silent」を使用します。
次のコマンドでISOイメージを作成します。
genisoimage -R -b boot/grub/stage2_eltorito -no-emul-boot \ -boot-load-size 4 -boot-info-table -iso-level 2 -input-charset utf-8 \ -o grub.iso /tmp/iso
好みのユーティリティを使用して、生成されたファイルgrub.isoをCDに書き込みます。ISOイメージをデータファイルとして書き込まず、お使いのCD書き込みユーティリティのCDイメージ書き込みオプションを使用します。
オプションvga=がカーネルパラメータとして使用されている場合、SUSEのグラフィカル画面が1番目のコンソール上に表示されます。YaSTを使用してインストールする場合、このオプションは、選択した解像度とグラフィックカードに基づいて自動的に使用されます。必要な場合にSUSE の画面を無効にするには、3つの方法があります。
value
コマンドラインでコマンド「echo 0 >/proc/splash」を入力し、グラフィカル画面を無効にします。画面を再度有効にするには、「echo 1 >/proc/splash」コマンドを入力します。
カーネルパラメータsplash=0をブートローダの設定に追加します。これについては、第10章 ブートローダGRUBを参照してください。ただし、以前のバージョンではデフォルトになっていたテキストモードを使用したい場合は、vga=normalを設定します。
新しいカーネルをコンパイルし、でオプションを無効にします。カーネルでフレームバッファのサポートを無効にすると、スプラッシュ画面も自動的に無効になります。
![]() | 未サポート |
|---|---|
システムをカスタムカーネルで実行した場合、SUSE はサポートを何も提供することができません。 | |
ここでは、GRUBを使用してブートする際に頻繁に発生する一部の問題と、考えられる解決策の概略について説明します。一部の問題については、http://support.novell.com/のKnowledgebase(ナレッジベース)に記事が提供されています。「GRUB」、「ブート」、および「ブートローダ」などのキーワードを使って検索を行うには、検索ダイアログを使用します。
XFSの場合、パーティションブートブロックにはstage1のための余地がありません。そのため、ブートローダの位置としてXFSパーティションを指定しないでください。この問題は、XFSでフォーマットされていない別のブートパーティションを作成することで解決できます。
GRUBは、システムのブート時に、接続されているハードディスクのジオメトリを検査します。ときには、BIOSから一貫性のない情報が戻され、GRUBがGRUB Geom Errorをレポートする場合があります。この場合、BIOSをアップデートします。
また、LinuxがBIOSに登録されていない追加ハードディスクにインストールされている場合にも、GRUBはこのエラーメッセージを戻します。ブートローダの stage1 は正常に検出されロードされますが、stage2 は検出されません。この問題は、新規ハードディスクをBIOSに登録することで解消できます。
インストール中、YaSTは、ハードディスクのブートシーケンスを誤って判断する場合があります。たとえば、GRUBがPATA(IDE)ディスクをhd0、SCSIディスクをhd1と見なしても、BIOS内ではブートシーケンスが逆順(PATAの前にSCSI)である場合があります。
この場合は、ブートプロセス中にGRUBコマンドラインを使用してハードディスクを訂正します。システムのブート後に、device.mapファイルを編集して新規マッピングを永続的に適用します。次に、/boot/grub/menu.lstファイルと/boot/grub/device.mapファイルでGRUBデバイス名を検査し、次のコマンドでブートローダを再インストールします。
grub --batch < /etc/grub.conf
Windowsのような一部のオペレーティングシステムは、1台目のハードディスクからのみブートできます。この種のオペレーティングシステムが2台目以降のハードディスクにインストールされている場合は、関連メニューエントリに対して論理的な変更を加えることができます。
... title windows map (hd0) (hd1) map (hd1) (hd0) chainloader(hd1,0)+1 ...
この例では、Windowsは2台目のハードディスクから起動されます。この目的で、mapを使用して、ハードディスクの論理的な順序を変更します。この変更は、GRUBのメニューファイル内のロジックには影響を及ぼしません。したがって、2台目のハードディスクはchainloaderに対して指定する必要があります。
GRUBの詳細情報は、http://www.gnu.org/software/grub/で入手できます。また、grub情報ページも参照してください。http://www.novell.com/supportにあるTechnical Information Search(技術情報検索)で、キーワード「GRUB」を検索して、特別な事項に関する情報を入手することもできます。