Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

2.2. インストールおよび起動

このセクションでは、Red Hat Enterprise Linux 6 と Red Hat Enterprise Linux 7 との間になされたインストールツールおよびプロセスの変更の概要について説明します。

2.2.1. 新ブートローダー

Red Hat Enterprise Linux 7 では、GRUB2 ブートローダーが導入されています。これは、Red Hat Enterprise Linux 7.0 およびそれ以降でのレガシー GRUB に代わるものです。GRUB2 は、以前のものよりも多くのファイルシステムと仮想ブロックデバイスをサポートします。利用可能なオペレーティングシステムを自動的にスキャンして、その設定を行います。ユーザーインターフェイスも改善され、ユーザーはブートローダーのインストールを省略することができます。

ただし、GRUB2 への移行により、MBR 形式のパーティションテーブルを持つ BIOS マシンでフォーマットされたパーティションに、ブートローダーをインストールすることができなくなります。一部のファイルシステムでコアブートローダーイメージの一部を移動する最適化機能が自動化され、GRUB レガシーブートローダーが破壊されることがあるため、この動作が変更になりました。GRUB2 では、ブートローダーが、MBR (Master Boot Record) 形式のパーティションテーブルを持つ BIOS マシンのパーティションテーブルと、最初のパーティションとの間で利用可能な領域にインストールされます。GPT (GUID Partition Table) 形式のパーティションテーブルを持つ BIOS マシンでは、ブートローダー用に特別な BIOS 起動パーティションを作成する必要があります。UEFI マシンでは、引き続きブートローダーを EFI システムパーティションにインストールできます。

ブートローダーが新しくなったため、推奨されるパーティションの最小サイズが変更しました。表2.1「推奨される最小パーティションサイズ」 では、新しい推奨事項の概要を説明します。詳細については、MBR および GPT に関する考慮事項を参照してください。

表2.1 推奨される最小パーティションサイズ

パーティションBIOS & MBRBIOS & GPTUEFI & GPT

/boot

500 MB

/

10 GB

swap

RAM の 2 倍以上。詳細については、推奨されるパーティションスキームを参照してください。

ブートローダー

該当なし (パーティションテーブルと最初のパーティションの間にインストールされる)

ファイルシステムが破損するというリスクを承知の上で、force オプションを使用して手動で GRUB2 をフォーマット済みのパーティションにインストールするか、別のブートローダーを使用します。代替のブートローダーのリストについては、インストールガイドを参照してください。

デュアルブートシステムがある場合は、GRUB2 のオペレーティングシステム検出を使用して、どちらのオペレーティングシステムも起動できる設定ファイルを自動的に書き込みます。

# grub2-mkconfig -o /boot/grub2/grub.cfg
重要

UEFI の使用に基づいているデュアルブートがある場合は、MBR レガシーベース以外のメカニズムを使用することに注意してください。EFI 固有の grub2 コマンドを使用する必要がないことを示しています。

# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

2.2.1.1. デバッグに使用するデフォルトのブートエントリー

systemd のデフォルトのブートエントリーが /etc/grub.cfg ファイルに追加されました。手動でデバッグを有効にする必要はありません。デフォルトのブートエントリーを使用すれば、ブート時にオプションに影響を与えずにシステムをデバッグすることができます。

2.2.2. 新 Init システム

systemd は、Red Hat Enterprise Linux の以前のリリースで使用されていた SysV init システムに代わるシステムおよびサービスマネジャーです。

systemd は、ブート時に最初に開始し、シャットダウン時に最後に終了するプロセスです。残りのブートプロセスを調整し、そのユーザー向けにシステムを設定します。systemd では、独立したプログラムが並列して読み込めるので、ブートプロセスが格段に速くなります。

systemd は、ユーザーエクスペリエンスおよびスクリプト API の大部分に関して、SysV と互換性があります。しかし、例外もいくつかあります。詳細は、「後方互換性」 を参照してください。

systemd の移行には、Red Hat Enterprise Linux 用の管理ツールの変更も関わってきます。詳細については、systemctl man ページまたはシステム管理者ガイドを参照してください。

起動プロセスの詳細については、インストールガイドを参照してください。systemd の詳細については、システム管理者ガイドを参照してください。

2.2.2.1. 後方互換性

systemd は、ユーザーエクスペリエンスおよびスクリプト API においてほぼ SysV と互換性があります。しかし、互換性が限定的なケースもいくつかあります。

  • 標準の /etc/init.d/servicename コマンド (startstopstatus) は依然として機能します。ただし、レガシーの init スクリプトを使用するのではなく systemd に直接転送するため、Red Hat では、/usr/sbin/service servicename コマンドを推奨します。
  • ランレベルサポートは制限されています。すべての SysV ランレベルは systemd ターゲットにマッピングしますが、すべての systemd ターゲットが SysV ランレベルにマッピングするわけではありません。このため、現在のランレベルに対するチェックのうち、N (不明のランレベル) を返すものもあります。Red Hat では、ランレベルチェックを避けて、より有用な systemd ターゲットに移動することを推奨しています。
  • レガシーランレベル 2、3、および 4 はすべてデフォルトで multi-user.target systemd ターゲットにマッピングを行います。この動作は、別の systemd ターゲットを設定すれば修正できます。
  • サービスはクリーンに実行し、呼び出しているユーザーのコンテキストは継承されません。継承されるコンテキストに依存する init スクリプトは機能しません。
  • systemd は、init スクリプト内で他の動詞をサポートしません。startstop、または status 以外の動詞が必要な場合は補助スクリプトに移動してください。
  • Linux Standard Base ヘッダー情報は、ランタイム時に systemd が完全に解釈、利用します。
  • init スクリプト操作はすべて 5 分でタイムアウトするようになっており、init スクリプトのハングでシステムがフリーズすることを防ぎます。
  • systemd は、稼働中のサービスだけを停止します。開始していないサービスがシャットダウン中に停止されることもありません。
  • chkconfig ツールは、SysV サービスおよびランレベル情報のみを表示し、誤解を招く情報を出力する可能性があります。Red Hat では、代わりに systemctl コマンドの使用を推奨しています。
  • CPUAccounting オプションが有効になっていると、root 権限を持つ SysV サービスであってもリアルタイムスケジューリングを取得できません。任意のサービスに CPUAccounting を有効化することで、systemd は CGroup CPU 帯域幅コントローラーをグローバルに利用して、後続の sched_setscheduler() システム呼び出しはリアルタイムスケジューリングの優先度によって予期せずに終了します。このエラーを避けるには、CGroup cpu.rt_runtime_us オプションは、サービスを使用してリアルタイムに設定できます。
  • サービスは、標準入力 (stdin) から読み込むことはありません。インタラクティブなスクリプトが必要な場合は、 systemd がサポートする最小パスワードクエリーフレームワークを検討してください。この機能の詳細は、man ページで入手できます。

    $ man systemd-ask-password
  • 以前のバージョンの Red Hat Enterprise Linux には System z 固有のプレインストールスクリプト (linuxrc.s390) が含まれており、これがシステムの起動時に System z システムを開始していました。新しい init システムではこのプレインストールが廃止され、System z システムは、AMD64、Intel 64、および Power システムと同じ方法でブートします。

2.2.2.2. Systemd-debug-generator

systemd-debug-generator は、ランタイムデバッグシェルを有効にし、起動時に特定のユニットをマスクするためのジェネレーターです。これは、カーネルコマンドラインを読み取り、次の 3 つのオプションを使用します。

systemd.mask=
このオプションを指定し、その後にユニット名を追加すると、実行時にそのユニットがマスクされます。システムのブート時に、システムの起動をデバッグする初期ブートトランザクションから特定のユニットを削除するのに便利です。このオプションは複数回指定できます。
systemd.wants=
このオプションを指定し、その後にユニット名を追加すると、そのユニットの開始ジョブが初期トランザクションに追加されます。これは、システムの起動時にユニットを追加する場合に便利です。このオプションは複数回指定できます。
systemd.debug_shell
このオプションを指定すると、debug-shell.service がブートトランザクションに追加されます。これにより、システムの起動時の早い段階で、tty9 にデバッグシェルが発生します。シェルは、systemctl enable コマンドを使用して永続的に有効にすることもできます。

2.2.2.3. 新インストーラー

Red Hat Enterprise Linux のインストーラーである Anaconda は、Red Hat Enterprise Linux 7 のインストールプロセスを改善するために再設計、機能強化されました。

インストーラーの更新された機能は、以下のとおりです。

  • グラフィカルユーザーインターフェイスが再設計され、より速く柔軟性が高くなり、ユーザーからの入力が少なく済みます。
  • LVM シンプロビジョニングをサポート。
  • btrfs のインストールサポート。(ただし、btrfs は Red Hat Enterprise Linux 7 ではテクノロジープレビューであることに注意してください)。
  • ローカリゼーションサポートの改善。
  • 直接フォーマット、パーティション化されないデバイスをサポート。
  • ネットワークテクノロジーのチーミングおよびボンディングをサポート。
  • 適切なキーボードのレイアウト、言語、およびタイムゾーンの自動選択をサポート (インターネット接続が必要)。(これにはインターネット接続が必要です。) 検出に基づいて設定された値は、手動で設定した値で上書きされます。
  • DHCP が通知する NTP サーバーが自動的に使用されるようになりました。
  • realmd DBus サービス、Active Directory、および FreeIPA 向けにキックスタートを統合。
  • IBM System z および PowerPC システム、およびシリアルコンソールで機能する新テキストモード。テキストモードは、グラフィカルインストーラーが提供する機能のサブセットを提供します。

この新インストーラーに関する重要な変更もいくつかあります。

  • これまでは、ユーザーはストレージ設定の際に、使用するストレージシステムに関する詳細な技術的知識が必要でした。Red Hat Enterprise Linux 7 では、ストレージ設定が再設計されているので、ユーザーは最小限の詳細を入力するだけで済みます。
  • Anaconda は、inst.root パラメーターではなく、inst.repo パラメーターを使ってネットワークやその他のインストールの場所を設定します。
  • グラフィカルインストーラーインターフェイスの詳細なパッケージ選択に替わって、ソフトウェア選択 画面が使用されるようになりました。ソフトウェアは 環境アドオン に分かれており、環境から 1 つ、そしてアドオンは好きなだけ選択できます。ユーザーは、1 つの環境と任意の数のアドオンを選択します。キックスタートインストールでは、インストール時に選択したパッケージを完全に制御できます。

これらの機能の詳細については、インストールガイドを参照してください。

2.2.2.4. ブートパラメーターの変更

2.2.2.4.1. ブートパッケージの指定

インストーラーに固有のブートオプションには、本書では接頭辞 inst. が付いてます。現在、Red Hat Enterprise Linux 7 ではこの接頭辞はオプションです。resolution=1024x768 の機能と、inst.resolution=1024x768 の機能は完全に同一です。ただし、今後のリリースではこの接頭辞は必須になると予想され、接頭辞がないパラメーターは廃止されたものとみなされます。

2.2.2.4.2. ブートパラメーターへの変更

新インストーラーでは、dracut を使用してディスクおよびネットワークを設定します。したがって、Red Hat Enterprise Linux 6 と Red Hat Enterprise Linux 7 の間で、カーネルコマンドラインのブートパラメーターにいくつか変更がなされました。

新パラメーター

inst.stage2
読み込み対象のインストールプログラムのランタイムイメージの場所を指定します。構文は、inst.repo パラメーターと同じです。このオプションはイメージ以外のものをすべて無視し、パッケージ場所の指定に使用することはできません。
inst.dd
指定された場所にあるパッケージでドライバーパッケージを更新します。このオプションは複数回使用できます。場所に関する構文は、inst.repo パラメーターと同じです。
inst.geoloc

言語およびタイムゾーンを事前設定するために、インストーラーにどの位置情報を使用するかを設定します。デフォルト値は provider_fedora_geoip です。このパラメーターで有効な値には、以下のものが含まれます。

表2.2 位置情報の値

Effect

0

位置情報を無効にします。

provider_fedora_geoip

Fedora GeoIP API を使用します。

provider_hostip

Hostip.info GeoIP API を使用します。

