結論
GRUB を使用する Linux 環境では、 / または /boot を JFS ファイルシステムにすると「GRUB unknown filesystem」と表示されLinux が起動できない場合があります。
Zorin OS のデュアルブート環境構築時に この問題に遭遇したため、再発防止のため情報共有します。
環境
PC : Lenovo ThinkPad L570
ストレージ : 1TB SSD
OS :
Windows 11
Zorin OS
ブート方式 : UEFI
ブートローダ : GRUB
BIOS設定
Secure Boot : Disable
※ Linux インストール時の一般的な設定です。(念のために掲載)
実施内容
Zorin OS の Live USB を作成し、Live環境からインストールを実施しました。
パーティション設定時に root パーティションを以下のように設定しました。
/ (root)
filesystem : JFS
インストール自体は正常に完了しました。
発生した問題
PC を再起動すると GRUB メニューは表示されますが、Zorin OS を選択すると起動に失敗しました。
調査
GRUB のコマンドラインからパーティションを確認しました。
ls
すると Zorin OS のパーティションと思われる箇所で
unknown filesystem
と表示されました。
このエラーは検索でもよく見かける
GRUB unknown filesystem
という状態です。
仕組み(原因)
GRUB は Linux を起動する際に kernel と initramfs を読み込みます。
/boot/vmlinuz
/boot/initrd
GRUBからJFS上のブートファイルを読み込めず unknown filesystem になるケースがあります
そのため以下の状態になります。
シンプル図
GRUB
│
│ (filesystem driver)
▼
JFS パーティション
│
└─ 読めない
│
▼
kernel をロードできない
│
▼
Linux 起動失敗
調査の結果 と 解決方法
Zorin OS を再インストールし root パーティションを JFS から ext4 へ変更したところ正常に起動するようになりました。
Linux デュアルブート時の注意
GRUB を利用する Linux 環境では少なくとも以下のパーティション
/boot
または
/
を、GRUB が読み取れるファイルシステムにする必要があります。
一般的には ext4 が安全です。
なお、Wikipediaによると「古いGRUBではJFS読み取りモジュールが存在した時期もある」の旨の記載がみつかりますが、当方は確認しておりません。
まとめ
Zorin OS のデュアルブート環境構築時に root パーティションを JFS にすると
GRUB unknown filesystem
となり Linux が起動できない可能性があります。
Linuxインストール時のファイルシステム選択には注意が必要です。
補足
環境によって挙動が異なる可能性があります。同様のトラブルに遭遇する方の参考になれば幸いです。
この記事の作成にあたり、文章整理のためにChatGPTの助言を参考にしました。