Linuxシステムのディレクトリ構造を見ていると、「/boot/efi」という謎のフォルダを見かけたことはありませんか?
「なんだかブート関連らしいけど、触っていいのかな?」「中身を見ても何が何だか…」
実はこのディレクトリ、パソコンの起動に欠かせない、とても重要な場所なんです。でも、普段は意識することがないので、その役割を知らない方も多いはず。
この記事では、/boot/efiディレクトリの役割から、中身の確認方法、トラブルシューティングまで、初心者の方にも分かるように丁寧に解説していきます。
Linuxシステムの起動の仕組み、一緒に見ていきましょう!
/boot/efiとは?基本を理解しよう

EFIシステムパーティションのマウントポイント
/boot/efiは、EFIシステムパーティション(ESP)がマウントされるディレクトリです。
「マウント」とは、ストレージ上のパーティションをLinuxのディレクトリとして使えるようにすること。外付けHDDを接続して使えるようにするイメージですね。
つまり、/boot/efiというフォルダの実体は、実はストレージ上の特別な領域なんです。
EFI/UEFIとは何か
ここで、EFI(Extensible Firmware Interface)とUEFI(Unified EFI)について説明しておきましょう。
UEFIは、パソコンの電源を入れた時、OSが起動する前に動作するファームウェア。
従来のBIOS(Basic Input/Output System)に代わる、現代的な起動システムなんです。
UEFIの特徴:
- 2TB以上の大容量ディスクに対応
- 高速な起動
- GUIでの設定画面
- セキュアブート機能
- ネットワーク機能
2010年代以降に製造されたパソコンは、ほぼすべてUEFIを搭載しています。
なぜ専用パーティションが必要なのか
UEFIシステムでは、ブートローダー(OSを起動するプログラム)を特別な場所に配置する必要があります。
それがEFIシステムパーティション。
このパーティションは、OSから独立した専用領域として確保され、/boot/efiにマウントされるわけです。
/boot/efiの役割と重要性
このディレクトリが担っている重要な役割を見ていきましょう。
1. ブートローダーの保存場所
最も重要な役割は、ブートローダーを保存すること。
ブートローダーとは:
OSを起動するための小さなプログラム。Linuxでは主にGRUB(Grand Unified Bootloader)が使われます。
UEFIは起動時、/boot/efi内のブートローダーを読み込んで、Linuxを起動するんです。
2. 複数OSの起動管理
デュアルブートやマルチブート環境では、/boot/efiが特に重要。
WindowsとLinux、複数のLinuxディストリビューションなど、異なるOSのブートローダーがすべて/boot/efiに配置されます。
起動時に「どのOSを起動するか」選べるのは、このディレクトリのおかげなんですね。
3. 起動設定の管理
UEFIの起動順序や設定情報も、この領域に保存されます。
/boot/efiの中身を見てみよう
実際にどんなファイルが入っているか、確認してみましょう。
中身を確認する方法
ls -la /boot/efi通常、以下のような構造になっています。
/boot/efi/
└── EFI/
    ├── BOOT/
    │   └── BOOTX64.EFI
    ├── ubuntu/
    │   ├── grubx64.efi
    │   ├── shimx64.efi
    │   └── grub.cfg
    └── Microsoft/
        └── Boot/
            └── bootmgfw.efi主要なディレクトリとファイル
EFI/ディレクトリ
すべてのブートローダーが格納される最上位ディレクトリ。
EFI/BOOT/
デフォルトのブートローダーが入る場所。
- BOOTX64.EFI:64ビットx86システム用のデフォルトブートローダー
UEFIは、特定のOSが選ばれていない場合、このファイルを実行します。
EFI/ubuntu/(ディストリビューション名)
Ubuntu(または他のLinuxディストリビューション)専用のブートローダー。
- grubx64.efi:GRUB2のEFIブートローダー
- shimx64.efi:セキュアブート対応の署名済みブートローダー
- grub.cfg:GRUBの設定ファイル
EFI/Microsoft/
Windowsがインストールされている場合に存在。
- bootmgfw.efi:Windowsのブートマネージャー
デュアルブート環境では、LinuxとWindowsの両方のブートローダーがここに共存するんです。
ファイルシステム
/boot/efiは、通常FAT32ファイルシステムでフォーマットされています。
これは、UEFIファームウェアがFAT32しか読めないためです。
# ファイルシステムの確認
df -Th | grep efi実行結果例:
/dev/sda1  vfat  512M  45M  467M   9% /boot/efivfat(FAT32)でフォーマットされているのが分かります。
/boot/efiのサイズと要件
EFIシステムパーティションには、どれくらいの容量が必要なのでしょうか。
推奨サイズ
最小要件:100MB
技術的には100MBでも動作しますが、余裕を持たせるのが安全です。
推奨サイズ:512MB〜1GB
複数のOSをインストールする予定があるなら、512MB以上を推奨します。
- 単一のLinux:512MBで十分
- デュアルブート(Linux + Windows):512MB〜1GB
- 複数のLinuxディストリビューション:1GB以上
容量不足の問題
/boot/efiがいっぱいになると、以下の問題が起きます。
- カーネルアップデートが失敗する
- 新しいOSをインストールできない
- ブートローダーの更新ができない
定期的に容量を確認しましょう。
df -h /boot/efi/boot/efiの確認とメンテナンス

