最近、Lenovo Miix-700のBIOSを更新しましたが、すぐに後悔しました。 Windowsのアップデート後にウェブカメラの問題を修正したいと思っていましたが、当然のことながら、BIOSアップデートによりEFIパーティションが上書きされ、ウェブカメラは修正されませんでした。新しいArchブート可能USBを作成して、chrootして再インストールできるようにしようとしましたが、アップデートによって単一のUSBポートもノックアウトされました(ハブの誤動作?)。現在、私のデジタルライフ全体は、私がアクセスできないパーティションにあります*。 Archフォーラムで質問したかったのですが、登録の質問では、Archの下でコード行を実行できる必要があるため、ここにいます。助言がありますか?
* Windowsのプログラムを使用してファイルに技術的にアクセスできますが、それらのファイルを使用するために必要なさまざまなプログラムにアクセスできません。
編集:telcoMによって提案されたとおり。 Arch関連のものとして飛び出すものはありません。
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:
BIOSアップデートが実際に既存のEFI NVRAMブート変数を一掃したようです。 Windowsは、組み込みのファームウェアサポートまたは「自己修復」によって回復しました。Windowsは、UEFIブートローダーをESPパーティションの\EFI\BOOT\BOOTx64.efi
にも配置します。これは、ディスクのブートローダーを明示的に識別するNVRAMブート変数がない場合のフォールバックUEFIブートローダー。これにより、Windowsがロードされ、見つからない場合は自動的にNVRAMブート変数が復元されます。
BIOSアップデートで元のUEFI NVRAMの内容が失われたため、システムのセキュアブートキーをカスタマイズした場合、それらの設定も工場出荷時のデフォルトに戻っている可能性があります。 Archへのアクセスを回復し、元のセキュアブートキーのカスタマイズ手順を再度実行してそれらのカスタマイズを復元できるようになるまで、今のところセキュアブートを無効にする必要がある場合があります。
Archの場合、NVRAMブート変数の復元は、Arch UEFIブートを設定できるさまざまな方法があるために複雑です。 EFISTUB、GRUB、またはrEFIndを使用する場合があります。したがって、最初のステップは、EFIシステムパーティションにアクセスし、そこに実際にあるものを見つけることです。
Windowsでは、コマンドプロンプトを管理者として起動し、次のコマンドを実行することで、EFIシステムパーティションにアクセスできます。
mountvol X: /S
X:
dir
EFIシステムパーティションのルートディレクトリのリストが表示されます。 GUIアクセスが必要な場合は、start Explorer
を実行して、標準のファイルエクスプローラーウィンドウを管理者として実行できます。そのウィンドウを使用する場合、標準のUACプロンプトで保護されないため、そのウィンドウには十分注意してください。
ArchのブートにEFISTUBを使用している場合、EFIシステムパーティションのルートディレクトリにvmlinuz.efi
またはvmlinuz-linuz
とinitramfsファイルinitramfs-linux.img
が存在する可能性があります。それらの正確なパス名を書き留めます。最初に使用したインストール手順のバージョンによっては、\EFI\Arch
サブディレクトリにある場合もあります。
GRUBまたはrEFIndのようなブートローダーを使用している場合、それらは\EFI
ディレクトリのサブディレクトリにあります。そこに移動し、ディレクトリリストを確認します(ファイルエクスプローラーウィンドウ、またはcd EFI
、次にdir
の順にクリックします。Microsoft
およびboot
という名前の少なくとも2つのディレクトリが表示されます。Microsoft
ディレクトリにはWindows UEFIブートローダーが含まれ、boot
ディレクトリには開始に必要な部分のみが含まれていますNVRAMブート変数が失われた場合に備えて。
Archのインストールでは、サブディレクトリ\EFI\Arch
(GRUBを使用する場合)、または\EFI\refind
(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
のブートローダーパス名を入力するときにバックスラッシュを2倍にする必要があります、つまり、efibootmgr
コマンドラインでブートローダーのパス名が次のようになるようにします。
efibootmgr [...] --loader \\EFI\\Arch\\grubx64.efi [...]
EFISTUBを使用している場合は、efibootmgr
コマンドでLinuxカーネルブートパラメーターを指定するための追加パラメーター(initramfsファイルの名前を含む)が必要になります。
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
Windowsのbcdedit
コマンドでこれらの追加のパラメーターを指定することは可能かもしれませんし、可能でないかもしれません-残念ながら、現時点ではそのためのWindows構文を見つけることができません。