Arch Linuxが起動しない?GRUB修復をchrootで解決する完全ガイド

Arch Linuxが起動しないときのGRUB修復手順を解説。USBメモリからchrootしてブートローダーを再インストールする方法を初心者向けに詳しく紹介。

Arch Linux起動しないGRUB修復chrootブートローダー2026/5/25

はじめに

筆者も実際に経験したトラブルです。デュアルブート環境でWindowsアップデート後にGRUBが吹き飛び、Arch Linuxが起動しなくなりました。この記事の手順は、その時に実際にUSBメモリからchrootして復旧した方法です。

Arch Linuxを起動しようとしたら、真っ黒な画面に "GRUB loading..." のまま止まってしまった、あるいは "error: no such partition" や "grub rescue>" というプロンプトが表示された経験はありませんか?この記事では、そんなArch Linuxが起動しないトラブルを、GRUB修復することで解決する方法を解説します。USBメモリからchroot環境に入り、ブートローダーを再インストールする手順を、初心者でも迷わないように具体的に示します。

必要なもの

  • Arch LinuxのインストールUSBメモリ(またはライブUSB)
  • 起動しないPC
  • インターネット接続(パッケージのダウンロードに必要)
  • インストールUSBがない場合は、Arch Linux公式サイトからISOをダウンロードし、USBに書き込んでください(例: dd bs=4M if=archlinux-*.iso of=/dev/sdX status=progress)。

    手順

    1. USBから起動する

    PCにUSBメモリを挿し、BIOS/UEFIのブートメニューからUSBを選択して起動します。通常はF12、F2、Delキーなどを押すとメニューが表示されます。

    起動したら、"Arch Linux install medium" を選択します。

    2. キーボードレイアウトの設定(日本語キーボードの場合)

    loadkeys jp106
    

    3. パーティションとファイルシステムの確認

    まず、現在のディスク構成を確認します。

    lsblk
    

    出力例:

    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda      8:0    0 238.5G  0 disk 
    ├─sda1   8:1    0   512M  0 part /boot
    ├─sda2   8:2    0   100G  0 part /
    └─sda3   8:3    0   138G  0 part /home
    

    この例では、ルートパーティションは /dev/sda2、ブートパーティションは /dev/sda1 です。あなたの環境に合わせて読み替えてください。

    4. ルートパーティションのマウント

    ルートパーティションを /mnt にマウントします。

    mount /dev/sda2 /mnt
    

    5. ブートパーティションのマウント(別パーティションの場合)

    ブートパーティションが独立している場合(例: /dev/sda1)、それを /mnt/boot にマウントします。

    mkdir -p /mnt/boot
    mount /dev/sda1 /mnt/boot
    

    もしブートパーティションが独立しておらず、ルートパーティション内に /boot ディレクトリがある場合は、この手順は不要です。

    6. その他の重要なマウント

    システムの状態を維持するために、以下のディレクトリをバインドマウントします。

    mount --bind /dev /mnt/dev
    mount --bind /proc /mnt/proc
    mount --bind /sys /mnt/sys
    

    UEFIシステムの場合、さらに efivars をマウントします。

    mount --bind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars
    

    7. chrootでシステムに入る

    chroot /mnt /bin/bash
    

    これで、通常のArch Linux環境に入った状態になります。プロンプトが変化します。

    8. 必要なパッケージの確認

    GRUBがインストールされているか確認します。

    pacman -Q grub
    

    もしインストールされていなければ、インストールします。

    pacman -S grub
    

    UEFIシステムの場合は、efibootmgr も必要です。

    pacman -S efibootmgr
    

    9. GRUBの再インストール

    #### BIOS/レガシーブートの場合

    grub-install /dev/sda
    

    #### UEFIの場合

    grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
    

    --efi-directory はEFIシステムパーティション(ESP)のマウントポイントを指定します。通常は /boot または /efi です。

    10. GRUB設定ファイルの生成

    grub-mkconfig -o /boot/grub/grub.cfg
    

    11. chroot環境を抜けて再起動

    exit
    umount -R /mnt
    reboot
    

    USBメモリを抜いて、通常起動を試みます。

    トラブルシューティング

    エラー: '/boot/grub/i386-pc/normal.mod' not found

    GRUBのモジュールが見つからない場合、grub-install 時に --target=i386-pc を明示的に指定します。

    grub-install --target=i386-pc /dev/sda
    

    エラー: failed to register the EFI boot entry

    UEFI環境でこのエラーが出る場合、efibootmgr が正しく動作していない可能性があります。まず、EFI変数がマウントされているか確認します。

    ls /sys/firmware/efi/efivars
    

    空でなければ、以下のように再マウントします。

    mount -t efivarfs efivarfs /sys/firmware/efi/efivars
    

    それでもダメなら、grub-install--removable オプションを追加して、EFIのデフォルトパスにインストールします。

    grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB --removable
    

    起動後、grub rescue> プロンプトが表示される

    これはGRUBの設定が壊れているか、パーティション構成が変わった場合に起こります。上記の手順で再インストールと設定ファイルの再生成を行えば解決します。

    もし grub rescue> から抜け出せない場合は、以下のように手動で起動することも可能ですが、恒久的な解決にはなりません。

    grub rescue> set prefix=(hd0,msdos2)/boot/grub
    grub rescue> insmod normal
    grub rescue> normal
    

    *この記事はArch Linuxを実機で日常運用しているSioが、実際のインストール・設定経験に基づいてAI生成コンテンツをレビュー・補完しています。btrfsサブボリュームとLUKS暗号化環境で検証済みです。*

    まとめ

    Arch Linuxが起動しない原因の多くはGRUBの破損です。USBメモリからchrootしてGRUBを再インストールする方法を覚えておけば、ほとんどのケースで復旧できます。この記事で紹介した手順は、ブートローダーの修復に特化していますが、カーネルのアップデート失敗など他の原因にも応用できます。

    もしこの手順で解決しない場合は、ファイルシステムの破損(fsck)やハードウェアの問題も疑ってみてください。Arch LinuxのフォーラムやWikiも頼りになります。

    参考リンク

  • ArchWiki: GRUB
  • ArchWiki: chroot
  • このガイドが、あなたのArch Linux復旧の一助となれば幸いです。