Grubを使用してWindowsと他の2つのLinuxディストーションプログラムを起動する必要があります。したがって、次のコマンドを使用してUEFIパーティションにGrubをインストールし、専用パーティションを使用してGrubが使用するファイルを保存しました。
sudo grub-install --efi-directory=/mnt/efi --root-directory=/mnt/grub --bootloader-id=Grub --uefi-secure-boot --target=x86_64-efi /dev/sda
/dev/sda1
Mounted on/mnt/efi
は私のEFIパーティション、/dev/sda2
Mounted onは/mnt/grub
Grubファイル用のパーティションです。
しかし、Grubを起動した後、私が配置したgrub.cfgファイルが見つからず、デフォルトの/mnt/grub
Grubシェルが表示されるようです。またはを入力してシステムをconfigfile /efi/Grub/grub.cfg
手動で復元することもできますconfigfile (hd0,gpt2)/grub/grub.cfg
。
ここに私のファイルのいくつかがあります
$ sudo tree /mnt/efi/EFI
/mnt/efi/EFI
├── Grub
│ ├── BOOTX64.CSV
│ ├── fbx64.efi
│ ├── grub.cfg
│ ├── grubx64.efi
│ ├── mmx64.efi
│ └── shimx64.efi
└── Microsoft
|...
$ sudo tree /mnt/grub/grub
/mnt/grub/grub
├── fonts
│ └── unicode.pf2
├── grub.cfg
├── grubenv
└── x86_64-efi
|...
$ sudo cat /mnt/efi/EFI/Grub/grub.cfg
search.fs_uuid 3110d895-a376-484a-8dba-e0475b9a977c root hd0,gpt2
set prefix=($root)'/grub'
configfile $prefix/grub.cfg
$ sudo fdisk -l /dev/sda
Disk /dev/sda: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disklabel type: gpt
Device Start End Sectors Size Type
/dev/sda1 2048 526335 524288 256M EFI System
/dev/sda2 526336 657407 131072 64M Linux filesystem
/dev/sda3 657408 690175 32768 16M Microsoft reserved
/dev/sda4 690176 563607551 562917376 268.4G Microsoft basic data
/dev/sda5 563607552 697825279 134217728 64G Linux filesystem
/dev/sda6 697825280 966260735 268435456 128G Linux filesystem
/dev/sda7 966260736 983037951 16777216 8G Linux swap
/dev/sda8 983037952 1117254748 134216797 64G Linux filesystem
/dev/sda9 1117255680 1385691135 268435456 128G Linux filesystem
/dev/sda10 1385691136 1402468350 16777215 8G Linux swap
私は小さな間違いをしたようですが、これにはあまりにも多くの時間を費やしました。
ベストアンサー1
GRUBはgrub.cfg
ESPからロードするために絶対パスを使用しているようです。おそらくGRUBがどのディレクトリからロードされたのかわからないかもしれません。
Debianの場合、パスはです/EFI/debian/grub.cfg
。
.efi
このコマンドを使用すると、特定の実行可能ファイルが使用できるパスを見つけることができます。
strings /boot/efi/EFI/devuan/grubx64.efi | less '+/EFI\/'
.efi
明らかに、上記とは異なる実行ファイルパスを使用する必要があるかもしれません。
これ関連のバグのようです。
grub.cfg
予想されるパスにコピーするのがうまくいくようです。
cd /boot/efi/EFI/
mkdir debian
cp devuan/grub.cfg debian/
もちろん、コマンドとパスは異なる場合があります。変更が発生すると、grub.cfg
FATファイルシステムは接続をサポートしていないため、コピーを更新する必要があります。しかし、私の姿は次のようなので、あまり変わったようではありません。
search.fs_uuid $root_fs_uuid root mduuid/$array_uuid
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg