Problema
Tenho uma instalação do Windows 11 (Build 27754, do canal Canary ) que foi instalada junto com uma instalação do Fedora 41 KDE Spin (atualizada do F40, que foi instalado como tal).
Recentemente, a instalação do F41 se tornou impossível de inicializar (porque --offline
dnf update
não foi aplicada corretamente, systemd-journald
impossibilitando a invocação fora do kernel de recuperação).
Para remediar isso:
Escrevi
Fedora-KDE-Live-x86_64-41-1.4.iso
(defedoraproject.org/spins/kde/download
) para um dispositivo de armazenamento SANDISK USB-A (presumivelmente USB2.0), viaFedoraMediaWriter-win64-5.1.3.exe
.Substituí a instalação do F41 por outra instalação do Fedora 41 KDE Spin.
Todo o gerenciamento de disco no Anaconda era totalmente automático. Eu apenas selecionei o dispositivo de armazenamento e escolhi "Gostaria de disponibilizar espaço adicional" e escolhi "Excluir tudo" (partições) quando solicitado.
Como este meu relatório afirma, o processo de instalação do F41 KDE Spin (de alguma forma) removeu a entrada EFI do Windows Boot Loader da minha interface gráfica UEFI e da nova instalação do GRUB2.
Solução Solicitada
Este é o ponto crucial desta questão - quero recriar a entrada do bootloader da minha instalação do Windows 11. No mínimo, quero que ela apareça dentro da GUI UEFI da minha placa-mãe ASRock X670E Taichi . Idealmente, quero que ela também apareça dentro da TUI GRUB2 do meu novo F41 .
Causa Hipótese
Presumo que a última opção acima referenciada no Anaconda (a GUI do instalador) remove as informações de inicialização para todos os sistemas operacionais instalados? Concluí isso porque, a partir de pesquisas (ainda não citadas), o consenso online é que as informações de inicialização para todos os sistemas operacionais devem residir exclusivamente em uma partição em um dispositivo de armazenamento.
Isso significa que, a menos que um dispositivo de armazenamento separado seja designado exclusivamente para .EFI
armazenamento de arquivos, todas as instalações subsequentes do sistema operacional (mesmo em dispositivos de armazenamento separados) adicionarão seus .EFI
arquivos à partição de inicialização do primeiro sistema operacional instalado.
Se minha compreensão estiver correta, então isso significa que eu deletei essa partição, e não deveria ter feito isso. Por favor, confirme isso.
Tentativas de remediação
os-prober
não detecta o carregador de inicialização do Windows.Estou cauteloso em aderir a
youtu.be/CZ17JrgFFhw
(eyoutu.be/LILSaEGzhOg
) porque eles não lidam com uma entrada EFI ausente - em vez disso, com uma malformada. Isso significa que a verificação de sanidade do primeiro (executandobcdedit
no início do processo de restauração) não é funcional para mim:O armazenamento de dados de configuração de inicialização não pôde ser aberto.
O sistema não conseguiu encontrar o arquivo especificado.Não tenho a mínima certeza de que isso
youtu.be/MIvuDTSGdbg
não seja um acaso.
Ambiente (Dispositivos de Armazenamento)
Hardware
Vale ressaltar que ambos os dispositivos de armazenamento são SSDs conectados via NVMe:
Nome M.2 Origem Adicionar link A95 Verdadeiro Amazon.co.UK
Samsung SSD 980 Pro Verdadeiro Amazon.co.UK
INTELIGENTE
Todos os dispositivos de armazenamento na minha configuração de hardware, incluindo os mencionados acima, têm registros SMART perfeitos, de acordo com as interfaces gráficas de usuário (GUIs) que usei para verificá-los (KDE
partitionmanager
, por exemplo):smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.11.10-300.fc41.x86_64] (local build) Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Number: Samsung SSD 980 PRO 250GB Serial Number: S5GZNF0R106204B Firmware Version: 2B2QGXA7 PCI Vendor/Subsystem ID: 0x144d IEEE OUI Identifier: 0x002538 Total NVM Capacity: 250,059,350,016 [250 GB] Unallocated NVM Capacity: 0 Controller ID: 6 NVMe Version: 1.3 Number of Namespaces: 1 Namespace 1 Size/Capacity: 250,059,350,016 [250 GB] Namespace 1 Utilization: 141,146,243,072 [141 GB] Namespace 1 Formatted LBA Size: 512 Namespace 1 IEEE EUI-64: 002538 b111b054a0 Local Time is: Sun Dec 1 19:56:30 2024 GMT Firmware Updates (0x16): 3 Slots, no Reset required Optional Admin Commands (0x0017): Security Format Frmw_DL Self_Test Optional NVM Commands (0x0057): Comp Wr_Unc DS_Mngmt Sav/Sel_Feat Timestmp Log Page Attributes (0x0f): S/H_per_NS Cmd_Eff_Lg Ext_Get_Lg Telmtry_Lg Maximum Data Transfer Size: 128 Pages Warning Comp. Temp. Threshold: 82 Celsius Critical Comp. Temp. Threshold: 85 Celsius Supported Power States St Op Max Active Idle RL RT WL WT Ent_Lat Ex_Lat 0 + 8.49W - - 0 0 0 0 0 0 1 + 4.48W - - 1 1 1 1 0 200 2 + 3.18W - - 2 2 2 2 0 1000 3 - 0.0400W - - 3 3 3 3 2000 1200 4 - 0.0050W - - 4 4 4 4 500 9500 Supported LBA Sizes (NSID 0x1) Id Fmt Data Metadt Rel_Perf 0 + 512 0 0 === START OF SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED SMART/Health Information (NVMe Log 0x02) Critical Warning: 0x00 Temperature: 44 Celsius Available Spare: 100% Available Spare Threshold: 10% Percentage Used: 10% Data Units Read: 29,241,658 [14.9 TB] Data Units Written: 85,878,151 [43.9 TB] Host Read Commands: 267,134,839 Host Write Commands: 1,101,319,506 Controller Busy Time: 5,926 Power Cycles: 1,304 Power On Hours: 1,206 Unsafe Shutdowns: 197 Media and Data Integrity Errors: 0 Error Information Log Entries: 0 Warning Comp. Temperature Time: 0 Critical Comp. Temperature Time: 0 Temperature Sensor 1: 44 Celsius Temperature Sensor 2: 47 Celsius Error Information (NVMe Log 0x01, 16 of 64 entries) No Errors Logged Read Self-test Log failed: Invalid Field in Command (0x002)
Se você não acredita nisso, por favor me forneça comandos para invocar e verificar.
Programas
tree
de/boot/efi/EFI/
/boot/efi/EFI/ ├── BOOT │ ├── BOOTIA32.EFI │ ├── BOOTX64.EFI │ ├── fbia32.efi │ └── fbx64.efi └── fedora ├── BOOTIA32.CSV ├── BOOTX64.CSV ├── gcdia32.efi ├── gcdx64.efi ├── grub.cfg ├── grubia32.efi ├── grubx64.efi ├── mmia32.efi ├── mmx64.efi ├── shim.efi ├── shimia32.efi └── shimx64.efi 3 directories, 16 files
lsblk
CLI#!/usr/bin/env -S bash sudo lsblk -o NAME,KNAME,MAJ:MIN,FSTYPE,MOUNTPOINT,LABEL,UUID,RO,RM,MODEL,SIZE,STATE,OWNER,GROUP,MODE,ALIGNMENT,MIN-IO,OPT-IO,PHY-SEC,LOG-SEC,ROTA,SCHED,RQ-SIZE,TYPE,DISC-ALN,DISC-GRAN,DISC-MAX,DISC-ZERO
Converti meticulosamente a saída para uma tabela Markdown:
NAME | KNAME | MAJ:MIN | FSTYPE | MOUNTPOINT | LABEL | UUID | RO | RM | MODEL | SIZE | STATE | OWNER | GROUP | MODE | ALIGNMENT | MIN-IO | OPT-IO | PHY-SEC | LOG-SEC | ROTA | SCHED | RQ-SIZE | TYPE | DISC-ALN | DISC-GRAN | DISC-MAX | DISC-ZERO ------------|-----------|---------|--------|------------|---------|--------------------------------------|----|----|-------------------------------------|--------|---------|-------|-------|------------|-----------|--------|--------|---------|---------|-------|-------|---------|------|----------|-----------|----------|---------- sda | sda | 8:0 | | | | | 0 | 1 | Flash Disk | 14.5G | running | root | disk | brw-rw---- | 0 | 512 | 0 | 512 | 512 | 1 | bfq | 2 | disk | 0 | 512B | 0B | 0 └─sda1 | sda1 | 8:1 | vfat | | ESD-USB | C4E0-38AE | 0 | 1 | | 14.5G | | root | disk | brw-rw---- | 0 | 512 | 0 | 512 | 512 | 1 | bfq | 2 | part | 0 | 512B | 0B | 0 sdb | sdb | 8:16 | | | | | 0 | 1 | MassStorageClass | 0B | running | root | disk | brw-rw---- | 0 | 512 | 0 | 512 | 512 | 0 | bfq | 2 | disk | 0 | 512B | 0B | 0 sdc | sdc | 8:32 | | | | | 0 | 1 | MassStorageClass | 0B | running | root | disk | brw-rw---- | 0 | 512 | 0 | 512 | 512 | 0 | bfq | 2 | disk | 0 | 512B | 0B | 0 zram0 | zram0 | 252:0 | | [SWAP] | | | 0 | 0 | | 8G | | root | disk | brw-rw---- | 0 | 4096 | 4096 | 4096 | 4096 | 0 | | | disk | 0 | 4K | 2T | 0 nvme0n1 | nvme0n1 | 259:0 | | | | | 0 | 0 | addlink M.2 PCIE G4x4 NVMe | 1.8T | live | root | disk | brw-rw---- | 0 | 512 | 0 | 512 | 512 | 0 | none | 1023 | disk | 0 | 512B | 2T | 0 ├─nvme0n1p1 | nvme0n1p1 | 259:2 | vfat | /boot/efi | | 8C16-B16E | 0 | 0 | | 600M | | root | disk | brw-rw---- | 0 | 512 | 0 | 512 | 512 | 0 | none | 1023 | part | 0 | 512B | 2T | 0 ├─nvme0n1p2 | nvme0n1p2 | 259:3 | ext4 | /boot | | 84cfd3a5-f2a3-4a30-80e9-75885f086a17 | 0 | 0 | | 1G | | root | disk | brw-rw---- | 0 | 512 | 0 | 512 | 512 | 0 | none | 1023 | part | 0 | 512B | 2T | 0 └─nvme0n1p3 | nvme0n1p3 | 259:4 | btrfs | /home | fedora | e8f3f913-c9b3-4d02-9343-0b91e71950e0 | 0 | 0 | | 1.8T | | root | disk | brw-rw---- | 0 | 512 | 0 | 512 | 512 | 0 | none | 1023 | part | 0 | 512B | 2T | 0 nvme1n1 | nvme1n1 | 259:1 | | | | | 0 | 0 | addlink M.2 PCIE G4x4 NVMe | 1.8T | live | root | disk | brw-rw---- | 0 | 512 | 0 | 512 | 512 | 0 | none | 1023 | disk | 0 | 512B | 2T | 0 └─nvme1n1p1 | nvme1n1p1 | 259:5 | btrfs | | s11vzd | a8dc8530-f314-407a-896c-861783f62ecf | 0 | 0 | | 1.8T | | root | disk | brw-rw---- | 0 | 512 | 0 | 512 | 512 | 0 | none | 1023 | part | 0 | 512B | 2T | 0 nvme3n1 | nvme3n1 | 259:6 | | | | | 0 | 0 | SK hynix PC401 HFS256GD9TNG-62A0A | 238.5G | live | root | disk | brw-rw---- | 0 | 512 | 0 | 512 | 512 | 0 | none | 511 | disk | 0 | 512B | 2T | 0 nvme2n1 | nvme2n1 | 259:7 | | | | | 0 | 0 | Samsung SSD 980 PRO 250GB | 232.9G | live | root | disk | brw-rw---- | 0 | 512 | 0 | 512 | 512 | 0 | none | 1023 | disk | 0 | 512B | 2T | 0 ├─nvme2n1p1 | nvme2n1p1 | 259:8 | btrfs | | s2ve9g | 17c0335b-73c9-45b1-aabe-f62a6e633d98 | 0 | 0 | | 16M | | root | disk | brw-rw---- | 0 | 512 | 0 | 512 | 512 | 0 | none | 1023 | part | 0 | 512B | 2T | 0 ├─nvme2n1p2 | nvme2n1p2 | 259:9 | ntfs | | | 182A50072A4FE07C | 0 | 0 | | 232.1G | | root | disk | brw-rw---- | 0 | 512 | 0 | 512 | 512 | 0 | none | 1023 | part | 0 | 512B | 2T | 0 └─nvme2n1p3 | nvme2n1p3 | 259:10 | ntfs | | | E8DA341BDA33E50A | 0 | 0 | | 830M | | root | disk | brw-rw---- | 0 | 512 | 0 | 512 | 512 | 0 | none | 1023 | part | 0 | 512B | 2T | 0
partitionmanager
GUI do KDECLIs do Windows
diskpart
(e )bcdedit
Dentro da
cmd.exe
interface gráfica incorporada da Ferramenta de Criação de Mídia, posso executardiskpart.exe
o , que fornece as informações mencionadas abaixo:Farei o OCR quando puder, mas já usei todos os meus créditos do ChatGPT.
A entrada de inicialização EFI em si contém muito pouca informação além do nome: apenas um GUID de partição (apontando para a "Partição do Sistema EFI") e um caminho de arquivo dentro dessa partição. Ela pode conter "argumentos extras" para o carregador, mas o Gerenciador de Inicialização do Windows inicia bem sem eles.
Então, se o arquivo ainda estiver presente – para Windows é o
\EFI\Microsoft\Boot\bootmgfw.efi
arquivo – então a entrada pode ser adicionada novamente usandoefibootmgr
o Linux. (Os caminhos de entrada de inicialização são relativos à raiz da partição, então isso seria/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
da perspectiva do Fedora.)A parte importante é que você provavelmente também excluiu os arquivos reais que estavam na partição de sistema EFI anterior. Para restaurá-los (e criar um novo
BCD
arquivo que continha a configuração real para o Windows Boot Manager), você precisará inicializar em qualquer DVD de instalação do Windows ou pendrive USB e usarbcdboot.exe
para reinstalar o boot manager.abra o Cmd;
encontre o volume que corresponde à sua partição de sistema EFI e atribua a ele uma letra de unidade temporária, caso não tenha uma (
S:
neste exemplo);encontre o volume que contém seu
\Windows
diretório;reinstale o Gerenciador de Inicialização do Windows usando:
Isso copiará os originais de \Windows\Boot, criará uma nova configuração e criará a entrada de inicialização EFI (por padrão, dando a ela prioridade mais alta que a entrada "Fedora GRUB").
Note que você pode ter uma partição de sistema EFI separada para cada unidade física – ela não está limitada a uma por sistema. Então pode fazer sentido criar uma ESP separada no disco que contém o Windows e instalar o Windows Boot Manager nela.
(Em casos raros, até mesmo vários ESPs por unidade podem ser usados; a especificação UEFI não proíbe isso completamente, já que as entradas de inicialização fazem referência a ele pelo GUID e não apenas pelo tipo, embora isso não seja muito útil.)
Enquanto isso, o menu GRUB2 não tem relação com o menu UEFI – adicionar entradas ao GRUB2 é uma questão completamente separada.
Geralmente, detectar o Windows é tarefa do os-prober durante o grub-mkconfig. Ele deve fazer isso automaticamente após o gerenciador de boot ser instalado via
bcdboot
.Apenas uma das minhas unidades parecia ter uma instalação do Windows quando eu executei (o pseudocódigo)
sel disk $number && list part
, então não precisei diferenciar as instalações do Windows. No entanto,diskpart
não estava exibindo ohidden
sinalizador no qual a maioria dos tutoriais parece confiar.Apesar disso, estimei que
detail part
(oudetail vol
) iria , então quando eu tinha verificado em qual disco minha instalação do Windows estava (no meu caso, disco 3), eu executei:sel disk 3
list part
Em cada partição, eu então executei
detail part
. E eis que minha estimativa estava correta, pois uma subsequentelist vol
incluiu as bandeiras.Isso foi útil, porque embora eu estivesse procurando anteriormente por uma partição FAT32 (ou volume), o
hidden
sinalizador foi aplicado somente ao volume FAT32 do Fedorahidden
. Para Windows, o volume era NTFS.Consequentemente, atribuí uma carta com:
sel vol 2
assign letter="S"
Então, invocando o comando fornecido pela resposta anterior —
bcdboot C:\Windows /s S: /f UEFI
— funcionou:Uma simples reinicialização foi suficiente para que o Gerenciador de Inicialização do Windows aparecesse na interface gráfica do firmware da minha placa-mãe.