Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
コンテンツコンテンツ
管理ガイド
  1. このガイドについて
  2. I サポートと共通タスク
    1. 1 YaSTオンラインアップデート
    2. 2 サポート用システム情報の収集
    3. 3 テキストモードのYaST
    4. 4 Snapperによるスナップショットとロールバック
    5. 5 VNCによるリモートアクセス
    6. 6 コマンドラインツールによるソフトウェアの管理
    7. 7 BashとBashスクリプト
    8. 8 Using Third-Party Software
  3. II システム
    1. 9 64ビットシステム環境での32ビットと64ビットのアプリケーション
    2. 10 Linuxシステムのブートと設定
    3. 11 ブートローダGRUB
    4. 12 UEFI (Unified Extensible Firmware Interface)
    5. 13 特別なシステム機能
    6. 14 プリンタの運用
    7. 15 udevによる動的カーネルデバイス管理
    8. 16 X Windowシステム
    9. 17 FUSEによるファイルシステムへのアクセス
  4. III モバイルコンピュータ
    1. 18 Linuxでのモバイルコンピューティング
    2. 19 無線LAN
    3. 20 電源管理
    4. 21 タブレットPCの使用
  5. IV サービス
    1. 22 ネットワークの基礎
    2. 23 ネットワーク上のSLPサービス
    3. 24 NTPによる時刻の同期
    4. 25 ドメインネームシステム
    5. 26 DHCP
    6. 27 NetworkManagerの使用
    7. 28 Samba
    8. 29 NFS共有ファイルシステム
    9. 30 ファイルの同期
    10. 31 Apache HTTPサーバ
    11. 32 YaSTを使用したFTPサーバの設定
    12. 33 Squidプロキシサーバ
    13. 34 SFCBを使用したWebベースの企業管理
  6. V トラブルシューティング
    1. 35 ヘルプとドキュメント
    2. 36 最も頻繁に起こる問題およびその解決方法
  7. A サンプルネットワーク
  8. B GNU Licenses
ナビゲーション
適用先 SUSE Linux Enterprise Server 11 SP4

11 ブートローダGRUB

この章では、SUSE® Linux Enterprise Serverで使用されているブートローダGRUB (Grand Unified Bootloader)の設定方法について説明します。すべての設定操作には、特殊なYaSTモジュールを使用できます。Linuxでのブートに不慣れな場合は、以降の各セクションを読んで背景情報を理解してください。また、この章では、でのブート時に頻繁に発生する問題とその解決策についても説明します。

注記
注記: UEFIを使用するコンピュータ上にGRUBがない

通常GRUBは従来のBIOSを備え、UEFI (Unified Extensible Firmware Interface)上にあるコンピュータにインストールされます。CSMが有効になっていないUEFIコンピュータでは、eLILOが自動的にインストールされます (DVD1が正常に起動した場合)。詳細については、ご使用のシステムの/usr/share/doc/packages/elilo/にあるeLILOマニュアルを参照してください。

この章は、ブート管理とGRUBブートローダの設定に重点を置いています。ブート手順は、総じて第10章 「Linuxシステムのブートと設定で説明しています。ブートローダは、マシン(BIOS)とオペレーティングシステム(SUSE Linux Enterprise Server)の間のインタフェースになります。ブートローダの設定は、オペレーティングシステムの起動に直接影響を及ぼします。

次の用語は、この章で頻繁に使用されており、少し説明を加えた方がよいと思われるものです。

MBR (マスターブートレコード)

MBRの構造は、オペレーティングシステムに依存しない規則に従って定義されます。最初の446バイトは、プログラムコード用に予約されています。通常、ここにはブートローダプログラムやオペレーティングシステムセレクタの一部が保管されています。次の64バイトは、最大4つのエントリからなるパーティションテーブル用のスペースです。パーティションテーブルには、ハードディスクのパーティション分割とファイルシステムのタイプに関する情報が含まれています。オペレーティングシステムでハードディスクを処理するには、このテーブルが必要です。MBRの従来の汎用コードでは、1つのパーティションにだけアクティブのマークを付ける必要があります。MBRの最後の2バイトは、静的な「マジックナンバー」(AA55)を含む必要があります。一部のBIOSでは、異なる値を持つMBRは無効とみなされ、ブートの対象とはみなされません。

ブートセクタ

