「Limine」の版間の差分
(→参照: 翻訳) |
(同期) |
||
(同じ利用者による、間の11版が非表示) | |||
7行目: | 7行目: | ||
{{Related|Unified Extensible Firmware Interface}} |
{{Related|Unified Extensible Firmware Interface}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
+ | [https://limine-bootloader.org Limine] は、先進的で、ポータブルな、マルチプロトコルの[[ブートローダー]]です。元は Limine ブートプロトコルのリファレンス実装として開発されましたが、Linux のブートや他のブートローダのチェインロードもサポートしています。 |
||
− | |||
− | [https://limine-bootloader.org Limine] は先進的なマルチプロトコルの x86/x86_64 BIOS と [[UEFI]] 用[[ブートローダー]] で、元は [https://github.com/stivale/stivale stivale] ブートプロトコルのリファレンス実装として開発されました。しかし、その後、Linux を起動したり、他のブートローダーをチェインロードしたりする機能が追加されました。 |
||
{{Note|記事全体で、{{ic|''esp''}} は [[EFI システムパーティション]](別名 ESP) のマウントポイントを示します。}} |
{{Note|記事全体で、{{ic|''esp''}} は [[EFI システムパーティション]](別名 ESP) のマウントポイントを示します。}} |
||
− | == サポートされるファイルシステム == |
+ | == サポートされているファイルシステム == |
+ | バージョン 6 から、Limine は [[Wikipedia:ja:Extended file system|ext2/3/4]] ファイルシステムをサポートしなくなり、[[FAT12]]、[[FAT16]]、[[FAT32]]、[[Wikipedia:ja:ISO 9660|ISO9660]] のみの[https://github.com/limine-bootloader/limine/blob/trunk/README.md#supported-filesystems サポート]となりました。サポートされているファイルシステムは、[https://github.com/limine-bootloader/limine/blob/trunk/PHILOSOPHY.md Limine の設計理念に基づいて意図的に制限されています]。 |
||
− | Limine は ext2、[[ext3]]、[[ext4]]、[[FAT|FAT12]]、[[FAT|FAT16]]、[[FAT32]]、[[NTFS]]、 ISO9660、そして [https://github.com/echfs/echfs echfs] をサポートします。 |
||
== インストール == |
== インストール == |
||
+ | {{Pkg|limine}} をインストールしてください。 |
||
− | {{AUR|limine}} をインストールしてください。このパッケージをインストールしても、ブートローダーは導入されません。パッケージのファイルとブートローダーのインストーラーがインストールされるだけです。 |
||
+ | |||
+ | == Limine ブートローダーをインストールする == |
||
− | == BIOS システム == |
+ | === BIOS システム === |
− | === MBR vs. GPT === |
+ | ==== MBR vs. GPT ==== |
レガシーな PC BIOS は、[[GPT]] または [[MBR]] でパーティショニングされたデバイスから起動することができます。Limine はこれら両方をサポートしており、インストール手順は非常に似ています。さらに、[[GRUB]] とは違って、GPT でパーティショニングされたデバイスにインストールする際に、生のデータを含む追加のパーティションを作成する必要はありません。 |
レガシーな PC BIOS は、[[GPT]] または [[MBR]] でパーティショニングされたデバイスから起動することができます。Limine はこれら両方をサポートしており、インストール手順は非常に似ています。さらに、[[GRUB]] とは違って、GPT でパーティショニングされたデバイスにインストールする際に、生のデータを含む追加のパーティションを作成する必要はありません。 |
||
30行目: | 31行目: | ||
一方、MBR はより古く、多くの制限があります。しかし、GPT パーティションのメディアから起動できない、風変わりな BIOS に対する互換性を確保できます。 |
一方、MBR はより古く、多くの制限があります。しかし、GPT パーティションのメディアから起動できない、風変わりな BIOS に対する互換性を確保できます。 |
||
− | === デプロイ === |
+ | ==== デプロイ ==== |
− | + | コアのブートローダーファイルは {{ic|/usr/share/limine}} にあります。BIOS システムにインストールする際に最も重要なのは {{ic|limine-bios.sys}} ファイルです。このファイルには、Limine が起動するのに必要なステージ3のコードが含まれています。このファイルは、Limine を導入するディスク上の任意のパーティション上のルートディレクトリか、{{ic|/boot}}、{{ic|/limine}}、{{ic|/boot/limine}} ディレクトリのどれかに置く必要があります。さらに、そのファイルシステムがサポートされている必要があります。 |
|
例: |
例: |
||
− | # cp /usr/share/limine/limine.sys /boot/ |
+ | # cp /usr/share/limine/limine-bios.sys /boot/ |
− | 次に、ステージ1とステージ2をディスクにデプロイする必要があります。 |
+ | 次に、ステージ1とステージ2をディスクにデプロイする必要があります。Limine は使用されているスキームを自動検出して適切にインストールするので、MBR と GPT のどちらが使用されていようとインストール方法は同じです: |
+ | # limine bios-install /dev/sdX |
||
− | 以下のように {{ic|limine-deploy}} を実行してください: |
||
− | |||
− | # limine-deploy /dev/sdX |
||
{{ic|''/dev/sdX''}} の部分は、Limine をインストールする'''ディスク'''('''パーティションではありません''')に書き換えてください。例えば、{{ic|/dev/sda}} や {{ic|/dev/nvme0n1}} です。ブロックデバイス名のスキームについては [[デバイスファイル#ブロックデバイスの名前]] を見てください。 |
{{ic|''/dev/sdX''}} の部分は、Limine をインストールする'''ディスク'''('''パーティションではありません''')に書き換えてください。例えば、{{ic|/dev/sda}} や {{ic|/dev/nvme0n1}} です。ブロックデバイス名のスキームについては [[デバイスファイル#ブロックデバイスの名前]] を見てください。 |
||
− | == UEFI システム == |
+ | === UEFI システム === |
− | |||
− | === デプロイ === |
||
− | UEFI システム上に Limine をデプロイするには、{{ic|/usr/share/limine/BOOTX64.EFI}} ファイルを [[EFI システムパーティション]]にコピーします。通常 {{ic|''esp''/EFI/BOOT/BOOTX64.EFI}} にコピーしますが、別のファイル名を使用することもできます。ただし、UEFI BIOS がそのファイルを検出できる必要があります |
+ | UEFI システム上に Limine をデプロイするには、{{ic|/usr/share/limine/BOOTX64.EFI}} ファイルを [[EFI システムパーティション]]にコピーします。通常 {{ic|''esp''/EFI/BOOT/BOOTX64.EFI}} にコピーしますが、別のファイル名を使用することもできます。ただし、UEFI BIOS がそのファイルを検出できる必要があります。[[GRUB]] とは異なり、Limine は NVRAM に Limine のブートローダーエントリを追加しません。Limine のエントリをセットアップするには [[efibootmgr]] を使用してください。 |
− | == UEFI+BIOS 起動可能ドライブ == |
+ | === UEFI+BIOS 起動可能ドライブ === |
ドライブが [[GPT]] でフォーマットされていて、かつ [[EFI システムパーティション]] を含んでいる場合、BIOS と UEFI の両方のデプロイ手順を行うことにより、そのドライブをレガシー BIOS と UEFI の両方のシステムで起動できるようになります。これは、例えば、UEFI に対応/非対応の複数のシステム上で使用する USB フラッシュドライブにオペレーティングシステムをインストールする場合や、システムをまたいでハードドライブを使用しやすくする場合に便利です。 |
ドライブが [[GPT]] でフォーマットされていて、かつ [[EFI システムパーティション]] を含んでいる場合、BIOS と UEFI の両方のデプロイ手順を行うことにより、そのドライブをレガシー BIOS と UEFI の両方のシステムで起動できるようになります。これは、例えば、UEFI に対応/非対応の複数のシステム上で使用する USB フラッシュドライブにオペレーティングシステムをインストールする場合や、システムをまたいでハードドライブを使用しやすくする場合に便利です。 |
||
58行目: | 55行目: | ||
== 設定 == |
== 設定 == |
||
− | {{ |
+ | {{Pkg|limine}} にはデフォルトの設定ファイルが同梱されていません。なので、作成する必要があります。このファイルは、どのオペレーティングシステムが起動できるかを Limine に指示するために必要です。Limine はカスタマイズ性が高いので、設定ファイルには多くのオプションがあります。設定ファイルのフォーマットやキーに関する詳細なドキュメントは[https://github.com/limine-bootloader/limine/blob/trunk/CONFIG.md ここ]で見られます。 |
− | ({{ic|limine.sys}} と同じように) |
+ | 設定ファイルは、({{ic|limine-bios.sys}} と同じように) Limine がデプロイされたドライブ上の任意のパーティションにあるルートディレクトリか {{ic|/boot}}、{{ic|/limine}}、{{ic|/boot/limine}} ディレクトリのどれかに置く必要があります。ただし、そのパーティションのファイルシステムがサポートされている必要があります。設定ファイルは {{ic|limine.cfg}} という名前でなければなりません。 |
− | {{Note| Limine の設定では、{{ic|boot:///}} は {{ic|limine.cfg}} が存在するパーティションを表しています。{{ic|/boot}} のあるパーティションが分離されておらず、{{ic|limine.cfg}} が代わりに |
+ | {{Note| Limine の設定では、{{ic|boot:///}} は {{ic|limine.cfg}} が存在するパーティションを表しています。{{ic|/boot}} のあるパーティションが分離されておらず、{{ic|limine.cfg}} が代わりにルートパーティションにある場合、{{ic|boot:///}} は {{ic|boot:///boot/}} のように書き換える必要があります。}} |
以下は、典型的な Arch Linux カーネルと initramfs の1つのブートメニューエントリを含む設定の例です: |
以下は、典型的な Arch Linux カーネルと initramfs の1つのブートメニューエントリを含む設定の例です: |
||
− | {{ |
+ | {{hc|limine.cfg|2= |
TIMEOUT=5 |
TIMEOUT=5 |
||
:Arch Linux |
:Arch Linux |
||
+ | PROTOCOL=linux |
||
− | |||
+ | KERNEL_PATH=boot:///vmlinuz-linux |
||
− | PROTOCOL=linux |
||
+ | CMDLINE=root=UUID=''xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'' rw |
||
− | KERNEL_PATH=boot:///vmlinuz-linux |
||
+ | MODULE_PATH=boot:///initramfs-linux.img |
||
− | CMDLINE=root=UUID=''root-uuid'' rw loglevel=3 quiet |
||
− | MODULE_PATH=boot:///initramfs-linux.img |
||
}} |
}} |
||
− | {{ic|'' |
+ | {{ic|''xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx''}} はルートファイルシステムの [[UUID]] です。 |
+ | {{Tip|[[セキュアブート]]が有効化されている UEFI システムでブートする場合は、Limine の設定ファイルとリソースファイル (カーネルやモジュールなど) の両方をセキュアにしておくことを検討してください。実際、これらの設定ファイルとリソースファイルが格納されている FAT パーティションにアクセスできる人物は、セキュアブートが有効化されている場合でもこれらのファイルを変更できてしまいます。 |
||
− | {{bc| |
||
+ | |||
− | blkid -s UUID -o value ''/dev/sdX1'' |
||
+ | これらのファイルを守るには、まず、すべてのリソースファイルの {{ic|b2sum}} チェックサムを設定ファイル内に記述しておく必要があります。ファイルを表現する URI には、そのファイルの {{ic|b2sum}} チェックサムを記述するための任意のフィールドが存在します。このフィールドは、ファイルパスの後に {{ic|#}} 文字を追加し、さらにその後に '''128 文字'''のチェックサムを追加することで指定できます: |
||
+ | |||
+ | {{hc||2= |
||
+ | boot:///''path''#''checksum'' |
||
}} |
}} |
||
+ | 設定ファイルを守るには、{{ic|limine enroll-config}} コマンドで EFI 実行ファイル内に設定ファイルの {{ic|b2sum}} チェックサムを埋め込んでおく必要があります。}} |
||
− | {{ic|''/dev/sdX1''}} の部分は Arch Linux がインストールされた root パーティションです。例えば、{{ic|/dev/sda1}} や {{ic|/dev/nvme0n1p2}} です。ブロックデバイス名のスキームについては [[デバイスファイル#ブロックデバイスの名前]] を見てください。 |
||
+ | === Windows エントリ === |
||
+ | Windows を起動できるようにするには、ESP 内の {{ic|bootmgfw.efi}} へのパスを知る必要があります。[[ESP]] 内に移動して、以下のコマンドを使用することで可能です: |
||
+ | |||
+ | {{hc|$ find -name "bootmgfw.efi"| |
||
+ | ./EFI/Microsoft/Boot/bootmgfw.efi |
||
+ | }} |
||
+ | |||
+ | 次にするべきことは、以下の内容を設定に追加することだけです: |
||
+ | |||
+ | {{hc|limine.cfg|2= |
||
+ | :Windows |
||
+ | PROTOCOL=efi_chainload |
||
+ | IMAGE_PATH=boot://'''/EFI/Microsoft/Boot/bootmgfw.efi''' |
||
+ | }} |
||
== pacman フック == |
== pacman フック == |
||
99行目: | 113行目: | ||
{{hc|/etc/pacman.d/hooks/liminedeploy.hook|2= |
{{hc|/etc/pacman.d/hooks/liminedeploy.hook|2= |
||
[Trigger] |
[Trigger] |
||
+ | Operation = Install |
||
Operation = Upgrade |
Operation = Upgrade |
||
Type = Package |
Type = Package |
||
106行目: | 121行目: | ||
Description = Deploying Limine after upgrade... |
Description = Deploying Limine after upgrade... |
||
When = PostTransaction |
When = PostTransaction |
||
− | Exec = /bin/sh -c "limine- |
+ | Exec = /bin/sh -c "/usr/bin/limine bios-install ''/dev/sdX'' && /usr/bin/cp /usr/share/limine/limine-bios.sys /boot/" |
}} |
}} |
||
113行目: | 128行目: | ||
{{hc|/etc/pacman.d/hooks/liminedeploy.hook|2= |
{{hc|/etc/pacman.d/hooks/liminedeploy.hook|2= |
||
[Trigger] |
[Trigger] |
||
+ | Operation = Install |
||
Operation = Upgrade |
Operation = Upgrade |
||
Type = Package |
Type = Package |
||
127行目: | 143行目: | ||
* [https://limine-bootloader.org Limine のウェブサイト] |
* [https://limine-bootloader.org Limine のウェブサイト] |
||
* [https://github.com/limine-bootloader/limine Limine の GitHub リポジトリ] |
* [https://github.com/limine-bootloader/limine Limine の GitHub リポジトリ] |
||
+ | |||
+ | {{TranslationStatus|Limine|2024-02-03|798794}} |
2024年2月3日 (土) 23:11時点における版
Limine は、先進的で、ポータブルな、マルチプロトコルのブートローダーです。元は Limine ブートプロトコルのリファレンス実装として開発されましたが、Linux のブートや他のブートローダのチェインロードもサポートしています。
目次
サポートされているファイルシステム
バージョン 6 から、Limine は ext2/3/4 ファイルシステムをサポートしなくなり、FAT12、FAT16、FAT32、ISO9660 のみのサポートとなりました。サポートされているファイルシステムは、Limine の設計理念に基づいて意図的に制限されています。
インストール
limine をインストールしてください。
Limine ブートローダーをインストールする
BIOS システム
MBR vs. GPT
レガシーな PC BIOS は、GPT または MBR でパーティショニングされたデバイスから起動することができます。Limine はこれら両方をサポートしており、インストール手順は非常に似ています。さらに、GRUB とは違って、GPT でパーティショニングされたデバイスにインストールする際に、生のデータを含む追加のパーティションを作成する必要はありません。
GPT では 2TiB 以上のパーティションをディスクに配置することができるし、パーティションやディスクの GUID を利用できたりなどの利点があるので、大きいドライブにおいて良い選択です。
一方、MBR はより古く、多くの制限があります。しかし、GPT パーティションのメディアから起動できない、風変わりな BIOS に対する互換性を確保できます。
デプロイ
コアのブートローダーファイルは /usr/share/limine
にあります。BIOS システムにインストールする際に最も重要なのは limine-bios.sys
ファイルです。このファイルには、Limine が起動するのに必要なステージ3のコードが含まれています。このファイルは、Limine を導入するディスク上の任意のパーティション上のルートディレクトリか、/boot
、/limine
、/boot/limine
ディレクトリのどれかに置く必要があります。さらに、そのファイルシステムがサポートされている必要があります。
例:
# cp /usr/share/limine/limine-bios.sys /boot/
次に、ステージ1とステージ2をディスクにデプロイする必要があります。Limine は使用されているスキームを自動検出して適切にインストールするので、MBR と GPT のどちらが使用されていようとインストール方法は同じです:
# limine bios-install /dev/sdX
/dev/sdX
の部分は、Limine をインストールするディスク(パーティションではありません)に書き換えてください。例えば、/dev/sda
や /dev/nvme0n1
です。ブロックデバイス名のスキームについては デバイスファイル#ブロックデバイスの名前 を見てください。
UEFI システム
UEFI システム上に Limine をデプロイするには、/usr/share/limine/BOOTX64.EFI
ファイルを EFI システムパーティションにコピーします。通常 esp/EFI/BOOT/BOOTX64.EFI
にコピーしますが、別のファイル名を使用することもできます。ただし、UEFI BIOS がそのファイルを検出できる必要があります。GRUB とは異なり、Limine は NVRAM に Limine のブートローダーエントリを追加しません。Limine のエントリをセットアップするには efibootmgr を使用してください。
UEFI+BIOS 起動可能ドライブ
ドライブが GPT でフォーマットされていて、かつ EFI システムパーティション を含んでいる場合、BIOS と UEFI の両方のデプロイ手順を行うことにより、そのドライブをレガシー BIOS と UEFI の両方のシステムで起動できるようになります。これは、例えば、UEFI に対応/非対応の複数のシステム上で使用する USB フラッシュドライブにオペレーティングシステムをインストールする場合や、システムをまたいでハードドライブを使用しやすくする場合に便利です。
設定
limine にはデフォルトの設定ファイルが同梱されていません。なので、作成する必要があります。このファイルは、どのオペレーティングシステムが起動できるかを Limine に指示するために必要です。Limine はカスタマイズ性が高いので、設定ファイルには多くのオプションがあります。設定ファイルのフォーマットやキーに関する詳細なドキュメントはここで見られます。
設定ファイルは、(limine-bios.sys
と同じように) Limine がデプロイされたドライブ上の任意のパーティションにあるルートディレクトリか /boot
、/limine
、/boot/limine
ディレクトリのどれかに置く必要があります。ただし、そのパーティションのファイルシステムがサポートされている必要があります。設定ファイルは limine.cfg
という名前でなければなりません。
以下は、典型的な Arch Linux カーネルと initramfs の1つのブートメニューエントリを含む設定の例です:
limine.cfg
TIMEOUT=5 :Arch Linux PROTOCOL=linux KERNEL_PATH=boot:///vmlinuz-linux CMDLINE=root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rw MODULE_PATH=boot:///initramfs-linux.img
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
はルートファイルシステムの UUID です。
Windows エントリ
Windows を起動できるようにするには、ESP 内の bootmgfw.efi
へのパスを知る必要があります。ESP 内に移動して、以下のコマンドを使用することで可能です:
$ find -name "bootmgfw.efi"
./EFI/Microsoft/Boot/bootmgfw.efi
次にするべきことは、以下の内容を設定に追加することだけです:
limine.cfg
:Windows PROTOCOL=efi_chainload IMAGE_PATH=boot:///EFI/Microsoft/Boot/bootmgfw.efi
pacman フック
必須ではありませんが、Limine がアップデートされるたびに Limine をデプロイする pacman フック を設定すれば便利です。
以下は単なる例です。システム構成に合うようにパスやデバイスを編集してください。
BIOS
/etc/pacman.d/hooks/liminedeploy.hook
[Trigger] Operation = Install Operation = Upgrade Type = Package Target = limine [Action] Description = Deploying Limine after upgrade... When = PostTransaction Exec = /bin/sh -c "/usr/bin/limine bios-install /dev/sdX && /usr/bin/cp /usr/share/limine/limine-bios.sys /boot/"
UEFI
/etc/pacman.d/hooks/liminedeploy.hook
[Trigger] Operation = Install Operation = Upgrade Type = Package Target = limine [Action] Description = Deploying Limine after upgrade... When = PostTransaction Exec = /usr/bin/cp /usr/share/limine/BOOTX64.EFI /boot/EFI/BOOT/