grub2:エラー:initrdを割り当てられません。 - 初期 ramdisk(initrd) ファイルにエラーなしで FAT32 で NTFS パーティションをチェーンロードしています。

grub2:エラー:initrdを割り当てられません。 - 初期 ramdisk(initrd) ファイルにエラーなしで FAT32 で NTFS パーティションをチェーンロードしています。

オペレーティングシステムUbuntu 20.04.3 LTS Desktop 64-bitはgpt2パーティションにあり、ファイルシステムはNTFSです。

以下は、FAT32ファイルシステムのgpt1パーティション構造です。

.
├── boot
│   └── grub
│       └── grub.cfg
└── efi
    └── boot
        ├── bootx64.efi
        ├── grubx64.efi
        └── mmx64.efi

4 directories, 4 files

これはNTFSパーティションのgrubメニューです(デフォルトのgrub.cfg):

if loadfont /boot/grub/font.pf2 ; then
    set gfxmode=auto
    insmod efi_gop
    insmod efi_uga
    insmod gfxterm
    terminal_output gfxterm
fi

set menu_color_normal=white/black
set menu_color_highlight=black/light-gray

set timeout=5
menuentry "Ubuntu" {
    set gfxpayload=keep
    linux   /casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed maybe-ubiquity quiet splash ---
    initrd  /casper/initrd
}
menuentry "Ubuntu (safe graphics)" {
    set gfxpayload=keep
    linux   /casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed maybe-ubiquity quiet splash nomodeset ---
    initrd  /casper/initrd
}
menuentry "OEM install (for manufacturers)" {
    set gfxpayload=keep
    linux   /casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed only-ubiquity quiet splash oem-config/enable=true ---
    initrd  /casper/initrd
}
grub_platform
if [ "$grub_platform" = "efi" ]; then
menuentry 'Boot from next volume' {
    exit 1
}
menuentry 'UEFI Firmware Settings' {
    fwsetup
}
fi

grub.cfgファイル(FAT32パーティション)に次のものが含まれている場合:

search --no-floppy --set=root --fs-uuid 2E92F36515DD4A5A
chainloader /EFI/BOOT/BOOTx64.EFI
boot

grub選択メニューから選択し、それをデフォルトのgrub.cfgファイル(NTFSパーティション)(isoイメージに含まれているのと同じ基本ファイル)に入れると、Ubuntu 20.04.3 LTS Desktop 64-bitエラーメッセージが表示されます。

error: can't allocate initrd.
Press any key to continue...

このコマンドを使用すると、NTFSパーティションブートローダが正しく起動されることを強調する必要があります。そうしないと、このコマンドで発生するエラーであるchainloadergrub選択メニューは表示されません。initrd

grub.cfgファイル(FAT32パーティション)に次のものが含まれている場合:

search --no-floppy --set=root --fs-uuid 2E92F36515DD4A5A
configfile /boot/grub/grub.cfg

メニューを選択すると、すべてがうまく機能するため、initrdコマンドでエラーが発生しなくなります。

initrdデフォルトのgrub.cfgファイルを使用して起動するためにNTFSパーティションブートローダを実行するのに問題がありますか?
パーティション2にWindowsがある場合は、すべてがうまく機能するかどうかをテストしましたchainloader

アップデート1:
パーティションを交換しようとしましたが、エラーが解決しません。

アップデート2:コマンドでより詳細なエラー出力を取得したい
のですinitrdが、わかりません。それをする方法
頑張りました

linux   /casper/vmlinuz file=/cdrom/preseed/ubuntu.seed nosplash debug ignore_loglevel ---
initrd  /casper/initrd

しかし、エラー出力はまだ同じで、行は追加されていません。

アップデート3:
私がやろうとしていることをまとめて明確にするために、FAT32パーティションからNTFSパーティションにあるブートローダをチェーンロードしています。
BIOSから直接NTFSパーティションを起動すると、すべてがうまく機能しますが、FAT32パーティションからチェーンロードを開始すると問題が発生します。 FAT32パーティションファイル内でコマンドの代わりにコマンドを使用して
grub.cfg(NTFSパーティション)メニューを呼び出しても(その中に含まれる行を表示しました)、すべてがうまく機能します。configfilechainloadergrub.cfg

アップデート4:一般化の理由で、とにかく
このコマンドを使用し、同じコマンドを実行してWindowsとUbuntuの両方のパーティションを起動できたため、問題を解決するコマンドを使用することもchainloaderできました。configfile

アップデート5:モジュール
ntfs2つのパーティションのブートローダに組み込まれています。注文lsmodはこれを確認します。それにもかかわらず、両方のパーティションにinsmod ntfsファイルを挿入しようとしましたが、grub.cfg期待どおりにエラーは変更されませんでした。

アップデート6:
古いコンピュータのUEFIはNTFSを直接読み取ることができないため、BIOSからNTFSパーティションを直接起動しません。

アップデート7:
バグが見つかりました!私はそれが数秒間しか持続しなかったので、以前はそれに気づかなかった。ところで携帯電話で撮った映像はエラーをキャッチするために60fpsに設定しなければならず、録画した後PCに転送し、PCで映像クリップのスクリーンショットを撮った後に回転させてGIMPクロップを使用しました。
エラーは次のとおりです。

error: can't find command `grub_platform`.

スクリーンショットは次のとおりです。

ここに画像の説明を入力してください。

ベストアンサー1

おすすめ記事