グラップメニューが表示されない

グラップメニューが表示されない

Lenovo z570にWindows 8.1がインストールされています。以下を使用して作成したUSBからLinux Mint 17をインストールしました。ゆみソフトウェア。インストール後、grubメニューは表示されず、Windowsが自動的に起動します。 Windowsでもクイックスタートをオフにしました。セキュアブートもオフにする必要があるという記事を読みました。ただし、msinfo32にはセキュアブート:サポートされていないと表示されます。私もライブCDでgrub-repairを試しました。まだgrubブートメニューを取得できません。どのような問題が発生する可能性がありますか?

ベストアンサー1

この質問に対する答えはさまざまです。

UEFI !=BIOS

最初にすべきことは、BIOS関連のブート知識を忘れることです。ここでは、その知識は適用されません。 MBRなし、なし第二段階ブートローダ、いいえ始める分割。幸いなことに、これらはすぐに25年前の16ビットBIOSほど役に立たないでしょう。INT-13Hリアルモードディスクインターフェイスをサポートするように設計されています。

起動プロセス

次に、実行の開始を検討する必要があります。コンピュータが起動すると、ファームウェアは、EFI実行可能ファイルを呼び出す前に、オペレーティングシステムカーネルまたはオペレーティングシステムカーネルを呼び出すように指示する冗長チェーンローダなどのタスクを実行します。

クイックスタート

まず、電源と中断を確認してからビデオを確認してください。古いリアルモードビデオBIOS opromを呼び出し、完了するまで待つか、保護モードGOPビデオROMを検出してスイッチをオンにして続行します。これは大きくクイックスタートほとんどのインターフェイスで。ファームウェアは、以下を処理するリアルモードビットを使用する必要があります。CSM (互換性サポートモジュール)あるいは、一部のGOP標準を自動的に実装し、残りのビデオ初期化操作はすぐに呼び出されるオペレーティングシステムに任せることができます。明らかにGOP対応のビデオカードがあります。この機能を利用することは、Windows固有のオプションではありません。

それでもBIOSではありません。

さらに、OEMはマザーボードのフラッシュメモリに保存したすべてのUEFIドライバをロードしますが、ほとんどの場合これを無視することができます。主な例外はFATファイルシステムドライバです。前述のように、MBRがない、または始めるパーティションがありますが、EFIシステム分割。 2つの間には根本的な違いがあります。前者は、BIOSファームウェアがネイティブディスクの最初のセクタを読み取り、そこで見つかったすべてのコードを実行するパーティションですが、後者はUEFIによってパーティションにマウントされているパーティションです。ファームウェア。ファイルシステムでファイルを実行します。

ESP

最大1つあります。特に各 GPT フォーマットディスクに対してラベルが付けられたパーティション。すでにGPTでフォーマットされているドライブがあるか、今後もないでしょう。クイックスタートまず窓です。現在、あなたのUSBディスクのフォーマットの種類がわかりません。一部のUEFIファームウェアでは、リムーバブルディスクはラベルを付ける必要がないため、特別なケースです。特にパーティションテーブルがまったくない場合、つまり通常はFATファイルシステムでパーティションを完全に分割したりフォーマットしたことのないUSBディスクから起動できます。これは必ずしも信頼できる機能ではありませんが、一般的です。

0000開始

ファームウェアがマウントされると特にパーティションを分割すると、すでにメモリに保存されているパスがロードされます。メモリモジュールは、ファームウェアがブート間に必要な情報を格納するオンボードNVRAMチップです。Boot0000-{GUID}変えるあなたの場合、この変数の内容は次のとおりです。${ESP-GUID}\EFI\BOOT\BOOTx64.efiほぼ常にマイクロソフトの独自のブートマネージャを指します。(これはいいえ BOOTMGR.efi、ところで - MSの起動プロセス中に表示されます)

x64.efiブート

通常、次のことができます。

mv ${ESP}/EFI/BOOT/BOOTx64.efi ${ESP}/EFI/BOOT/BOOTx64.efi.bak
mv ./${mybootmgr}.efi ${ESP}/EFI/BOOT/BOOTx64.efi

... NVRAM変数をまったく編集する必要はありません。

NVRAM

EFIモードで起動すると、Linuxカーネルは自動的にefivarfsカーネルモジュールをロードし、NVRAMの内容をマウントする必要があります/sys/firmware/efi/efivarslsこのディレクトリでは、すべてのefi変数の名前を表示できます。これは私の変数の内容ですBoot0002-{GUID}

 printf %b $(
     od -An -t o1 -w1 -v \
         /sys/firmware/efi/efivars/Boot0002-* | 
     sed 's/ */\\0/'
 )
 #OUTPUT �^��~�J�3K��8���0\EFI\BOOT\BOOTX64.EF�AMBO

気にしない文字は、私のLinuxシステムのUTF-8エンコーディングではなく、UEFI UTF-16エンコーディングの結果です。とにかく、そのごみが私のものだと想像してください。ユースプのGUID。私の考えにはもうないと思います。Boot0000-{GUID}変数 - ある瞬間削除したようです。

