最近Lenovo Miix-700のBIOSをアップデートしましたが、すぐに後悔しました。 Windowsのアップデート後にWebカメラの問題が解決されることを望んでいましたが、予想どおりBIOSアップデートがEFIパーティションを上書きし、Webカメラが変更されていませんでした。ルートを変更して再インストールできるように、新しいArchブータブルUSBを作成しましたが、アップデートにより単一のUSBポートも破損しました(ハブエラー?)。今、私のデジタルライフ全体は私がアクセスできないパーティションにあります*。 Archフォーラムに質問したかったのですが、登録質問ではArchで1行のコードを実行できる必要があるのでここまでです。どんな提案がありますか?
*技術的には、Windowsのプログラムを使用してこれらのファイルにアクセスできますが、これらのファイルを使用するために必要なさまざまなプログラムにはアクセスできません。
編集:TelcoMが提案したとおりです。アーチに関連するものはありません。
C:\WINDOWS\system32>bcdedit /enum firmware
Firmware Boot Manager
---------------------
identifier {fwbootmgr}
displayorder {bootmgr}
{d7ec5199-eb30-11e9-bd4c-806e6f6e6963}
{d7ec519a-eb30-11e9-bd4c-806e6f6e6963}
{d7ec519b-eb30-11e9-bd4c-806e6f6e6963}
{d7ec519c-eb30-11e9-bd4c-806e6f6e6963}
{d7ec519d-eb30-11e9-bd4c-806e6f6e6963}
timeout 0
Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume1
path \EFI\Microsoft\Boot\bootmgfw.efi
description Windows Boot Manager
locale en-US
inherit {globalsettings}
default {current}
resumeobject {86dba24d-a094-11e9-9adb-bd1dd03f5338}
displayorder {current}
toolsdisplayorder {memdiag}
timeout 30
Firmware Application (101fffff)
-------------------------------
identifier {d7ec5196-eb30-11e9-bd4c-806e6f6e6963}
description Setup
Firmware Application (101fffff)
-------------------------------
identifier {d7ec5197-eb30-11e9-bd4c-806e6f6e6963}
description Boot Menu
Firmware Application (101fffff)
-------------------------------
identifier {d7ec5198-eb30-11e9-bd4c-806e6f6e6963}
description Diagnostic Splash
Firmware Application (101fffff)
-------------------------------
identifier {d7ec5199-eb30-11e9-bd4c-806e6f6e6963}
description ATA HDD: RTHMB128VBM4EWDL
Firmware Application (101fffff)
-------------------------------
identifier {d7ec519a-eb30-11e9-bd4c-806e6f6e6963}
description USB FDD:
Firmware Application (101fffff)
-------------------------------
identifier {d7ec519b-eb30-11e9-bd4c-806e6f6e6963}
description USB CD:
Firmware Application (101fffff)
-------------------------------
identifier {d7ec519c-eb30-11e9-bd4c-806e6f6e6963}
description USB HDD:
Firmware Application (101fffff)
-------------------------------
identifier {d7ec519d-eb30-11e9-bd4c-806e6f6e6963}
description PCI LAN:
答え1
BIOSのアップデートにより、既存のEFI NVRAMブート変数が消去されたようです。 Windowsは、内蔵ファームウェアサポートまたは「自己修復」を介して回復しました。 Windowsはまた、UEFIブートローダを\EFI\BOOT\BOOTx64.efi
ESPパーティションに配置します。これは、ブートローディングプログラム用のディスクを明確に識別するNVRAMブート変数がない場合の代替UEFIブートローダです。 。これにより、WindowsはNVRAMブート変数が欠落していると検出された場合にロードして自動的に回復できます。
元のUEFI NVRAMコンテンツはBIOSアップデートで失われたため、システムのセキュアブートキーをカスタマイズした場合、これらの設定も工場出荷時のデフォルトに復元された可能性があります。 Archに再度アクセスし、元のSecure Bootキーのカスタマイズプロセスを再度実行してこれらのカスタマイズを復元できるようになるまで、セキュアブートを一時的に無効にする必要があります。
Arch では、Arch UEFI ブートを複数の方法で設定できるため、NVRAM ブート変数のリカバリが複雑になります。 EFISTUB、GRUB、またはrEFIndを使用できます。したがって、最初のステップはEFIシステムパーティションにアクセスし、実際にその中に何があるのかを調べることです。
Windowsでは、コマンドプロンプトを実行してEFIシステムパーティションにアクセスできます。管理者としてをクリックし、次のコマンドを実行します。
mountvol X: /S
X:
dir
これで、EFIシステムパーティションのルートディレクトリのリストが表示されます。 GUIにアクセスしたい場合は、start explorer
標準のファイルエクスプローラウィンドウを管理者として実行できます。この特定のウィンドウを使用すると標準のUACプロンプトで保護されないため、このウィンドウを使用するときは非常に注意してください。
EFISTUBを使用してArchを起動する場合は、EFIシステムパーティションのルートディレクトリにvmlinuz.efi
またはinitramfsファイルがある可能性があります。正しいパス名をメモしてください。元々従ったインストール手順のバージョンによっては、サブディレクトリにある可能性があります。vmlinuz-linuz
initramfs-linux.img
\EFI\Arch
GRUBやrEFIndなどのブートローダを使用している場合は、このディレクトリのサブディレクトリにあります\EFI
。そこに行き、ディレクトリのリストを見てください(ファイルエクスプローラウィンドウを使用または再利用cd EFI
)dir
。Microsoft
という名前のディレクトリを少なくとも2つ表示する必要がありますboot
。このMicrosoft
ディレクトリにはWindows UEFIブートローダが含まれており、boot
NVRAMブート変数が失われた場合にブートに必要な部分のみが含まれています。
\EFI\Arch
Archのインストール(GRUBを使用している場合)または(rEFIndを使用している場合)サブディレクトリがある場合があります\EFI\refind
。そのディレクトリに移動して、実際のブートローダファイルの名前を確認してください。\EFI\Arch\grubx64.efi
または\EFI\refind\refind_x64.efi
。
ESPでArchブートローダのパス名がわかったら、それにNVRAMブート変数を作成できます。 Windowsでは、次のコマンドを使用してこれを実行できますbcdedit
。
bcdedit /create /d "Arch Linux" {fwbootmgr}
このコマンドは、後続のコマンドに必要なGUID文字列を出力しますbcdedit
。{GUID}
簡単に説明します。
bcdedit /set {GUID} device partition=X:
bcdedit /set {GUID} path <your bootloader pathname here>
bcdedit /set {fwbootmgr} default {GUID}
Windowsのバージョンによっては、この最後のコマンドはエラーを返すことがあります。この場合は、代替形式を使用してください。
bcdedit /set {fwbootmgr} displayorder {GUID} /addfirst
最後に、ESPへのアクセスを切断します。管理者として実行されているファイルエクスプローラウィンドウを起動した場合は、ウィンドウを閉じてコマンドプロンプトで次のコマンドを実行します。
c:
mountvol X: /D
システムをある種のLinux(カーネルがUEFIランタイムサービスを使用できるようにデフォルトのUEFIバージョン)から起動できる場合は、このefibootmgr
コマンドを使用して非常に簡単なコマンドでNVRAM変数を再作成できます。
efibootmgr --create --disk /dev/sda --loader <your bootloader pathname here> --label "Arch Linux Bootloader" --verbose
--disk
必要に応じて、ESPパーティションを含む物理ディスクと一致するようにこのオプションの値を調整します。
メモ:Linuxシェルはバックスラッシュを特殊なエスケープ文字として使用するため、ブートローダパス名のWindowsスタイルバックスラッシュをLinuxスタイルスラッシュに変換するか、ブートローダパス名を入力するときにバックスラッシュを変更してブートローダパス名をefibootmgr
表示する必要があります。efibootmgr
コマンドラインで次のようにします。
efibootmgr [...] --loader \\EFI\\Arch\\grubx64.efi [...]
EFISTUBを使用している場合efibootmgr
、コマンドにはinitramfsファイル名を含むLinuxカーネルブートパラメーターを指定するための追加パラメーターが必要です。
efibootmgr --disk /dev/sdX --part Y --create --label "Arch Linux" --loader /vmlinuz-linux --unicode 'root=PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw initrd=\initramfs-linux.img' --verbose
Windowsbcdedit
コマンドを使用してこれらの追加パラメータを指定することも可能でも不可能でもかまいません。残念ながら、今はこれのWindows構文を見つけることができません。