私はOS Xを使用しています。refind-install
スクリプトには、実行中のblessコマンドがありますが、機能していないようです:
Elif [[ "$TargetDir" != "/EFI/BOOT" ]] ; then
bless --setBoot --folder "$InstallDir/$TargetDir" --file "$InstallDir/$TargetDir/$Refind"
echo BLESS COMMAND: bless --setBoot --folder "$InstallDir/$TargetDir" --file "$InstallDir/$TargetDir/$Refind"
fi
追加のecho
行を追加して、コマンドがどのように見えるかを確認します。これは出力です。
BLESS COMMAND: bless --setBoot --folder /Volumes/efi///EFI/refind --file /Volumes/efi///EFI/refind/refind_x64.efi
次のようにインストールスクリプトを実行しています。
Sudo ./refind-install --root /Volumes/efi
/ Volume/efiには、MacBookのデフォルトのdisk0s1 ESPではなく、disk0s6のカスタムEFIシステムパーティションのルートが含まれています。
なぜ機能しないのか、rEFIndをデフォルトで起動する方法はありますか?
わかった、私は何が悪いのか知っているかもしれないと思う。そのため、次のように--root
オプションをrefind-install
に--usedefault
オプションに置き換えることで、それを機能させることができました。
Sudo ./refind-install --usedefault /dev/disk0s6
さて、次に起こることは、スクリプトが/dev/disk0s6
を無視し、rEFIndを/dev/disk0s1
にインストールすることです。メインOS X ESP(これは私が望んでいたものではありません) 、しかしそれは動作します)。
スクリプトは次に進み、other blessコマンドを実行します。
if [[ $InstallToEspOnMac == "1" ]] ; then
bless --mount "$InstallDir" --setBoot --file "$InstallDir/$TargetDir/$Refind" --shortform
Elif [[ "$TargetDir" != "/EFI/BOOT" ]] ; then
再起動後、これは機能し、rEFIndはデフォルトで起動します。 OS X ESPパーティション内のデフォルトの/EFI/BOOT/bootx64.efi
にrEFIndがインストールされているため、これが機能しているという予感があります。
しかし、これは私が望むものではありません。 /dev/disk0s6
ではなく、/EFI/refind/
の/EFI/BOOT
にインストールされているrefindをインストールしたいと思います。
また、--usedefault
オプションを使用する場合、インストールスクリプトはrefind_aa64.efi
をOS Xの/EFI/BOOT
にインストールしますESP(disk0s1)ただし、--root
disk0s6にインストールするオプションは、代わりにスクリプトをインストールしますrefind_x86.efi
また、おそらく1つのblessコマンドに--mount
オプションがあり、もう一方にはないことが、違いを生んだのかどうかもわかりません。
/ EFI/BOOTをdisk0s1からdisk0s6にコピーしてから、スクリプトと同じ--mount
blessコマンドを実行することができ、それが機能しました。
さて、私たちは近づいています。スクリプトを変更し、変更しました
Elif [[ "$TargetDir" != "/EFI/BOOT" ]] ; then
bless --setBoot --folder "$InstallDir/$TargetDir" --file "$InstallDir/$TargetDir/$Refind"
fi
に
Elif [[ "$TargetDir" != "/EFI/BOOT" ]] ; then
bless --mount "$InstallDir" --setBoot --file "$InstallDir/$TargetDir/$Refind"
fi
そして今、それは私が望むように動作します:/EFI/refind
オプションでマウントポイントを指定したパーティションの--root
にインストールされたrefind。これで私が探していた結果が得られますが、1つの小さな問題があります。ブート時に最終的にrEFIndに到達するまでに約30秒以上かかります。 NVRAMをリセットして再試行します...
あぁ! NVRAMをリセットする前に、blessコマンドに--shortform
オプションを追加してみました。これにより、前の編集の遅延の問題が修正されました。
2番目のblessコマンドが--folderモードであるのはなぜですか? --mountモードでより良く動作するようです。
したがって、今のところ、解決策は、スクリプトの2番目のblessコマンドを最初のblessコマンドとまったく同じように変更して、スクリプトの一部が次のようになるようにすることでした。
if [[ $InstallToEspOnMac == "1" ]] ; then
bless --mount "$InstallDir" --setBoot --file "$InstallDir/$TargetDir/$Refind" --shortform
Elif [[ "$TargetDir" != "/EFI/BOOT" ]] ; then
bless --mount "$InstallDir" --setBoot --file "$InstallDir/$TargetDir/$Refind" --shortform
fi
--root
のrefind-install
オプションを使用して、ターゲットパーティションのマウントポイントを指定しました。
mkdir /Volumes/efi
Sudo mount -t msdos /dev/disk0s6 /Volumes/efi
Sudo ./refind-install --root /Volumes/efi
まず、--root
オプションはESPの指定には使用されません。通常のインストールのルート(/
)ディレクトリを指定するために使用されます。 Linuxの緊急システムからrEFIndをインストールするときに使用することを目的としていますが、OS Xシステムからcouldを使用できます(ただし、あまり有用ではありません) 、ただし、maybeと--notesp
を組み合わせて-しかし、私はそれをテストしていません)。したがって、そのオプションを使用しようとすると、基本的に「間違ったツリーを起動する」ことになります。
refind-install
スクリプトには、rEFIndをセカンダリESPにインストールするための明示的なオプションはありません。 Linuxでは、/boot
または/boot/efi
;に必要なものをマウントすることにより、ESPを制御できます。ただし、OS Xでは、ESPは通常マウントされないため、スクリプトはESPを見つけようとします。複数のESPがある場合、必要なESPの使用は保証されません。このような場合、ここで説明するように、手動インストールにフォールバックする必要がほとんどあります。
http://www.rodsbooks.com/refind/installing.html#osx
または、--ownhfs
を使用してrEFIndを専用のHFS +ボリュームにインストールすることもできます。 2つのESPを持つことは役に立たない可能性があることに注意してください。 2つのESPが必要だと言っていることは知っていますが、なぜそれが必要なのかについては説明していません。理由がなければ、おそらくメリットがないので、それを忘れることをお勧めします。 ESPはmeantであり、OS間で共有されます。 1つのOSがESP上の別のOSのファイルを台無しにする危険性がありますが、バックアップを保持することで、このような問題から回復できるはずです。
知る限り、bless
の--folder
オプションは、HFS +ボリュームにインストールするときに機能しますが、FATボリュームにインストールするときは機能しません。ただし、このコマンドの詳細の一部は十分に文書化されていないようです。少なくとも、私は適切な文書を見つけていません。 IIRC、refind-install
を書いたとき、私はさまざまなサイトから例を取り上げ、動作するものを得るまで実験を行い、他のユーザーからのフィードバックを使用して時間をかけて調整しました。
間違っているかもしれませんが、起動後に再検索を表示したい場合は、再検索のためにESPパーティションを選択する必要があります。
LinuxまたはMac OS Xからインストールしようとしていますか?