efibootmgr

もしそうなら、おそらくこのプログラムを使ってしたでしょうefibootmgr。引数なしで呼び出すと、開始順序が印刷されます。

efibootmgr
#OUTPUT
BootCurrent: 0002
Timeout: 3 seconds
BootOrder: 0002,000F,000D
Boot0002* UEFI: KINGSTON SV300S37A120G
Boot000D* Hard Drive 
Boot000F* CD/DVD Drive 

以下はそのページの一部ですman

man efibootmgr 2>/dev/null | 
sed '/^ *DESCRIPTION/,/^ *OPTIONS/!d;//c\\'
#OUTPUT
   efibootmgr is a userspace application used to  mod‐
   ify  the  Intel Extensible Firmware Interface (EFI)
   Boot Manager.   This  application  can  create  and
   destroy boot entries, change the boot order, change
   the next running boot option, and more.
   Details on the EFI Boot Manager are available  from
   the  EFI  Specification,  v1.02 or later, available
   from:
    <URL:http://developer.intel.com>
          Note: efibootmgr requires  that  the  kernel
          support access to EFI non-volatile variables
          through      /sys/firmware/efi/vars       or
          /sys/firmware/efi/efivars/.

UEFI:学ぶ

私の個人的なアドバイスはこれからフォローすることです私の他の答えそこからRodsbooks.comそこにリンクされているように、あなたgrubは完全にあきらめます。これはあなたがすぐに知りたいと思うようにあなたの状況を不必要に複雑にすることです。ただし、起動時にファームウェアが呼び出すEFI実行可能ファイルを選択するかどうかにかかわらず、次の内容をgrub読む必要があります。 Rodsbooks.com

UEFIブータブルUSBの作成

次のシェルセクション(Mintのインストール中にデフォルトの選択を提供)は、MBRフラッシュドライブを独自のEFIシステムパーティションとブートマネージャを持つUEFIブータブルGPTフォーマットドライブに変換できる必要があります。少し注意を払うと、同じスティックに別のインストールを簡単に追加でき、Windowsのインストールも可能で、長期的にメンテナンスがはるかに簡単です。tarファイルシステムの権限を維持するためにいくつかのコマンドラインオプションを指定する必要があると感じているため、これについては少し懐疑的であることを認めています。(誰かがもっと知りたいですか?)。それでも私にとってはうまくいくようですqemu。起動可能なUSB Mint Liveディスクから起動可能なUSB Mint Liveディスクに切り替えました。

ただし、十分なブートマネージャ(rEFIndなど)を使用してデフォルトのブータブルパーティションを設定したい場合は、次のことができます。できる現在持っているのと同じレガシー形式のブートディスクからブートします。

次のコマンドを実行する場合は、次のパスを入力する必要がありますBIG_LONG_TAR_BACKUP_LOCATION_VAR_PATHいいえディレクトリパスに/tmp/usbwdそのまま作成されました。また削除このディレクトリを通過するとき。必要です。少なくともunziptar、、、、gdiskおよびwgetパッケージが機能するようにインストールされましたcoreutils。すべて試したいLinux Liveブータブルディスクにすでにインストールされている可能性がありますが、私が考えることができるすべてのパッケージマネージャを介して使用することもできます。

mkdir -p /tmp/usbwd/mintmnt; cd /tmp/usbwd; mkdir esp
wget -qO ./refind.zip \
    'http://sourceforge.net/projects/refind/files/0.8.3/refind-bin-0.8.3.zip/download'
unzip -qq ./refind.zip
sudo sh -se -- "/dev/${USBDISK}" \
    "${PATH_TO_A_DIR_WHERE_YOU_CAN_SAVE_A_BACKUP_OF_MINT_INSTALL}" \
<<\SUDO
    mount "${1}1" ./mintmnt
    tar -C ./mintmnt -czf "$2" ./; umount ./mintmnt
    printf %s\\n o y n '' '' \+750M ef00 n 2 '' '' '' w y |
        gdisk "${1}" || :
    mkfs.vfat -n USBESP "${1}1"
    ./refind*/install.sh --usedefault "${1}1"
    mkfs.${YOUR_FS_OF_CHOICE=ext4} -L MINTROOT "${1}2"
    mount "${1}1" ./esp; mount "${1}2" ./mintmnt
    mkdir ./esp/EFI/mintboot
    >./esp/EFI/mintboot/refind_linux.conf \
        printf %s\  \
            '"Linux Mint"' \
            '"root=/dev/disk/by-label/MINTROOT quiet splash"'
    cd ./mintmnt && tar -xzf "$2"
    >>./etc/fstab \
        printf %s\\n \
            '/dev/disk/by-label/USBESP /esp vfat defaults 0 1' \
            '/esp/EFI/mintboot /boot none bind,defaults 0 0'
    cp -T ../esp/EFI/mintboot ./boot/vmlinuz* ./boot/init*
    cd ..; umount ./mintmnt; umount ./esp
SUDO
    cd ~; rm -rf /tmp/usbwd

おすすめ記事