ブートセクタは、拡張パーティションを除くハードディスクパーティションの最初のセクタであり、その他のパーティションのコンテナとして機能するだけです。これらのブートセクタのうち512バイトのスペースは、関連パーティションにインストールされているオペレーティングシステムをブートするためのコードが占有します。これは、フォーマット済みのDOS、Windows、およびOS/2パーティションのブートセクタに該当し、ファイルシステムの重要な基本データも一部含まれています。これに対して、Linuxパーティションのブートセクタは、XFS以外のファイルシステムの設定直後は当初空になっています。そのため、Linuxパーティションは、カーネルと有効なルートファイルシステムが含まれている場合にも、単独ではブートできません。システムブート用の有効なコードを含むブートセクタの場合、最後の2バイトにはMBRと同じマジックナンバー(AA55)があります。

11.1 GRUBによるブート

GRUBは、2つのステージで構成されています。ステージ1は、512バイトから成り、そのタスクは、ブートローダの第2ステージをロードすることだけです。その後、stage2が読み込まれます。このステージにいは、ブートローダの主要部分が含まれています。

一部の設定では、適切なファイルシステムからステージ2を検出し、ロードする中間ステージの1.5を使用できます。可能であれば、デフォルトでインストール時、またはYaSTを使用したGRUBの初回セットアップ時に、この方法が選択されます。

stage2は、多くのファイルシステムにアクセスできます。現在、Windowsで使用されているext2、ext3、ReiserFS、Minix、およびDOS FATファイルシステムがサポートされます。BSDシステムで使用されているXFS、UFS、およびFFSも、特定の範囲までサポートされます。バージョン0.95以降のGRUBには、El Torito仕様に準拠するISO 9660標準ファイルシステムを含むCDまたはDVDからブートする機能も用意されています。システムをブートする前にも、サポートされているBIOSディスクデバイス(BIOSにより検出されるフロッピーディスクまたはハードディスク、CDドライブ、およびDVDドライブ)のファイルシステムにアクセスできます。したがって、GRUBの設定ファイル(menu.lst)を変更しても、ブートマネージャを新たにインストールする必要はありません。システムをブートすると、GRUBはメニューファイルと共にカーネルまたは初期RAMディスク(initrd)の有効なパスとパーティションデータを再読み込みし、これらのファイルを検索します。

GRUBの実際の設定は、次の4つのファイルに基づきます。

/boot/grub/menu.lst

このファイルには、ブートできるパーティションまたはオペレーティングシステムに関する情報がすべて含まれています。この情報がない場合、GRUBコマンドラインは、どのように処理を続行するかユーザの指示を求めます(詳細については、「11.1.1.3項 「ブート手順実行中のメニューエントリの編集」」を参照してください)。

/boot/grub/device.map

このファイルは、デバイス名をGRUBとBIOSの表記法からLinuxデバイス名に変換するために使います。

/etc/grub.conf

このファイルには、GRUBシェルでブートローダを正常にインストールするために必要なコマンド、パラメータおよびオプションが含まれています。

/etc/sysconfig/bootloader

このファイルはperl-bootloaderライブラリが読み込みます。これはブートローダをYaSTで設定するときと、新しいカーネルがインストールされるたびに使用されます。カーネルパラメータなどの設定オプションが含まれ、これはブートローダ設定ファイルにデフォルトで追加されます。

GRUB は、さまざまな方法で制御できます。グラフィカルメニュー(スプラッシュ画面)を使用して、既存の設定からブートエントリを選択できます。設定は、ファイルmenu.lstから読み込まれます。

GRUBでは、すべてのブートパラメータをブート前に変更できます。たとえば、メニューファイルを間違って編集した場合は、この方法で訂正できます。また、ブートコマンドは、一種の入力プロンプトで対話的に入力することもできます。詳細については、11.1.1.3項 「ブート手順実行中のメニューエントリの編集」を参照してください。GRUBには、ブート前にカーネルとinitrdの位置を判別する機能が用意されています。この機能を使用すると、ブートローダ設定にエントリが存在しないインストール済みオペレーティングシステムでもブートできます。

