AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 680657
Accepted
Lexx Luxx
Lexx Luxx
Asked: 2021-12-09 05:33:30 +0800 CST2021-12-09 05:33:30 +0800 CST 2021-12-09 05:33:30 +0800 CST

como corrigir (ou reinstalar) o patition de inicialização UEFI no disco GPT?

  • 772

Debian 11 nova instalação no novo disco rígido, modo UEFI e disco particionado GPT. O problema é que, ao inicializar o sistema, o erro é mostrado:

"Unidade de disco rígido interna não encontrada. Para resolver esse problema, tente redefinir a unidade. Nenhum dispositivo inicializável - pressione F1 para tentar novamente, F2 para entrar no menu de configuração, F5 para entrar no PSA."

A instalação foi do Live USB, antes disso, criei partições usando o GParted Live. Acho que possivelmente o problema foi quando criei a primeira partição (inicialização), primeiro defini o nome do rótulo 'efi' e tentei renomeá-lo para '/boot/efi': e o GParted imediatamente desligou e parou de responder, então eu tinha manualmente power-Off para forçar o desligamento do PC. Possivelmente, duas barras '/' no nome do rótulo podem causar um problema, mas não tenho certeza.

$ efibootmgr -v
BootCurrent: 000C
Timeout: 1 seconds
BootOrder: 0000,0004,0003,0009,000A,000C
Boot0000* Debian    HD(1,GPT,c906677e-c2c2-42b5-b818-f0b19c046e95,0x800,0xfa000)/File(\EFI\Debian\shimx64.efi)
Boot0003* UEFI OS   HD(2,MBR,0xfcba9dae,0x14000,0x1388000)/File(\EFI\BOOT\BOOTX64.EFI)
Boot0004* UEFI OS   HD(2,MBR,0xb45e11b8,0xaf800,0x600000)/File(\EFI\BOOT\BOOTX64.EFI)
Boot0009* Onboard NIC(IPV4) PciRoot(0x0)/Pci(0x1c,0x3)/Pci(0x0,0x0)/MAC(20474749bc75,0)/IPv4(0.0.0.00.0.0.0,0,0)..BO
Boot000A* Onboard NIC(IPV6) PciRoot(0x0)/Pci(0x1c,0x3)/Pci(0x0,0x0)/MAC(20474749bc75,0)/IPv6([::]:<->[::]:,0,0)..BO
Boot000C* UEFI:  USB DISK 2.0 PMAP  PciRoot(0x0)/Pci(0x1d,0x0)/USB(1,0)/USB(3,0)/HD(1,MBR,0xcd9a6b9,0x5d4,0x146a)..BO

EDIT: saída blkid e fdisk

$ sudo blkid
/dev/sdb1: BLOCK_SIZE="2048" UUID="2021-10-09-12-36-57-00" LABEL="d-live nf 11.1.0 xf amd64" TYPE="iso9660" PTUUID="0cd9a6b9" PTTYPE="dos" PARTUUID="0cd9a6b9-01"
/dev/loop0: TYPE="squashfs"
/dev/sda1: LABEL="BOOT" UUID="2F1D-01E6" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="c906677e-c2c2-42b5-b818-f0b19c046e95"
/dev/sda2: LABEL="swap" UUID="1274a782-676a-41b0-8509-92f73bd675c3" TYPE="swap" PARTUUID="4a555697-e713-400d-ae9e-613d028c7893"
/dev/sda3: LABEL="root" UUID="13503165-9c5f-498d-ab5f-0c13f11cbaa6" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="5484dedd-6adf-45af-b7b0-ba105d14528b"
/dev/sda4: LABEL="home" UUID="93c98828-5fb8-4c0e-b6bf-de8d13a9d22e" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="ae15bbdb-4e29-4dfa-aa99-b39e5377a098"
/dev/sdb2: SEC_TYPE="msdos" UUID="DEB0-0001" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="0cd9a6b9-02"

$ sudo fdisk -l
Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: TOSHIBA HDWK105 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 0C3CF112-75DD-4197-9A0C-7C92036731C6

Device        Start       End   Sectors   Size Type
/dev/sda1      2048   1026047   1024000   500M EFI System
/dev/sda2   1026048   9414655   8388608     4G Linux swap
/dev/sda3   9414656  61843455  52428800    25G Linux filesystem
/dev/sda4  61843456 976773119 914929664 436.3G Linux filesystem


Disk /dev/sdb: 7.22 GiB, 7747928064 bytes, 15132672 sectors
Disk model: USB DISK 2.0    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0cd9a6b9

