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 に関する考慮事項を参照してください。
パーティション | BIOS & MBR | BIOS & GPT | UEFI & GPT |
---|---|---|---|
| 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
コマンド (start
、stop
、status
) は依然として機能します。ただし、レガシーの 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 スクリプト内で他の動詞をサポートしません。
start
、stop
、またはstatus
以外の動詞が必要な場合は補助スクリプトに移動してください。 - Linux Standard Base ヘッダー情報は、ランタイム時に systemd が完全に解釈、利用します。
- init スクリプト操作はすべて 5 分でタイムアウトするようになっており、init スクリプトのハングでシステムがフリーズすることを防ぎます。
- systemd は、稼働中のサービスだけを停止します。開始していないサービスがシャットダウン中に停止されることもありません。
-
chkconfig ツールは、SysV サービスおよびランレベル情報のみを表示し、誤解を招く情報を出力する可能性があります。Red Hat では、代わりに
systemctl
コマンドの使用を推奨しています。 -
CPUAccounting
オプションが有効になっていると、root 権限を持つ SysV サービスであってもリアルタイムスケジューリングを取得できません。任意のサービスにCPUAccounting
を有効化することで、systemd は CGroup CPU 帯域幅コントローラーをグローバルに利用して、後続のsched_setscheduler()
システム呼び出しはリアルタイムスケジューリングの優先度によって予期せずに終了します。このエラーを避けるには、CGroupcpu.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 を参照してください。