GRUBは実際には2つのバージョンがあります。ブートローダと、/usr/sbin/grubにある通常のLinuxプログラムです。このプログラムをGRUBシェルと呼びます。GRUBシェルは、インストールされたシステムにGRUBのエミュレーションを提供し、GRUBのインストールまたは新規設定の適用前のテストに使用できます。ハードディスクやフロッピーディスクにGRUBをブートローダとしてインストールする機能は、コマンドsetupの形でGRUBに組み込まれています。この機能は、Linuxの読み込み時にGRUBシェル内で使用できます。

11.1.1 ファイル/boot/grub/menu.lst

ブートメニューを含むグラフィカルスプラッシュ画面は、GRUBの設定ファイル/boot/grub/menu.lstに基づいており、このファイルにはメニューを使用してブートできるパーティションまたはオペレーティングシステムに関する情報がすべて含まれています。

システムをブートするたびに、ファイルシステムからメニューファイルを読み込みます。このため、ファイルを変更するたびに再インストールする必要がありません。で説明しているように、YaSTのブートローダを使用してGRUBの設定を変更します。11.2項 「YaSTによるブートローダの設定」

メニューファイルにはコマンドが含まれています。構文はきわめて単純です。各行には、コマンド1つとオプションのパラメータがシェルと同様にスペースで区切って指定されています。これまでの経緯が理由で、一部のコマンドでは最初の引数の前に等号(=)を使用することができます。コメントを記述するには、行頭にシャープ記号(#)を入力します。

メニュー概要の中にあるメニュー項目を識別できるように、各エントリに対してtitle (タイトル)を設定します。キーワードtitleの後に続くテキスト(半角スペースも使用できます)は、メニューの中で、選択可能なオプションとして表示されます。そのメニュー項目が表示された場合、次のtitleまでに記述されているすべてのコマンドが実行されます。

最も簡単な例は、他のオペレーティングシステムのブートローダにリダイレクトすることです。該当するコマンドはchainloaderであり、引数は通常、他のパーティション内にあるブートブロックをGRUBのブロック表記に従って記述したものです。次に例を示します。

chainloader (hd0,3)+1

GRUBでのデバイス名については、11.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 は、メニューエントリより先に記述します。サンプルファイルについては、11.1.1.2項 「メニューファイルの例」を参照してください。

11.1.1.1 ハードディスクとパーティションに関する命名規則

GRUBでのハードディスクとパーティションの命名規則は、通常のLinuxデバイスの命名規則と異なっています。どちらかというと、BIOSが使用する単純なディスクエミューレーションに似ており、構文は一部のBSDデリバティブで使用されているものに類似しています。GRUBでは、パーティション番号は0から始まります。これは、(hd0,0)は最初のハードディスクの最初のパーティションになります。ハードディスクがプライマリマスタとして接続されている一般的なデスクトップマシンでは、対応するLinuxデバイス名は/dev/sda1になります。

可能な4つの基本パーティションに、パーティション番号}03が割り当てられます。論理パーティション番号は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については、11.1.2項 「device.mapファイル」を参照してください。

のフルパスは、カッコ内のデバイス名と、指定のパーティションにあるファイルシステム内のファイルへのパスで構成されます。このパスはスラッシュで始まります。たとえば、単一PATA(IDE)ハードディスクの最初のパーティションにLinuxを含んでいるシステムでは、ブート可能カーネルを次のように指定できます。

(hd0,0)/boot/vmlinuz

11.1.1.2 メニューファイルの例

次の例は、GRUBのメニューファイルの構造を示しています。このインストール例では、Linuxのブートパーティションが/dev/sda5、ルートパーティションが/dev/sda7、およびWindowsのインストールファイルが/dev/sda1にあります。

gfxmenu (hd0,4)/boot/message1
color white/blue black/light-gray2
default 03
timeout 84

title linux5
   root (hd0,4)
   kernel /boot/vmlinuz root=/dev/sda7 vga=791 resume=/dev/sda9
   initrd /boot/initrd

title windows6
   rootnoverify (hd0,0)
   chainloader +1

title floppy7
   rootnoverify (hd0,0)
   chainloader (fd0)+1

title failsafe8
   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

最初のブロックは、スプラッシュ画面の設定を定義します。

1

背景画像messageは、/dev/sda5パーティションの /bootディレクトリにあります。

2

カラースキーマ:白(前景色)、青(背景色)、黒(選択項目)、明るい灰色(選択項目の背景色)です。配色はスプラッシュ画面には影響しません。影響を受けるのは、Escキーを押してスプラッシュ画面を終了するとアクセスできるカスタマイズ可能なGRUBメニューだけです。

3

デフォルトでは、最初の(0)メニューエントリtitle linuxがブートされます。

4

ユーザ入力がないまま8秒が経過した場合、GRUBは自動的にデフォルトエントリをブートします。自動ブートを無効にするには、timeoutの行を削除します。timeout 0と設定すると、GRUBは待ち時間なしでデフォルトのエントリをブートします。

2番目の(最大)ブロックは、ブート可能な各種オペレーティングシステムを示します。個々のオペレーティングシステムに関するセクションはtitleで始まります。

5

最初のエントリ(title linux)は、SUSE Linux Enterprise Serverをブートします。カーネル(vmlinuz)は、1台目のハードディスクの最初の論理パーティション(ブートパーティション)内に配置されています。ルートパーティションやVGAモードなどのカーネルパーティションは、ここに追加されます。この情報を読み込むのはLinuxカーネルであり、GRUBは関係しないため、ルートパーティションは、Linuxの命名規則(/dev/sda7/)に従って指定されます。initrdも、1台目のハードディスクの最初の論理パーティション内に配置されています。

6

第2のエントリは、Windowsを読み込む役割を果たします。Windowsは、1台目のハードディスク(hd0,0)の最初のパーティションからブートされます。chainloader +1コマンドは、指定されたパーティションの最初のセクタを読み取って実行するようGRUBに指示します。

7

次のエントリは、BIOS設定を変更することなく、フロッピーディスクからブートすることを可能にします。

8

ブートオプションfailsafeは、問題のあるシステム上でもLinuxのブートを可能にするカーネルパラメータを選択してLinuxを起動します。

メニューファイルは必要に応じて変更できます。その場合、GRUBは変更後の設定を次回のブート時に使用します。このファイルを永続的に編集するには、YaSTまたは好みのエディタを使用します。また、対話形式で一時的に変更するには、GRUBの編集機能を使用します。詳細については、11.1.1.3項 「ブート手順実行中のメニューエントリの編集」を参照してください。

11.1.1.3 ブート手順実行中のメニューエントリの編集

グラフィカルブートメニューでは、ブートするオペレーティングシステムを矢印キーで選択します。Linuxシステムを選択した場合は、ブートプロンプトからブートパラメータを追加入力できます。個々のメニューエントリを直接編集するには、Escキーを押してスプラッシュ画面を終了し、GRUBテキストベースメニューを表示してからEキーを押します。この方法で加えた変更は、現在のブートだけに適用され、永続的に採用されることはありません。

重要
重要: ブート手順実行中のキーボードレイアウト

ブート時は、USキーボードレイアウトだけが使用可能です。詳細については、図36.3「USキーボードレイアウト」を参照してください。

メニューエントリの編集により、障害が発生してブートできなくなったシステムを容易に修復できます。これは、ブートローダの設定ファイルの誤りをパラメータの手動入力により回避できるからです。ブート手順の中でパラメータを手動で入力する方法は、ネイティブシステムを損傷せずに新規設定をテストする際にも役立ちます。

編集モードを有効にした後、矢印キーを使用して、設定を編集するメニューエントリを選択します。設定を編集可能にするには、もう一度Eキーを押します。このようにして、不正なパーティションまたはパス指定を、ブートプロセスに悪影響を及ぼす前に編集します。Enterキーを押して編集モードを終了し、メニューに戻ります。次に、Bキーを押してこのエントリをブートします。下部のヘルプテキストに、さらに可能なアクションが表示されます。

変更後のブートオプションを永続的に入力してカーネルに渡すには、ユーザのrootでファイルmenu.lstを開き、関連カーネルパラメータをスペースで区切って既存の行に追加します。

title linux
   root(hd0,0)
     kernel /vmlinuz root=/dev/sda3 additional parameter
   initrd /initrd

GRUBは、次回のシステムブート時に新規パラメータを自動的に使用します。または、この変更をYaSTのブートローダモジュールで行うこともできます。新規パラメータをスペースで区切って既存の行に追加します。

11.1.2 device.mapファイル

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ファイルを永続的に変更できます。

注記
注記: ハードディスクの最大数

GRUBは、ハードディスクのアドレス指定にBIOSサービスを使用します。これには、ソフトウェア割り込みInt13hが使用されます。Int13hは最大8ディスクしか操作できないので、9ディスク以上存在する場合でも(マルチパスシステムではよくある事例)、GRUBは、Int13hが操作するディスクからしかブートできません。したがって、インストール時に作成されたdevice.mapファイルは、Int13hで操作された最大8つのディスクしか含みません。

device.mapを手動で編集した後、次のコマンドを実行してGRUBを再インストールします。このコマンドにより、device.mapファイルが再読み込みされ、grub.confに指定されているコマンドが実行されます。

grub --batch < /etc/grub.conf

11.1.3 /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を使用します。

11.1.4 ファイル/etc/sysconfig/bootloader

この設定ファイルは、ブートローダをYaSTで設定するときと、新しいカーネルがインストールされる際にのみ使用されます。perl-bootloaderライブラリで評価され、それに従ってブートローダ設定ファイル(GRUBの/boot/grub/menu.lstなど)が変更されます。/etc/sysconfig/bootloaderは、GRUB固有の設定ファイルではありません。その値は、SUSE Linux Enterprise Serverにインストールされているすべてのブートローダに適用されます。

注記
注記: カーネルアップデート後のブートローダ設定

新しいカーネルがインストールされるたびに、perl-bootloaderは/etc/sysconfig/bootloaderで指定されたデフォルトを使用して、新しいブートローダ設定ファイル(たとえば、GRUBの/boot/grub/menu.lstなど)を作成します。カスタマイズしたカーネルパラメータのセットを使用している場合、必要に応じて/etc/sysconfig/bootloaderの該当するデフォルト値を調整してください。

LOADER_TYPE

システムにインストールされたブートローダを指定します(GRUBやLILOなど)。変更は勝手にしないでください。ブートローダは、手順11.6「ブートローダのタイプの変更」に説明されているように、YaSTを使用して変更します。

DEFAULT_VGA / FAILSAFE_VGA / XEN_VGA

起動時に使用されるフレームバッファの画面解像度と色深度は、カーネルパラメータvgaで設定されます。これらの値は、デフォルトブートエントリ、フェイルセーフ、XENエントリに使用する解像度と色深度を定義します。有効な値は次のとおりです。

表 11.1: 画面解像度および色深度の参照

640x480

800x600

1024x768

1280x1024

1600x1200

8bit

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を参照してください。

11.1.5 ブートパスワードの設定

オペレーティングシステムのブート前でも、GRUB はファイルシステムへのアクセスを可能にします。rootパーミッションを持たないユーザは、システムのブート後、アクセス権のないLinuxシステム上のファイルにアクセスできます。この種のアクセスを阻止したり、ユーザによる特定のオペレーティングシステムのブートを防止するために、ブートパスワードを設定できます。

重要
重要: ブートパスワードとスプラッシュ画面

にブートパスワードを使用する場合、通常のスプラッシュ画面は表示されません。

ユーザrootとして、次の手順に従ってブートパスワードを設定します。

  1. rootプロンプトで、grub-md5-cryptを使ってパスワードを暗号化します。

    # grub-md5-crypt
    Password: ****
    Retype password: ****
    Encrypted: $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/
  2. 暗号化後の文字列を、menu.lstファイルのグローバルセクションに貼り付けます。

    gfxmenu (hd0,4)/message
    color white/blue black/light-gray
    default 0
    timeout 8
    password --md5 $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/

    これで、ブートプロンプトからGRUBコマンドを実行するには、先にPキーを押してパスワードを入力する操作が必要になります。しかし、ユーザはブートメニューから引き続き任意のオペレーティングシステムをブートすることができます。

  3. ブートメニューから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)がブートします。

11.2 YaSTによるブートローダの設定

SUSE Linux Enterprise Serverシステムでブートローダを設定する最も簡単な方法は、YaSTモジュールを使用することです。[YaSTコントロールセンター]で、システム › ブートローダの順に選択します。図11.1「ブートローダの設定」で説明しているように、システムの現在のブートローダ設定が表示され、設定を変更できます。

ブートローダの設定
図 11.1: ブートローダの設定

セクション管理タブを使用して、各オペレーティングシステムのブートローダセクションの編集、変更、削除を行うことができます。オプションを追加するには、追加をクリックします。既存のオプションの値を変更するには、マウスで選択してから編集をクリックします。既存のエントリを削除するには、エントリを選択して削除をクリックします。ブートローダのオプションをよくご存知でない場合には、はじめに11.1項 「GRUBによるブート」を参照してください。