Device     Boot Start     End Sectors  Size Id Type
/dev/sdb1  *        0 6240351 6240352    3G  0 Empty
/dev/sdb2        1492    6717    5226  2.6M ef EFI (FAT-12/16/32)


Disk /dev/loop0: 2.6 GiB, 2789027840 bytes, 5447320 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

No menu BIOS: [Debian (Drive not present)]

smartctlferramenta mostra que o disco está OK:

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

/etc/fstab conteúdo:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
#
# <file system>             <mount point>  <type>  <options>  <dump>  <pass>
UUID=2F1D-01E6                            /boot/efi      vfat    defaults,noatime 0 2
UUID=13503165-9c5f-498d-ab5f-0c13f11cbaa6 /              ext4    defaults,noatime 0 1
UUID=93c98828-5fb8-4c0e-b6bf-de8d13a9d22e /home          ext4    defaults,noatime 0 2

EDIT: erro parted

root@debian:/# parted /dev/sda1
GNU Parted 3.4
Using /dev/sda1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p                                                                
Model: Unknown (unknown)
Disk /dev/sda1: 524MB
Sector size (logical/physical): 512B/4096B
Partition Table: loop
Disk Flags: 

Number  Start  End    Size   File system  Flags
 1      0.00B  524MB  524MB  fat32

(parted) help toggle                                                      
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition
        NUMBER

    NUMBER is the partition number used by Linux.  On MS-DOS disk labels,
        the primary partitions number from 1 to 4, logical partitions from 5
        onwards.
        FLAG is one of: boot, root, swap, hidden, raid, lvm, lba, hp-service,
        palo, prep, msftres, bios_grub, atvrecv, diag, legacy_boot, msftdata,
        irst, esp, chromeos_kernel, bls_boot
(parted) toggle 1 esp                                                     
Error: No flags supported
(parted) toggle 1 bios_grub                                               
Error: No flags supported
(parted) quit
debian boot
  • 1 1 respostas
  • 1673 Views

1 respostas

  • Voted
  1. Best Answer
    telcoM
    2021-12-09T06:08:56+08:002021-12-09T06:08:56+08:00

    Como /dev/sda1parece ser uma partição de sistema EFI (ESP para abreviar), ela deve ter sido configurada para ser montada /boot/efipelo instalador do Debian. O rótulo não é realmente importante, pois o instalador normalmente configurará /etc/fstabpara montá-lo pelo UUID do sistema de arquivos de qualquer maneira.

    A /etc/fstablinha no seu caso seria:

    UUID="2F1D-01E6"    /boot/efi    vfat   umask=0077,tz=UTC,codepage=437,iocharset=iso8859-1 0 1
    

    Como o bootloader aparentemente foi registrado com sucesso na NVRAM do sistema (conforme indicado por efibootmgr -v), é possível que o disco esteja realmente bom, mas ao tentar inicializar o sistema, o firmware UEFI pode não dar ao disco tempo suficiente para girar antes tentando lê-lo, causando uma falsa condição de erro "disco não detectado".

    Se esse for o problema, verifique as configurações do BIOS em busca de qualquer opção que retarde o processo de inicialização em apenas alguns segundos. Alguns BIOS têm uma opção dedicada de "atraso de inicialização" apenas para essa finalidade. Se não houver atraso ajustável, talvez seja necessário tentar alternativas como desabilitar o Fast Boot, habilitar o suporte a USB legado, etc... qualquer coisa que possa dar ao disco alguns segundos extras para girar.

    Antes de converter para o modo legado, você pode tentar configurar o sistema para tentar inicializar a partir da rede antes da entrada de inicialização UEFI "Debian". Isso definitivamente deve levar tempo suficiente para permitir que o disco complete a rotação. Você pode conseguir isso com o efibootmgrcomando:

    efibootmgr --bootorder 0009,0000,0004,0003,000A,000C
    

    Esperar que a inicialização da rede falhe pode ser irritante no uso regular, mas se o disco funcionar com essa configuração, isso confirmaria que o problema é o disco de inicialização lenta.

    Você disse que o disco é novo, e nos comentários você mencionou que o sistema é um antigo laptop Dell. O disco é uma peça de reposição oficial da Dell? Se você acabou de comprar um HDD SATA de 2,5" genérico para ele, pode ter encontrado um requisito oculto que é atendido pelo disco de peças sobressalentes oficial da Dell, mas não necessariamente pelo disco de substituição escolhido: para funcionar com sucesso como um disco do sistema, o disco precisa estar pronto para receber comandos em alguns xxxmilissegundos após a inicialização, pois é quando o firmware do sistema verifica o disco.

    Se o TOSHIBA HDWK105disco que você escolheu for significativamente mais lento para inicializar do que o disco original, esse problema pode não ser solucionado alterando o método de inicialização ou qualquer outra configuração do BIOS disponível. Se o disco for do mesmo modelo do original, lembre-se de que um grande fornecedor como a Dell pode até obter discos com firmware personalizado, otimizado para um caso de uso específico.

    Se o laptop for do primeiro semestre de 2010, naquela época o UEFI era novo e fornecedores como a Dell ainda podem ter percebido o modo de inicialização legado como seu principal alvo e, como resultado, o modo de inicialização UEFI pode ter recebido menos testes. Naquela época, havia muitas implementações de UEFI com mais ou menos bugs. (O UEFI tornou-se popular em 2011, quando a Intel introduziu o chipset Sandy Bridge que foi projetado para ser usado com UEFI em vez de BIOS clássico.)

    Se você quiser tentar alterar o modo de inicialização de UEFI para legado, deverá inicializar a partir da mídia ao vivo e chroot na instalação baseada em HDD:

    mount /dev/sda3 /mnt
    mount -t proc none /mnt/proc
    mount -t sysfs none /mnt/sys
    mount -o rbind,rw /dev /mnt/dev
    chroot /mnt /bin/bash
    mount -a   # to mount the /home filesystem; not essential for this task
    

    Após o chrootcomando, sua sessão de linha de comando deve ser capaz de acessar a instalação baseada em HDD essencialmente como se o sistema fosse inicializado a partir do HDD. Portanto, você pode usar as ferramentas normais de gerenciamento de pacotes para remover os grub-efi-amd64*pacotes e instalar os grub-pc*pacotes em seu lugar:

    apt remove grub-efi-amd64 grub-efi-amd64-bin grub-efi-amd64-signed
    apt install grub-pc grub-pc-bin
    

    Você também pode querer remover os pacotes relacionados ao Secure Boot shim, pois é desnecessário no modo de inicialização herdado:

    apt remove shim-signed shim-unsigned shim-helpers-amd64-signed shim-signed-common
    

    Para fornecer um local para grub-pcincorporar sua imagem principal, você pode alternar o tipo de partição /dev/sda1para bios_grub. É um desperdício, pois grub-pcprecisa de apenas 1 MB para sua imagem principal, mas permitiria a conversão de volta ao modo UEFI no futuro, se necessário.

    parted /dev/sda1
    (parted) toggle 1 esp
    (parted) toggle 1 bios_grub
    (parted) quit
    

    Em seguida, comente a /boot/efilinha /etc/fstabe certifique /boot/efi-se de desmontar, pois o início desse sistema de arquivos será substituído pelo BIOS GRUB.

    Agora o disco está pronto para ter uma versão de inicialização do BIOS do GRUB instalada. Como o sistema pode ser inicializado no modo UEFI, você precisará especificar explicitamente a arquitetura de destino do GRUB; por padrão, grub-installpode tentar instalar um carregador de inicialização que corresponda ao estilo de inicialização atual do sistema.

    grub-install --target=i386-pc /dev/sda
    

    Depois disso, a conversão deve estar completa: é hora de desfazer o processo chroot:

    umount /home # (if you ran "mount -a" after chrooting)
    exit   # to pop out of the chrooted shell session
    umount /mnt/dev
    umount /mnt/sys
    umount /mnt/proc
    umount /mnt
    

    Em seguida, é hora de reiniciar o sistema, entrar no BIOS, definir o modo de inicialização como Legado e definir o disco rígido como destino de inicialização.

    Boa sorte! Trabalhar com laptops de marca que possuem configurações mínimas de BIOS pode ser irritante, e sistemas com implementações de UEFI de versão inicial com bugs / peculiares também podem ser uma dor de cabeça. Parece que você pode ter um sistema onde esses dois fatos se combinam.

    • 1

relate perguntas

  • Configuração do GRUB para reconhecer diferentes ambientes de desktop (instalações) da mesma distribuição Linux

  • astyle não altera a formatação do arquivo de origem

  • Recebendo e-mail em um novo Debian fresco

  • Debian Stretch: gnome-software segfault em libgs_plugin_systemd-updates.so

  • Como digitar ü no Pinyin IME?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve