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 形式のパーティションテーブルを持つ BIOS マシンのパーティションテーブルと最初のパーティション間の領域にインストールされます。GPT 形式のパーティションテーブルを持つ BIOS マシンでは、ブートローダーの特別な BIOS 起動パーティションを作成する必要があります。UEFI マシンでは、引き続きブートローダーを EFI システムパーティションにインストールできます。
新しいブートローダーにより、推奨される最小パーティションサイズも変更されました。表2.1「推奨される最小パーティションサイズ」 では、新しい推奨事項の概要を提供します。詳細については、『Red Hat Enterprise Linux 7 Installation Guide』 の Section 6.10.1.1 MBR and GPT Considerations を参照してください。

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

パーティションBIOS & MBRBIOS & GPTUEFI & GPT
/boot500 MB
/10 GB
swapRAM の 2 倍以上。詳細については、『Red Hat Enterprise Linux 7 Installation Guide』 の Section 6.10.4.5. Recommended Partitioning Scheme を参照してください。
ブートローダー該当なし (パーティションテーブルと最初のパーティションの間にインストールされる)1 MB (BIOS 起動パーティション)200 MB (EFI システムパーティション)
ユーザーは、ファイルシステムが破損するというリスクを承知の上で force オプションを使って手動で GRUB2 をフィーマット済みのパーティションにインストールするか、代わりのブートローダーを使用することができます。代わりのブートローダーの一覧については、『Red Hat Enterprise Linux 7 インストールガイド』を参照してください。こちらから入手できます http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/
デュアルブートシステムがある場合は、GRUB2 のオペレーティングシステム検出を使用して、どちらのオペレーティングシステムも起動できる設定ファイルを自動的に書き込みます。
# grub2-mkconfig -o /boot/grub2/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 ページまたは 『Red Hat Enterprise Linux 7 System Administrator's Guide』 を参照してください。
ブートプロセスについての詳細情報は、『Red Hat Enterprise Linux 7 インストールガイド』 を参照してください。systemd についての詳細情報は、『Red Hat Enterprise Linux 7 System Administrator's Guide』 を参照してください。どちらもこちらから入手できます http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/

2.2.2.1. 後方互換性

systemd は、ユーザーエクスペリエンスおよびスクリプト API においてほぼ SysV と互換性があります。しかし、互換性が限定的なケースもいくつかあります。
  • 標準の /etc/init.d/servicename コマンドライン (start, stop, status) はまだ機能しますが、Red Hat では /usr/sbin/service servicename コマンドがレガシー init スクリプトを使わずに直接 systemd に転送することから、こちらのコマンドを推奨しています。
  • ランレベルサポートは制限されています。すべての 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 コマンドの使用を推奨しています。
  • root 権限がある場合でも、SysV サービスがリアルタイムのスケジュールを獲得することは許可されません。
  • サービスが 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.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 つと好きな数のアドオンを選びます。キックスタートインストールでは、引き続きインストール時に選択されるパッケージに関して完全なコントロールを持ち続けます。
これらの機能についての詳細情報は、『Red Hat Enterprise Linux 7 インストールガイド』 を参照してください。こちらから入手できます http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/

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

2.2.3.1.1. ブートパッケージの指定
インストーラーに固有のブートオプションは、本書では inst. が接頭辞に付いてます。現在、Red Hat Enterprise Linux 7 ではこの接頭辞はオプションです。resolution=1024x768 は、inst.resolution=1024x768 とまったく同様に機能します。ただし、今後のリリースではこの接頭辞は必須になると予想され、接頭辞がないパラメーターは廃止されたものとみなされます。
2.2.3.1.2. ブートパラメーターへの変更
新インストーラーは dracut を使用してディスクおよびネットワークを設定します。その結果、Red Hat Enterprise Linux 6 と Red Hat Enterprise Linux 7 の間では、カーネルコマンドラインのブートパラメーターにいくつか変更がなされました。
2.2.3.1.2.1. 新パラメーター
inst.stage2
読み込まれるインストーラープログラムのランタイムイメージを指定します。構文は、inst.repo パラメーターと同じです。このオプションはイメージ以外のものをすべて無視し、パッケージ場所の指定に使用することはできません。
inst.dd
指定された場所にあるパッケージでドライバーパッケージをアップデートします。このオプションは複数回使うことができます。場所に関する構文は、inst.repo パラメーターと同じです。
inst.geoloc
言語およびタイムゾーンを事前設定するために、インストーラー内の位置情報の使用を設定します。デフォルト値は、provider_fedora_geoip です。このパラメーターで有効な値には、以下のものが含まれます。