ブートローダのインストールタブで、タイプ、場所、高度なローダ設定に関する設定を表示および変更できます。

その他をクリックして、高度な設定オプションにアクセスします。組み込みエディタでGRUB設定ファイルを変更できます。詳細については、11.1項 「GRUBによるブート」を参照してください。既存の設定を削除して新しい設定を作成したり、YaSTで新しい設定を提案できます。設定をディスクに書き込んだり、ディスクから設定を読み直すこともできます。インストール時に保存した最初のMBR(Master Boot Record)jを復元するには、ハードディスクのMBRの復元を選択します。

11.2.1 デフォルトブートエントリの調整

デフォルトでブートされるシステムを変更するには、次の手順に従います。

手順 11.1: 標準のシステムの設定
  1. セクション管理タブを開きます。

  2. リストから目的の項目を選択します。

  3. デフォルトにするをクリックします。

  4. OKをクリックしてこれらの変更を有効にします。

11.2.2 ブートローダの場所の変更

ブートローダの場所を変更するには、次の手順に従います。

手順 11.2: ブートローダの場所の変更
  1. ブートローダのインストールタブを選択し、ブートローダの場所で、次のオプションの1つを選択します。

    マスタブートレコードからブート

    最初のディスクのMBRにブートローダをインストールします(BIOS 中のブートシーケンスプリセットによる)。

    ルートパーティションからブート

    /パーティションのブートセクタにブートローダがインストールされます(デフォルト)。

    ブートパーティションからブート

    /bootパーティションのブートセクタにブートローダがインストールされます。

    拡張パーティションからブート

    拡張パーティションコンテナにブートローダがインストールされます。

    カスタムブートパーティション

    このオプションを選択すると、手動でブートローダの場所を指定できます。

  2. OKをクリックして、変更を適用します。

11.2.3 ブートローダのタイムアウトの変更

ブートローダは、標準のシステムを直ちにブートするわけではありません。タイムアウト中、ブートまたはカーネルパラメータを書き込むシステムを選択できます。ブートローダのタイムアウトを設定するには、次の手順に従います。

手順 11.3: ブートローダのタイムアウトの変更
  1. ブートローダのインストールタブを開きます。

  2. ブートローダのオプションをクリックします。

  3. 新しい値を入力するか、マウスで矢印キーをクリックするか、またはキーボードの矢印キーを使って、タイムアウト(秒)の値を変更します。

  4. OKを2回クリックして、変更内容を保存します。

警告
警告: タイムアウト0秒

タイムアウトを0秒に設定すると、ブート中にGRUBにアクセスできなくなります。同時に、デフォルトブートオプションをLinux以外のオペレーティングシステムに設定すると、結果としてLinuxシステムもアクセスできなくなります。

11.2.4 ブートパスワードの設定

このYaSTモジュールでは、ブートを保護するためのパスワードを設定することもできます。そうすれば、セキュリティに付加的なレベルを追加できます。

手順 11.4: ブートローダパスワードの設定
  1. ブートローダのインストールタブを開きます。

  2. ブートローダのオプションをクリックします。

  3. パスワードでブートローダを保護するオプションをクリックして有効にし、パスワードを2回入力します。

  4. OKを2回クリックして、変更内容を保存します。

11.2.5 ディスクの順序の変更

コンピュータに複数のハードディスクがある場合、ディスクのブートシーケンスを、コンピュータのBIOSセットアップと一致するように指定できます(「11.1.2項 「device.mapファイル」」を参照してください)。次の手順に従います。

手順 11.5: ディスクの順序の設定
  1. ブートローダのインストールタブを開きます。

  2. ブートローダのインストールの詳細をクリックします。

  3. 複数のディスクが表示されている場合には、ディスクを選択してから上へまたは下へをクリックして、ディスクの表示順を変更します。

  4. OKを2回クリックして、変更内容を保存します。

11.2.6 詳細オプションの設定

詳細なブートオプションは、ブートローダのインストール › ブートローダのオプションの順に選択して、設定できます。通常は、デフォルト設定を変更する必要はありません。

ブートパーティション用パーティションテーブルにアクティブフラグを設定

ブートローダを含むパーティションをアクティブにします。Windows 98のような一部のレガシーオペレーティングシステムは、アクティブパーティションからのみブートできます。

MBRに汎用ブートコードを書き込む

現在のMBRを、オペレーティングシステムに依存しない独立した汎用コードで置換します。

デバッグフラグ

GRUB をデバッグモードに設定し、ディスクのアクティビティを示すメッセージを表示します。

ブートメニューを隠す

ブートメニューを隠し、デフォルトエントリをブートします。

警告
警告

ブートメニューを隠すと、ブート中にGRUBにアクセスできなくなります。同時に、デフォルトブートオプションをLinux以外のオペレーティングシステムに設定すると、結果としてLinuxシステムもアクセスできなくなります。

Trusted GRUBを使用

信頼性の高いコンピューティング機能をサポートする信頼できる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を参照してください。

11.2.7 ブートローダタイプの変更

ブートローダのインストールでブートローダのタイプを設定します。SUSE Linux Enterprise Serverのデフォルトのブートローダは、GRUBです。LILOまたはELILOを使用するには、次の手順に従います。

警告
警告: LILOはサポートされていません

SUSE Linux Enterprise Serverではサポートされていないため、LILOの使用はお勧めしません。特殊な場合にのみ、使用してください。

手順 11.6: ブートローダのタイプの変更
  1. ブートローダのインストールタブを選択します。

  2. ブートローダで、LILOを選択します。

  3. 表示されるダイアログボックスで、次のオプションのうち、いずれかを選択します。

    新しい設定を提案する

    YaSTは新しい設定を提案します。

    Convert Current Configuration (現在の設定の変換)

    YaSTは現在の設定を変換します。設定を変換すると、いくつかの設定内容が失われることがあります。

    Start New Configuration from Scratch (新しい設定を新規に作成する)

    カスタム設定を書き込みます。このアクションは、SUSE Linux Enterprise Serverのインストール時には使用できません。

    ディスクに保存された環境設定の読み込み

    独自の/etc/lilo.confをロードします。このアクションは、SUSE Linux Enterprise Serverのインストール時には使用できません。

  4. OKを2回クリックして、変更内容を保存します。

変換中に、古いGRUB はディスクに保存されます。これを使うには、ブートローダのタイプをGRUB に戻し、変換前に保存した環境設定に戻すを選択します。この操作は、インストール済みのシステムでのみ実行可能です。

注記
注記: カスタムのブートローダ

GRUBやLILO以外のブートローダを使用する場合は、ブートローダはインストールしないでくださいを選択します。このオプションを選択する場合には、あらかじめ、ブートローダのドキュメントをよくお読みください。

11.3 Linuxブートローダのアンインストール

を使用してLinuxブートローダをアンインストールし、MBRをLinuxインストール前の状態に戻すことができます。インストール中に、YaSTは自動的にオリジナルMBRのバックアップコピーを作成しており、要求があるとMBRを復元します。

GRUBをアンインストールするには、YaSTを起動してシステム › ブートローダの順にクリックして、ブートローダモジュールを起動します。その他 › ハードディスクのMBRの復元を選択し、はい、上書きしますで確認します。

11.4 ブートCDの作成

ブートマネージャを使用してシステムをブートできない場合、またはハードディスクにブートマネージャをインストールできない場合は、Linux用の、すべての起動ファイルを収録したブート可能なCDを作成することもできます。そのためには、システムにCDライタがインストールされている必要があります。

では、stage2_eltoritoという特殊形式のstage2とカスタマイズされたmenu.lst (オプション)を使用するだけで、ブート可能CD-ROMを作成することができます。従来のファイルstage1およびstage2は不要です。

手順 11.7: ブートCDの作成
  1. ISOイメージの作成先ディレクトリに移動します。例:cd /tmp

  2. GRUBのサブディレクトリを作成し、新たに作成されたisoディレクトリに移動します。

    mkdir -p iso/boot/grub && cd iso
  3. カーネル、stage2_eltoritoinitrdmenu.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

    場合によっては(複数のオペレーティングシステムのブート時など)、/boot/grub/device.mapboot/grubにコピーすると便利です。

  4. root (hdxy)エントリを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」を使用します。

  5. 次のコマンドで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
  6. 好みのユーティリティを使用して、生成されたファイルgrub.isoをCDに書き込みます。ISOイメージをデータファイルとして書き込まず、お使いのCD書き込みユーティリティのCDイメージ書き込みオプションを使用します。