inst.usefbx
ハードウェア固有のドライバーではなく、フレームバッファー X ドライバーの使用を指定します。このオプションは、inst.xdriver=fbdev と同じです。
bootdev
起動インターフェイスを指定します。このオプションは、ip を 2 回以上指定する場合に必須となります。
inst.multilib
multilib パッケージ用にシステムを設定し、たとえば、64 ビットシステム上への 32 ビットパッケージのインストールを可能にします。
gpt
マスターブートレコード (MBR) ではなく、GUID パーティションテーブル (GPT) にパーティション情報をインストールします。
inst.virtiolog
ログ転送に使用する virtio ポートを指定します。デフォルト値は、org.fedoraproject.anaconda.log.0 です。このポートが存在する場合は、それが使用されます。
rd.dasd
DASD (ダイレクトアクセスストレージデバイス) アダプターデバイスバス識別子をとり、オプションでコンマ区切りの sysfs パラメーターと値のペアをとります。指定されたデバイスバス ID で DASD をアクティベートし、sysfs パラメーターを指定された値に設定します。たとえば、rd.dasd=adaptor_id,readonly=0 となります。このパラメーターは、複数の DASD をアクティベートするために、複数回にわたり指定することができます。
rd.zfcp

FCP (zFCP) 上の SCSI アダプターデバイスバス識別子、WWPN (ワールドワイドポートネーム)、および FCP LUN をとります。指定されたデバイスバス識別子、ポートネーム、および LUN で zFCP デバイスをアクティベートします。複数の zFCP デバイスをアクティベートするには、このパラメーターを複数回にわたり指定することができます。

rd.zfcp=0.0.4000,0x5005076300C213e9,0x5022000000000000
rd.znet

ネットワークプロトコルタイプおよびコンマ区切りのサブチャンネルのリストと、必要に応じてコンマ区切りの sysfs パラメーターと値のペアをとります。指定されたプロトコル用に System z ネットワークデバイスドライバーをアクティベートし、指定したサブチャンネルを設定し、指定されたとおりにパラメーターを設定します。複数のネットワークデバイスをアクティベートするには、このパラメーターを複数回にわたり指定することができます。

rd.znet=qeth,0.0.0600,0.0.0601,0.0.0602,layer2=1,portname=foo
rd.znet=ctc,0.0.0600,0.0.0601,protocol=bar

変更されたパラメーター

inst.ks.sendmac
以前は kssendmac でした。発信 HTTP リクエストにヘッダーを追加します (全ネットワークインターフェイスの MAC アドレスを含みます)。これは、システムのプロビジョンに inst.ks=http を使用する際に有用です。
ネームサーバー
以前は dns でした。ネームサーバーのアドレスを指定します。このオプションは複数回使用できます。

非推奨パラメーター

このリストにあるオプションは推奨されません。動作はしますが同じ機能を提供している別のオプションがあります。廃止予定のオプションの使用は推奨されせん。今後のリリースで削除される予定です。

updates
インストールプログラムの更新の場所を指定するときに使用していました。inst.updates オプションを指定します。
method
インストール方法の設定に使用されていました。代わりに inst.repo= オプションを使用してください。
repo
NFS インストールで、ターゲットがインストール可能なツリーではなく、NFS サーバー上にある ISO イメージであることを指定。この違いは自動的に検出されるようになっているため、このオプションは inst.repo=nfs:server:/path と同じになります。
dns
ドメインネームサーバー (DNS) の設定に使用していました。代わりに nameserver= オプションを使用してください。
netmask、gateway、hostname、ip、ipv6
これらのオプションは、ip オプションに統合されました。
ip=bootif
PXE サーバーからインストール時に使用される BOOTIF オプションを指定。これは自動検出されるようになっています。
ksdevice

キックスタートインストール中に使用するネットワークデバイスを設定。以下の表にあるように、このパラメーターの値は、それぞれ別のパラメーターに置き換えられています。

表2.3 キックスタートパラメーターの値

現在の動作

存在しない場合

デバイスや設定が ip または BOOTIF オプション で指定されていない限り、DHCP ですべてのデバイスの有効化を試行します。

ksdevice=link

無視 (デフォルト動作と同じ)

ksdevice=bootif

無視 (指定されている場合は BOOTIF がデフォルトとして使用されます)。

ksdevice=ibft

dracut のオプション ip=ibft に置き換え

ksdevice=MAC

BOOTIF=MAC で置き換えられます。

ksdevice=device

dracut ip オプションでデバイス仕様で置換えられます。

blacklist

指定したドライバーの無効化に使用していました。これは、以下の構文で rd.driver.blacklist dracut オプションで処理されるようになりました。

rd.driver.blacklist=mod1,mod2,...
nofirewire

FireWire インターフェイスのサポートの無効化に使用していました。代わりに rd.driver.blacklist オプションを使用して、FireWire ドライバー (firewire_ohci) を無効にすることができます。