日常的な管理方法を見ていきましょう。
マウント状態の確認
/boot/efiが正しくマウントされているか確認します。
mount | grep efi実行結果例:
/dev/sda1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077)マウントされていれば、このような表示が出ます。
パーティション情報の確認
sudo fdisk -l | grep -i efiまたは
sudo parted /dev/sda printEFIシステムパーティションには、通常「EFI System」というラベルが付いています。
fstabの確認
システム起動時に自動マウントされるよう、/etc/fstabに設定されているはずです。
cat /etc/fstab | grep efi設定例:
UUID=XXXX-XXXX  /boot/efi  vfat  defaults  0  1古いカーネルの削除
/boot/efiの容量を圧迫する主な原因は、古いカーネルファイルです。
現在使用中のカーネル確認:
uname -rインストール済みカーネル一覧:
dpkg --list | grep linux-image古いカーネルの削除(Ubuntu/Debian):
sudo apt autoremove --purgeこのコマンドで、使われていない古いカーネルが自動的に削除されます。
トラブルシューティング
/boot/efi関連のよくある問題と解決方法です。
問題1:/boot/efiがマウントされていない
症状:
- カーネルアップデートが失敗する
- “update-grub”コマンドがエラーを出す
確認:
mount | grep efi何も表示されなければ、マウントされていません。
解決方法:
# EFIパーティションのデバイス名を確認
sudo fdisk -l | grep -i efi
# 手動でマウント(/dev/sda1は環境により異なる)
sudo mount /dev/sda1 /boot/efi
# 再起動後も自動マウントされるよう設定
sudo nano /etc/fstab
# 適切なUUIDエントリを追加問題2:容量不足でカーネル更新ができない
症状:
No space left on device解決方法:
# 現在の使用状況確認
df -h /boot/efi
# 古いカーネルを削除
sudo apt autoremove --purge
# 不要なファイルを手動削除(上級者向け)
# ※注意:必要なファイルを削除するとブートできなくなります問題3:ブートローダーが壊れた
症状:
- システムが起動しない
- “No bootable device”エラー
解決方法(Ubuntu/Debian):
Live USBから起動して、以下を実行:
# 既存のシステムをマウント
sudo mount /dev/sda2 /mnt  # ルートパーティション
sudo mount /dev/sda1 /mnt/boot/efi  # EFIパーティション
# 必要なディレクトリをバインドマウント
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
# chrootでシステムに入る
sudo chroot /mnt
# GRUBを再インストール
grub-install /dev/sda
update-grub
# 終了
exit
sudo reboot問題4:デュアルブートでWindowsが起動しない
症状:
- Linux起動後、Windowsブートエントリが消えた
解決方法:
# os-proberでWindowsを検出
sudo os-prober
# GRUBを更新
sudo update-grubこれで、Windowsのエントリが再度GRUBメニューに追加されます。
/boot/efiを別パーティションにする理由
なぜ/boot/efiは別パーティションになっているのでしょうか。
1. UEFIの仕様要件
UEFIファームウェアは、FAT32ファイルシステムしか読めません。
一方、Linuxのルートパーティションは通常ext4やbtrfs。
そのため、FAT32でフォーマットされた専用パーティションが必要なんです。
2. 複数OSの共存
1つのEFIシステムパーティションを複数のOSで共有することで、スムーズなマルチブート環境が実現できます。
3. セキュリティと安定性
ルートパーティションとは独立しているため、システムのトラブル時にも比較的安全です。
4. 標準化
すべてのUEFIシステムが同じ場所を見るため、互換性が高まります。
/boot と /boot/efi の違い

似た名前のディレクトリがありますが、役割が違います。
/bootディレクトリ
Linux自体が使う起動関連ファイルを保存。
主な内容:
- カーネルイメージ(vmlinuz-*)
- Initial RAMディスク(initrd.img-*)
- System.map(カーネルシンボル情報)
- GRUBの設定ファイル(grub.cfg)
ファイルシステムは通常ext4。
/boot/efiディレクトリ
UEFIファームウェアが読み込むブートローダーを保存。
主な内容:
- EFIブートローダー(.efiファイル)
- ブートマネージャー
ファイルシステムは必ずFAT32。
起動の流れ
- UEFIが/boot/efi内のブートローダーを実行
- ブートローダー(GRUB)が/boot内のカーネルを読み込む
- Linuxカーネルが起動してシステムが立ち上がる
/boot/efiと/bootは、起動プロセスの異なる段階で使われるんですね。
セキュアブートと/boot/efi
最後に、セキュアブートについて簡単に触れておきます。
セキュアブートとは
セキュアブートは、署名されたブートローダーだけを実行するUEFIの機能。
マルウェアによるブート改ざんを防ぐセキュリティ機能です。
shimx64.efi の役割
/boot/efi内のshimx64.efiは、セキュアブート対応の署名済みブートローダー。
Microsoftの署名を受けているため、セキュアブートが有効でもLinuxを起動できるんです。
起動の流れ:
- UEFIがshimx64.efiを検証・実行
- shimがgrubx64.efiを検証・実行
- GRUBがカーネルを起動
この多段階の検証で、セキュリティを保ちつつLinuxを起動できます。
まとめ:/boot/efiはシステムの要
/boot/efiディレクトリについて、ここまで詳しく見てきました。最後に要点を整理しておきましょう。
/boot/efiの重要ポイント:
- EFIシステムパーティション(ESP)のマウントポイント
- UEFIブートローダーが格納される場所
- FAT32ファイルシステムでフォーマット
- 推奨サイズは512MB〜1GB
- 複数OSのブートローダーが共存できる
役割:
- ブートローダー(GRUB)の保存
- 複数OSの起動管理
- UEFIとOSの橋渡し
メンテナンス:
- 定期的な容量確認
- 古いカーネルの削除
- マウント状態の確認
- バックアップの重要性
トラブル対策:
- Live USBからの復旧方法を知っておく
- GRUBの再インストール手順を理解
- fstabの設定を確認
 
  
  
  
   
               
               
               
               
              

コメント