11.5 SUSEのグラフィカル画面

オプションvga=valueがカーネルパラメータとして使用されている場合、SUSEのグラフィカル画面が1番目のコンソール上に表示されます。YaSTを使用してインストールする場合、このオプションは、選択した解像度とグラフィックカードに基づいて自動的に使用されます。必要な場合にSUSEの画面を無効にするには、3つの方法があります。

必要に応じてSUSE画面を無効にする。

コマンドラインでコマンド「echo 0 >/proc/splash」を入力し、グラフィカル画面を無効にします。画面を再度有効にするには、「echo 1 >/proc/splash」コマンドを入力します。

デフォルトでSUSE画面を無効にする。

カーネルパラメータsplash=0をブートローダの設定に追加します。これについては、第11章 「ブートローダGRUBを参照してください。ただし、以前のバージョンではデフォルトになっていたテキストモードを使用したい場合は、vga=normalを設定します。

SUSE画面を完全に無効にする。

新しいカーネルをコンパイルし、framebuffer supportでオプションUse splash screen instead of boot logoを無効にします。カーネルでフレームバッファのサポートを無効にすると、スプラッシュ画面も自動的に無効になります。

警告
警告: 未サポート

システムをカスタムカーネルで実行した場合、SUSEはサポートを何も提供することができません。

11.6 トラブルシューティング

ここでは、GRUBを使用してブートする際に頻繁に発生する一部の問題と、考えられる解決策の概略について説明します。一部の問題については、http://www.suse.com/supportのKnowledgebase(ナレッジベース)に記事が提供されています。「GRUB」、「ブート」、および「ブートローダ」などのキーワードを使って検索を行うには、検索ダイアログを使用します。

GRUBとXFS

XFSの場合、パーティションブートブロックにはstage1のための余地がありません。そのため、ブートローダの位置としてXFSパーティションを指定しないでください。この問題は、XFSでフォーマットされていない別のブートパーティションを作成することで解決できます。

GRUBレポートGRUB Geom Error

GRUBは、システムのブート時に、接続されているハードディスクのジオメトリを検査します。ときには、BIOSから一貫性のない情報が戻され、GRUBがGRUB Geom Errorをレポートする場合があります。この場合、BIOSをアップデートします。

また、LinuxがBIOSに登録されていない追加ハードディスクにインストールされている場合にも、GRUBはこのエラーメッセージを戻します。ブートローダの stage1 は正常に検出されロードされますが、stage2 は検出されません。この問題は、新規ハードディスクをBIOSに登録することで解消できます。

いくつかのハードディスクを搭載したシステムがブートしない

インストール中、YaSTは、ハードディスクのブートシーケンスを誤って判断する場合があります。たとえば、GRUBがPATA (IDE)ディスクをhd0、SCSIディスクをhd1と見なしても、BIOS内ではブートシーケンスが逆順(PATAの前にSCSI)である場合があります。

この場合は、ブートプロセス中にコマンドラインを使用してハードディスクを訂正します。システムのブート後に、device.mapファイルを編集して新規マッピングを永続的に適用します。次に、/boot/grub/menu.lstファイルと/boot/grub/device.mapファイルでGRUBデバイス名を検査し、次のコマンドでブートローダを再インストールします。

grub --batch < /etc/grub.conf
2台目のハードディスクからのWindowsのブート

Windowsのような一部のオペレーティングシステムは、1台目のハードディスクからのみブートできます。この種のオペレーティングシステムが2台目以降のハードディスクにインストールされている場合は、関連メニューエントリに対して論理的な変更を加えることができます。

...
title windows
   map (hd0) (hd1)
   map (hd1) (hd0)
   chainloader(hd1,0)+1
...

この例では、Windowsは2台目のハードディスクから起動されます。この目的で、mapを使用して、ハードディスクの論理的な順序を変更します。この変更は、GRUBのメニューファイル内でのロジックには影響を及ぼしません。したがって、2台目のハードディスクはchainloaderに対して指定する必要があります。

11.7 詳細情報

GRUB の詳細情報は、http://www.gnu.org/software/grub/で入手できます。また、grub情報ページも参照してください。http://www.novell.com/supportにあるTechnical Information Search (技術情報検索)で、キーワードGRUBを検索して、特別な事項に関する情報を入手することもできます。

このページを印刷