rd.driver.blacklist=firewire_ohci

削除済みパラメーター

以下のオプションは削除されました。ここに挙げるオプションは、以前の Red Hat Enterprise Linux リリースでは使用されていましたが、現行リリースでは使用することができません。

serial
出力に /dev/ttyS0 コンソールを使用するよう Anaconda に強制するために使用されていました。代わりに、console パラメーターを使用して /dev/ttyS0 コンソール (もしくは同様のもの) を指定してください。
essid、wepkey、wpakey
ワイヤレスのネットワークアクセスを設定する際に使用していました。ネットワーク設定は、dracut が処理するようになりました。これはワイヤレスネットワーキングをサポートしないので、これらのオプションが使用不能になります。
ethtool
低レベルのネットワーク設定に使用していました。ネットワーク設定はすべて、ip オプションで処理されています。
gdb
ローダーのデバッグを許可する場合に使用していました。代わりに rd.debug を使用してください。
inst.mediacheck
インストール開始前のインストールメディアの検証に使用していました。rd.live.check オプションに置き換えられました。
ks=floppy
フロッピーディスクを Kickstart ファイルソースとして指定。フロッピードライブはブートメディアとしてサポートされなくなりました。
display
リモートディスプレイの設定に使用していました。inst.vnc オプションに置き換えられました。
utf8
テキストモードでのインストール時に UTF8 サポートを追加。UTF8 サポートは自動的に機能するようになりました。
noipv6
インストールプログラムの IPv6 サポートを無効化。IPv6 はカーネルに組み込まれたので、ドライバーがブラックリストに載ることはありません。ただし、ipv6.disable dracut オプションを使って IPv6 を無効にすることは可能です。
upgradeany
アップグレードは Red Hat Enterprise Linux 7 で変更されました。詳細については、1章アップグレード方法「Preupgrade Assistant」、および 「Red Hat Upgrade Tool」 を参照してください。
vlanid
VLAN デバイスを設定。dracut vlan オプションに置き換えられます。

2.2.3. firstboot 実装への変更

Red Hat Enterprise Linux 7 では、firstboot が初期設定ユーティリティーである initial-setup に置き換えられ、新インストーラーとの相互運用性が高まっています。基本的な firstboot の機能はインストーラーと initial-setup に移されました。

firstboot 向けに作成されたサードパーティー製のモジュールは、引き続き Red Hat Enterprise Linux 7 で動作します。ただし、firstboot は、将来のリリースで非推奨になる予定です。したがって、サードパーティー製モジュールのメンテナーは、インストーラーまたは初期セットアップツール向けのモジュールの更新を考慮する必要があります。

2.2.4. 起動時のマウント動作の変更

初期のバージョンの Red Hat Enterprise Linux は、/etc/fstab で指定されたすべてのパーティションをマウントできるかどうかに関わらず起動していました。この結果、必要なパーティションがなくてもシステムは起動し、問題なく起動したように見えることがありました。

この状況を防ぐために、Red Hat Enterprise Linux 7 では、/etc/fstab で定義されたパーティションを起動時にマウントできないと、起動が失敗します。パーティションがマウントできないときに、それが原因で起動が失敗することを防ぐには、/etc/fstab で新しい nofail パラメーターを使用します。

/dev/critical   /critical  xfs  defaults     1 2
/dev/optional   /optional  xfs  defaults,nofail  1 2

この例では、/optional でマウントするデバイスが正常にマウントできない場合に、それが原因で起動が失敗することはありません。

2.2.5. /etc/issue ファイルへの変更

Red Hat Enterprise Linux の以前のバージョンでは、、製品名およびマシンのリリース番号が、/etc/issue ファイルに含まれていました。Red Hat Enterprise Linux 7 以降、製品名とリリース番号は /etc/os-release に移動し、/etc/issue の最初の行には、agetty エスケープコード \S が含まれるようになりました。\S エスケープコードは、製品名、およびマシンのリリース番号を表示するコンソールで展開します。このコードは、/etc/os-release ファイルで定義される PRETTY_NAME 変数で示されます。

重要

\S エスケープコードの拡張は、コンソールからのみ有効です。これに対応していない環境で拡張を使用すると、\S だけが出力されます。

\S の詳細情報は、man ページの agetty を参照してください。