前の記事
※同じシリーズにはNUC、Linuxタグをつけてあります。
お伝えしたいこと
パソコン用途に着目した Fedora 32 Server のインストール手順を記載します。
この記事を書いた当時はFedora 32が最新版でしたが、現時点で試すなら最新版のFedoraをインストールすることをおすすめします。
最新版のFedoraの画面構成は若干異なりますが、インストール時に指定する各種パラメータの決め方は十分参考になると思います。
- 前の記事
- お伝えしたいこと
- 特に重要なポイント
- Fedora 32 Server インストール手順の詳細
- まとめ
- Linux PC構築関連リンク集
特に重要なポイント
Fedora32 のインストール手順はCentOSやRHELと同様です。
今回紹介する手順も基本に忠実ではありますが、パソコン用途という意味では以下3つのポイントが特に重要だと考えています。
こちらだけでもぜひ見ていただければと思います。
- LVMを使う
- LVMを使うことでパーティション縮小や拡張が容易になります
- 性能劣化も特にないので、理由がなければLVMを使うのがオススメです
- 詳細は、後半の (参考) LVMについて を参照してください
- ファイルシステムにext4を使う
- デフォルトのXFSではなく、ext4を使います
- その理由は、XFSはファイルシステムの縮小が未対応ですが、ext4は対応しているためです
- 詳細は、後半の (参考) ext4 ファイルシステムを選択した理由 を参照してください
- /boot, /, /home でファイルシステムを分けた
Fedora 32 Server インストール手順の詳細
ISO起動直後
- Install Fedora 32 から先へ進みます
インストール中の言語設定
- English (United States) を選択します
- 後に
Language Support
という設定画面が出てきますが、ここで指定した言語がデフォルトとしてセットされて外せなくなる罠が潜んでいます - ここでの日本語選択はオススメしません...
メイン画面
こちらの画面から順不同で色々設定していきます。
順不同とは書いたものの、 キーボードレイアウトとネットワーク設定は先に対応することを推奨 します。
- キーボードレイアウト:パスワード文字列で "@" を打ったつもりが、実は英字キー配列だったので別の文字列になっており、後からログインできないという悲劇が起こりうる
- ネットワーク設定:NTPサーバなどネットワーク接続が関連する設定を後に行う場合、事前にネットワーク接続性があった方が都合が良い
以降の手順では各メニューに入った後の詳細な設定方法を紹介していきます。
キーボードレイアウト (Keyboard)
ここではコンソールログイン時のキーボードレイアウトを変更します。
英語キーボード (USキーボード) のままで良い方は、何も変更する必要はありません。
日本語キーボード (JISキーボード) に変更したい方は、以下のように操作してください。
English (US)
を選択した状態でー
のアイコンを選択Japanese
を選択
最終的には下記画像のような状態になります。
ネットワーク設定 (Network & Hostname)
まずはホスト名を設定します。
- 左下のホスト名を変更します
apply
ボタンを選択して確定します。右下のホスト名が変わることを確認して下さい- 本来であればFQDNを記載するのでしょうが、家のパソコン用途では不要でしょうし、個人的には
pc
やfedora-pc
で良いと思っています - 後からでも
hostnamectl set-hostname xxx
コマンドで変更できます
次に各NIC (ネットワークインターフェース) を変更します。
ここでは有線の設定 (eno1など) を例にしています。
NUCユーザーの方は無線インターフェース (wlp0s20f3など) も出てくると思いますが、その場合は有線と無線でどちらかメインで使う方のみ以下のように設定してください。
- 該当のインターフェース (
Ethernet (eno1)
など) を左上のメニューから選択し、右下のConfigure
ボタンを選択します
General
タブは特に変更しません。
- RHEL7系では
Connect automatically with priority
のチェックがデフォルトで外れていたのでチェックを入れていましたが、今回ははじめからチェックされていました - この項目はNetwork Manager の
autoconnect
に相当します - チェックが入っていると、Network Manager 起動時に自動的にNICを起動してくれます
- チェックが外れていると、毎回手動でNICを起動する必要が出てきます (
nmcli connection up <connection-name>|<connection-UUID>
)
IPv4 Settings
タブは、DHCP利用の方は特に変更不要です。
静的にIPを設定したい方は、以下のように変更します。
- Method: Manual
- Address: IPアドレス (例:192.168.0.9)
- Netmask: プレフィックス (例:24)
- Gateway: デフォルトゲートウェイ (192.168.0.1)
- Additional DNS Servers: DNSサーバのIPアドレス (例:8.8.8.8, 8.8.4.4)
IPv6 Settings
タブは、特別な要件がない限りは設定不要です。
私個人の趣味ですが、 Method: Ignore
を設定してしばしばIPv6を無効化しています。
一通りの設定が完了したら、右下の Save
から変更を反映します。
私は普段有線を使うので、eno0について上記設定を入れています。
一方で無線は使わないので、無線のインターフェース (wlp0s20f3など) については General
タブから Connect automatically with priority
をオフにしています。
これにより、OS起動時に有線のインターフェースのみUPし、無線のインターフェースはDOWNのままとなります。
そして、必要なときには手動でUP/DOWN を切り替えることで対応できます。
タイムゾーンと時刻の設定 (TIME & DATE)
ここではタイムゾーンとNTPサーバを設定します。 私の環境では、デフォルトの設定から特に変更していません。
画像の通り、以下の設定になっています。
- タイムゾーンは
Asia/Tokyo
です - 右上のNetwork Time のスイッチがONになっているので、NTPサービスが起動しています
上記画像の右上の歯車のアイコンから時刻参照先のNTPサーバを指定できます。
デフォルトのFedora用のNTPサーバプールを参照しています。
パーティションとファイルシステムの設定 (INSTALLATION DESTINATION)
画面下部にある Storage Configuration
を Custom
にします。
左上の Done
を選択することで次の画面に進みます。
左のドロップダウンリストから LVM
を選択します。
Click here to create them automatically.
をクリックし、ある程度の設定を自動生成させます。
まずは、 /boot/efi
パーティションから設定します。
こちらのパーティションは、マザーボードのファームウェアとしてBIOSではなくUEFIを利用している方のみ 設定が必要です。
少なくとも NUC10はUEFIベースです 。
パーティション構成を自動生成した場合、UEFIを使っていれば /boot/efi
も自動生成されるので、それが一つの目安になると思います。
こちらの設定は特にいじりません。以下の構成です。
- 容量:
600 MiB
- RedHat社のマニュアルによると、200MiBから600MiBの間にあれば良いとのことです
- Arch Wiki からリンクされているこちらのサイトによると、520MiB を下回るサイズにすると環境次第で不具合の原因となるようです。そこまで気にする必要はない気もしますが、念のため大きめのサイズにしておきました
- ファイルシステム:
EFI System Partition
次に、 /boot
を設定します。
- 容量:
1 GiB
- RedHat社のマニュアル にて1GiBが推奨されているため
- ファイルシステム:
ext4
次に swap
を設定します。
ただし、swap ファイルを後から作成する方は、ここのパーティションを削除しても大丈夫です。
swapパーティションとswap ファイルでは特に性能の違いはないようです。
※情報ソースは各種掲示板やYouTube解説動画です
- サイズ:
2 GiB
- swap領域はファイルシステムのキャッシュや、ディスク書き出しによるメモリ領域確保などに利用される
- 安定性確保のため、最低限 2GiB ぐらいは割り当てる
- LVMに含めてあるため、後々のサイズ変更は容易
- ファイルシステム:
swap
次にLVMの設定を変更します。
上画像の右側にある Volume Group
配下の Modify
を選択し、以下のように変更します。
- Size Policy:
As large as possible
- この設定により、ディスクの容量のある限りLVMの Volume Group (VG) に割り当てる
- デフォルトの
automatic
の場合、ディスクサイズに余裕を持たせて小さめのVGを作ろうとするが、Dual Boot など特殊な事情でもない限りは使い切って良い - 設定の詳細な意味は RedHat社 のマニュアルを参照
次に /
の設定を変更します。
- 容量:
50 GiB
- ファイルシステム:
ext4
最後に /home
を追加します。
画面左下の +
ボタンを選択し、下記画像のように容量やファイルシステムを指定します。
- 容量:
空き容量全て。ただし小数点以下切り捨て
- 筆者環境では1TB のSSDを利用しているが、 /home の容量は879 GiB になった
- ここは意見が分かれそうだが、小数点以下の端数は切り捨てた値を指定した。ディスクのアラインメント関連のトラブルを踏みたくなかったため
- ファイルシステム:
ext4
- ファイルシステムは以下画像の1つ後の画面から設定する
作成後、ファイルシステムをデフォルトの XFS
から ext4
に変更します。
すると、以下の画像のようになります。
左下の Available Size
が少ない値になっていれば、LVMのVGによって物理ディスクの容量が予約された状態になっています。
もし左下の容量がギガバイト単位で余っている場合は、右側の Volume Group
配下の Modify
から、 Sizing Policy
が As large as possible
となっていることを確認してください。
また画面右側の Volume Group
が画像では 424 MB free
となっていますが、こちらもギガバイト単位で表示されている場合にはVGの容量が余っています。
/home
に割り当てている容量を見直してみてください。
設定内容に問題ないことが確認できたら、左上の Done
を選択して変更を確定してください。
Accept Changes
を選択し、変更を確定します。
一般ユーザーの作成 (CREATE USER)
一般ユーザー作成の意義
特にPC用途の場合、普段はroot以外のユーザを使うことをお勧めします。
一般ユーザーをsudoer に加えておけばrootと同様の操作が可能なので、通常作業時は特に困りません (sudoを打つのは面倒ですが、すぐに慣れます)。
また、GUIで何気なく操作しているとき、権限の必要な操作 (つまりリスクのある操作) をするときはシステムがパスワードを求めてくれます。
セキュリティだけでなく事故防止の観点でも、一般ユーザーの利用は100%お勧めできます。
設定手順
まず、ユーザー名とパスワードを入力します。
参考ですが、Kaspersky社のPassword Checker でパスワード強度をチェックできます。
続いて、Make this user administrator
にチェックを入れます。
これにより、作成したユーザーが wheel
グループに登録され、sudo 権限を持ちます。
画面下部の Advanced
を選択し、詳細なオプションを指定します。
こちらの画面での設定は必須ではありません。
私の場合は、ユーザーグループに wheel
に加えて shared
も追加しています。
後からでも sudo usermod -aG shared <username>
で変更可能です。
shared
は複数ユーザー間のファイル共有に利用する予定です (例えばisoファイルなど)。
Linuxインストール後、以下のように実装します。
- 共有先のユーザーを
shared
グループに所属させるsudo usermod -aG shared <username>
- 共有ディレクトリを作成し、権限を設定する
sudo mkdir /home/shared/
sudo chown root:shared /home/shared/
sudo chmod 770 /home/shared/
- 以降、他ユーザと共有したいファイルを /home/shared に保管する
root ユーザーの設定 (ROOT PASSWORD)
ここではroot ユーザーのパスワードを設定します。
「sudo できるならrootユーザは不要じゃないか」と思ってrootユーザーを無効化したこともあったのですが、
usermod コマンドを間違えて実行して管理者不在になったことがありまして...。
結局 Rescue Mode から復旧する ハメになりました。
こんなことがあったので、今のところはrootユーザーを有効化しています。
レスキューモードからの復旧は慣れていればすぐできますので、上記を踏まえてrootユーザーを無効化するのもアリだとは思います。
結局はPCに物理アクセスできた段階でrootログインは容易にできてしまうので、効果は限定的ですし、利便性を優先してrootを有効化しても良いと思いますが...。
インストール完了
以上で初期設定は完了です。
右下のBegin Installation から Fedora インストールを開始します。
しばらく待ったら再起動を促されるので、画面に従って再起動します。
電源が落ちたタイミングでLinuxインストール用USBをPC本体から抜いたほうが良いかもしれません。
次はUSBではなく、SSDから起動してほしいからです。
これでFedora のインストール作業は完了です。
(参考) LVMについて
LVMの利点
LVMは物理ディスクを仮想化することで様々な構成を可能としますが、パソコン用途での一番の利点は ファイルシステムの容量拡張が容易になること だと思います。
ディスクのパーティションは、ディスクの不連続なセクターにまたがって作成することはできません。
従って、 もしも/, /home の順にパーティションを連続するセクターに作ったとして、後から/を拡張したくなったら...とても大変なのです。
以下のスライドのように技術的には対応可能なのですが、結構複雑な手順です。
LVMを使って回避できるのであれば、絶対回避すべきです。
LVMを利用していれば、セクター位置を気にすることなく容量を拡張可能です。
/homeをアンマウントした後、lvreduce, lvextend コマンドをそれぞれ1回ずつ実行するだけで簡単に完了します (後日検証します)。
こういった柔軟さから、パソコン用途の場合はLVMを使うのが良いと考えています。
LVMは遅くない
LVMは物理ディスクとファイルシステムの間に抽象化レイヤーを増やす...ように想像できますが、実際はそうでもないようです。
Linux Kernelからデバイス (物理ディスク) のセクタ上にデータを送受信する際、元々デバイスドライバを介してデータを送受信しています。
以下の記事によると、LVMを介した場合も、LVMを介さない場合と同じぐらい直接的に物理ディスクにアクセスしているとの情報がありました。
別の記事にも、LVMはただのDevice Mapperである。ある抽象化されたデバイスXへのアクセスを別のデバイスYに
非公式情報ではありますが、その他複数の情報ソースを当たってみても「LVMは遅くない」という主張が見られることから、恐らく事実なのだと思います。
もちろん、LVMを使っていることで性能劣化が起こるケースはいくつかあるようです。
以下にいくつかの例を挙げます。
- 単一ディスクの複数パーティションに対してそれぞれPVを作成し、単一VGでまとめる構成
- 上記構成は、多くの場合性能劣化に繋がるとの情報あり
- 複数ディスクにPVを作成して単一VGでまとめる構成は、ディスク容量拡張やRAID0のような観点でのI/O性能向上を狙える一般的なアプローチ
- LVMのスナップショット機能を使う
- Linux Kernelの不具合によってLVM固有の問題に該当する
- ディスクのアラインメントの構成を間違える
- アラインメントを間違えたときの性能劣化問題は、LVMに限らない。パーティションを区切る場合も同じ
- パーティションサイズを1MiBで割り切れるように設定することで問題を回避できる
- 参考情報: Linuxのディスク拡張手順 (KVM, LVM, EXT4) - #(参考) 4K Disk Alignment
例えばパーティションとPhysical VolumeとVolume Groupが1:1:1になるように構成し、Volume GroupをLogical Volume で論理分割するような使い方をする分には、LVM起因で性能劣化をすることはほぼありえない想定です。
LVMの参考資料
LVMの概要を知りたい方は、下記リンクがオススメです。
- Enable Sysadmin - Logical Volume Manager (LVM) versus standard partitioning in Linux
- RHEL 8 - 論理ボリュームの設定および管理
(参考) ext4 ファイルシステムを選択した理由
デフォルトのXFSはファイルシステムの縮小に対応していないが、ext4はファイルシステムの縮小に対応しているからです。
今回の構成では基本的にはありえないことですが、「/ の容量が50GiBでは足りず拡張したい場合」や「急に気が変わって/varのパーティションを分けたくなった場合」なども LVM + ext4 の構成であれば柔軟に対応できます。
他にも以下の観点で調べましたが、PC用途としては全く問題なしでした。
産業用途の場合は、最大ボリュームサイズのみ要注意かもしれません。
(参考) Linuxインストール画面のスクリーンショットの撮り方
今回はKVM上に立てた仮想マシンのコンソール画面をスクリーンショットすることで記事用の画像を撮りました。
別の方法として、 (Linux インストーラである) Anacondaの機能でもスクリーンショットを撮れるようです。
- インストール画面で
Shift
+Print Screen
を押す - スクリーンショットが
/tmp/anaconda-screenshots/
配下に保存される - https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html/performing_a_standard_rhel_installation/installer-troubleshooting_installing-rhel#saving-screenshots_troubleshooting-at-the-start-of-the-installation
まとめ
長文になってしまいましたが、Fedora のインストール手順を紹介しました。
Linux のインストールは考えることが地味に多く (特にパーティション周り)、時間を奪われる工程だと思っています。
そういった方の時間節約に少しでも貢献できていたら嬉しいです。
NUC10構築シリーズの記事としてはこちらで一旦区切らせていただきます。
次からはLinux PC構築をFedora + Cinnamon で取り組んでみます。
詳細は以下のリンク集からチェックお願いします!