最近の再インストール後、rEFIndで非常に奇妙な問題が発生しています。/bootパーティションでGRUBとvmlinuzの両方を検出しますが、後者を使用するとextremely slowです。
具体的には、「191 MiB ext2ボリュームからvmlinuz-4.8.0-53-genericをブート」を選択した直後に、次のテキストを含む黒い画面が表示されます。
Starting vmlinuz-4.8.0-53-generic
Using load options 'root=UUID=6641e1e2-6829-49cc-bf88-85ba5eefbff8 ro quiet splash nomodeset vt.handoff=7 initrd=\initrd.img-4.8.0-53-generic'
約1分待ってから(!)、Linuxは通常どおり(そしてかなり速く)起動します。
一方、GRUBを選択すると、GRUBブートメニューが表示され、デフォルトオプションを選択すると、すぐにLinuxが起動します。
この理由は何でしょうか?
私のセットアップには、/ boot/efiにマウントされたext2/bootパーティションとEFIパーティション(Windowsによって最初に作成された)を持つSSD(LinuxとWindowsがインストールされている場所)とHDD(私の/ homeがある場所)が含まれます。これが私の/ etc/fstabです。
UUID=6641e1e2-6829-49cc-bf88-85ba5eefbff8 / ext4 errors=remount-ro 0 1
UUID=3c804805-c41e-4b9d-af02-118b98858ae4 /boot ext2 defaults 0 2
UUID=8EA5-5319 /boot/efi vfat umask=0077 0 1
UUID=bf088ec8-140d-4829-8de7-deb1d375b0e5 /home ext4 defaults 0 2
UUID=E2A8CA84A8CA5727 /mnt/Windows ntfs defaults,umask=007,gid=46 0 0
UUID=3fb0b28d-87d8-4162-b469-1c157a4d00b0 none swap sw 0 0
私はrEFIndのメンテナーです。
これは、ファイルシステムドライバーの問題です。私が完全に理解していない理由により、一部のコンピューターではrEFIndのファイルシステムドライバーの一部(特にext2_x64.efi
ドライバー)が遅い。数年前にドライバーコードに粗い先読みキャッシュを追加しましたが、これは大いに役立ちました-VirtualBoxでは、速度が約3分の読み込み時間から数十秒のIIRCに向上しました。ただし、一部のコンピューターでは、このキャッシュでも問題が引き続き発生します。
解決策は、別のファイルシステムに変更することです。 rEFIndのext4fsドライバーは、ext2/3fsドライバーよりもはるかに高速であり、BtrfsおよびReiserFSドライバーは依然として高速です。 (ext4fsドライバーはext2fsを読み取ることができますが、速度の改善はほとんどまたはまったくありません。実際のext4ファイルシステムを読み取って速度を改善する必要があります。)最悪のシナリオでは、FATを使用できます。特別なドライバーはありません(すべてのEFIに組み込まれています)。またはMacでは、HFS +を使用できます。 (rEFIndに付属するHFS +ドライバーもあります。したがって、原則として非Mac PCでもHFS +を使用できますが、そうすることはほとんどまたはまったく意味がありません。)しかし、標準のLinuxファイルシステムの外に移動することはお勧めできません。 Ubuntuは一部の(すべてではない)カーネルアップデートのシンボリックリンクに依存しているため、FATの選択は不適切です。また、HFS +は動作するはずですが、Ubuntuでは公式にサポートされていません。 ReiserFSでさえUbuntuインストーラーのオプションではないので、Ubuntuの場合はそれを避けます。 ext4fsとBtrfsが残ります。
切り替えは非常に簡単ですが、リスクがないわけではありません。間違えた場合、システムが起動不能になる可能性があります。基本的な手順は次のとおりです。
drivers
またはdrivers_x64
サブディレクトリ(おそらく[/boot/efi/EFI/refind/drivers
または/boot/efi/EFI/refind/drivers_x64
)にコピーします。その場所から古いext2_x64.efi
ファイルを削除すると、rEFIndのロード時間が1秒ほど短縮されます。/boot/efi
)をアンマウントします。/boot
パーティションをバックアップします。これには、Zip
、tar
、cp
、またはその他のファイルレベルのツールを使用できます。/boot
をアンマウントします。/boot
パーティションに新しいファイルシステムを作成します。Sudo blkid /dev/sda{x}
(/dev/sda{x}
を/boot
パーティションの識別子に変更)と入力して、新しいUUID値を確認します。/etc/fstab
を編集して、/boot
パーティションのUUID値とファイルシステムタイプを変更します。Sudo mount -a
と入力して、新しい/boot
パーティションをマウントします。 (/boot/efi
マウントポイントがないと文句を言うでしょう。この警告は無視できます。)/boot
ファイルを新しい/boot
ファイルシステムに復元します。この時点で、再起動できるようになり、うまく機能します。ただし、間違いがあると、システムが起動できなくなる可能性があります。そのリスクを減らすために、少なくとも1つの動作中のカーネル、initrdファイル、およびrefind_linux.conf
を/boot
から/boot/efi
にコピーし、ESPからカーネルを起動する能力をテストできます。あなたが始める前に。これにより、問題が発生した場合のフォールバック方法が提供されます。問題がなければ、もちろん完了したらESPからカーネルを削除できます。
REFIndのドライバーの詳細については、このテーマに関するドキュメントを参照してください。