表2.2 位置情報の値

効果
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-bit システム上への 32-bit パッケージのインストールを可能にします。
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
2.2.3.1.2.2. 変更されたパラメーター
inst.ks.sendmac
以前は、kssendmac でした。全ネットワークインターフェイスの MAC アドレスを含む発信 HTTP リクエストにヘッダーを追加します。これは、システムのプロビジョンに inst.ks=http を使用する際に有用です。
nameserver
以前は dns でした。nameserver のアドレスを指定します。このオプションは複数回使用することができます。
2.2.3.1.2.3. 非推奨パラメーター
このリストにあるオプションは、推奨されません。これらのオプションはまだ機能するものの、同一の機能を提供するほかのオプションがあります。これらのオプションの使用は推奨されず、今後のリリースで削除される予定です。
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
dracutip オプションのデバイス仕様に置き換え
blacklist
指定されたドライバーの無効化に使用。以下の構文で、rd.driver.blacklist dracut オプションにより処理されるようになりました。
rd.driver.blacklist=mod1,mod2,...
nofirewire
FireWire インターフェイスのサポートを無効化。FireWire ドライバー (firewire_ohci) は、代わりに rd.driver.blacklist オプションを使用することで無効にできます。
rd.driver.blacklist=firewire_ohci
2.2.3.1.2.4. 削除済みパラメーター
以下のオプションは削除されました。これらは以前の Red Hat Enterprise Linux リリースにはありましたが、もう使用することができません。
serial
このオプションは、Anaconda が /dev/ttyS0 コンソールを出力として使用することを強いていました。代わりに、console パラメーターを使用して /dev/ttyS0 コンソール (もしくは同様のもの) を指定してください。
essid、wepkey、wpakey
ワイヤレスネットワークアクセスを設定。ネットワーク設定は、dracut が処理するようになりました。これはワイヤレスネットワーキングをサポートしないので、これらのオプションが使用不能になります。
ethtool
低レベルのネットワーク設定に使用していました。ネットワーク設定はすべて ip オプションで処理されるようになります。
gdb
ローダーのデバッグを可能にしていました。代わりに、rd.debug を使用してください。
inst.mediacheck
インストール前にインストールメディアを検証。rd.live.check オプションに置き換えられました。
ks=floppy
フロッピーディスクをキックスタートファイルソースとして指定。フロッピーディスクは、起動メディアとしてサポート対象外となりました。
display
リモートディスプレイを設定。inst.vnc オプションに置き換えられました。
utf8
テキストモードでのインストール時に UTF8 サポートを追加。UTF8 サポートは自動的に機能するようになりました。
noipv6
インストールプログラムの IPv6 サポートを無効化。IPv6 はカーネルに組み込まれたので、ドライバーはブラックリストに載ることはありません。ただし、ipv6.disable dracut オプションを使って IPv6 を無効にすることは可能です。
upgradeany
アップグレードは inRed Hat Enterprise Linux 7 で変更されました。詳細については、1章アップグレード方法「Preupgrade Assistant」、および 「Red Hat Upgrade Tool」 を参照してください。
vlanid
VLAN デバイスを設定。dracut vlan オプションに置き換え。

2.2.4. firstboot 実装への変更

Red Hat Enterprise Linux 7 では、firstboot は初期設定ユーティリティである initial-setup に置き換えられ、新インストーラーとの相互運用性が高まっています。基本的な firstboot の機能はインストーラーと initial-setup に移されました。
firstboot 向けに作成されたサードパーティー製のモジュールは、引き続き Red Hat Enterprise Linux 7 で動作します。ただし、firstboot は、将来のリリースで非推奨になる予定です。したがって、サードパーティー製のモジュールのメンテナーは、インストーラーまたは初期セットアップツール向けのモジュールの更新を考慮する必要があります。

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

初期のバージョンの 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 でマウントされたデバイスにより起動は失敗しません (正常にマウントできない場合)。