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 / 780789
Accepted
8192K
8192K
Asked: 2024-07-25 23:55:03 +0800 CST2024-07-25 23:55:03 +0800 CST 2024-07-25 23:55:03 +0800 CST

O Debian no sistema quad boot só encontra o Windows 10 (que encontra o Win XP, que encontra o Win 98)

  • 772

Então, consegui fazer meu Intel Core2 Quad de 17 anos rodar com Windows 98, XP, 10 e Debian 12.

Primeiro instalei o Windows 98, depois o Windows XP. Isso levou a um menu de inicialização do XP que me ofereceu XP ou 98. Então instalei o Windows 10, que levou a um menu de inicialização que me ofereceu Windows 10 ou "outra versão do Windows". Se eu selecionar "outra versão", obtenho o carregador de inicialização do XP.

Então eu instalei o Debian na quarta e última partição primária (sem UEFI) que instalou o Grub2 e me oferece as entradas Debian e "Windows 10 (em /dev/sda1)". Selecionar "Windows 10" no Grub2 me dá o carregador de boot Win10 etc. sda1, no entanto, é Win98, então o Win10 deve ter se instalado lá. Mas onde o Grub2 se instalou, então?

O que eu realmente queria conseguir é ter todas as quatro entradas no Grub2. O que posso fazer para conseguir isso? O os-prober só encontra Win10.

Posso ver e montar todas as partições do Windows sem problemas.

grub2
  • 1 1 respostas
  • 36 Views

1 respostas

  • Voted
  1. Best Answer
    telcoM
    2024-07-26T02:33:19+08:002024-07-26T02:33:19+08:00

    Inicialmente, o sistema tinha um código de inicialização MBR clássico do Windows 9x e um código de inicialização FAT32 no estilo DOS no Partition Boot Record (PBR) da partição do Windows 98 ( sda1).

    Após adicionar o XP, ele deve ter substituído o MBR do Windows 9x por um código de inicialização MBR estilo Windows 2000/XP/2003, pois o gerenciador de inicialização do XP ( NTLDR) pode fazer o trabalho do MBR do Windows 9x quando esse SO é selecionado no menu de inicialização do XP. A partição primária do XP ( sda2eu acho) também teria um PBR do tipo apropriado instalado nela (um tipo FAT32 NT5.0 ou um tipo NTFS).

    Da mesma forma, após adicionar o Windows 10 (ao sda3?), o código MBR foi novamente substituído por um código de inicialização MBR no estilo do Windows 7+, que invoca o gerenciador de inicialização do Windows 10 ( bootmgr).

    Mas o Windows Vista e versões mais recentes vão querer colocar seu gerenciador de boot em uma partição diferente da partição principal do sistema. Acho que você encontrará um arquivo chamado bootmgrno diretório raiz de sda1; no Windows, ele provavelmente terá atributos hidden/system/read-only, então normalmente será invisível. Por causa disso, o Windows 10 também pode ter sobrescrito o PBR de sda1com um registro de boot de partição FAT32 estilo "NT6.0".

    E, finalmente, a instalação do Debian 12 substituiu o código MBR mais uma vez pelo GRUB. Partes do GRUB também estarão contidas no intervalo entre o MBR e o início da primeira partição, que normalmente é apenas espaço não utilizado para satisfazer os requisitos de alinhamento de partição.

    Os testes do Windows os-proberparecem exigir que as partições sejam montadas: se suas partições do Windows não foram montadas quando você executou os-prober, esse pode ser o motivo pelo qual elas foram ignoradas.

    A versão BIOS do GRUB inicia os sistemas operacionais Microsoft carregando em cadeia seus PBR. Então não deve haver problema em iniciar o XP a partir de sda2e o Windows 10 a partir de sda1. Você pode querer adicionar algo como isto a /etc/grub.d/40_custome executar sudo update-grubse executar os-probercom as partições do Windows montadas não funcionar:

    menuentry 'Windows 10/Windows Boot Manager (on sda3+sda1)' {
            insmod fat
            set root='hd0,msdos1'
            chainloader +1
    }
    
    menuentry 'Windows XP/NTLDR (on sda2)' {
            insmod ntfs                     # or insmod fat, as appropriate
            set root='hd0,msdos2'
            chainloader +1
    }
    

    Infelizmente, como o PBR do Windows 9x não está mais no primeiro bloco da sda1partição, ele não pode mais ser inicializado dessa forma.

    Mas acho que me lembro de como o NTLDR inicializa versões mais antigas do Windows: ele armazena uma cópia do PBR do outro sistema operacional no disco em que o próprio NTLDR está localizado, usando um nome como bootsect.dosou bootsect.w98. Você deve ver o nome do arquivo se ler o BOOT.INIarquivo do Windows XP em sda2.

    Sabendo disso, você pode querer copiar o bootsect.*arquivo do diretório raiz de sda2para sda1, apenas para protegê-lo caso você decida se livrar do Windows XP (e para minimizar as interdependências entre as diferentes partições do SO). Então você pode adicionar uma entrada de menu GRUB como esta:

    menuentry 'Windows 98 (on sda1)' {
            insmod fat
            set root='hd0,msdos1'
            chainloader /bootsect.w98  # or bootsect.dos as the case may be
    }
    

    Isso deve carregar a cópia preservada do PBR do Windows 9x do arquivo copiado, permitindo que o Windows 98 inicialize diretamente do GRUB.

    Infelizmente, não é possível separar completamente as partições do Windows 98 e do Windows 10 sem fazer uma grande cirurgia de transplante no bootloader do Windows 10, o que está fora do assunto aqui no Unix&Linux StackExchange. (E como o Windows 10 alega ter recursos de "autocorreção", ele pode simplesmente adicioná-los de volta por sda1conta própria de qualquer maneira.)

    • 2

relate perguntas

  • Não é possível inicializar o USB de inicialização múltipla ao vivo do Linux em UEFI

  • grub2-mkconfig não está gerando caminhos de montagem corretos (e também como faço para me livrar de kernels extras que não uso mais?)

  • Como encontrar o logon do kernel panic no debian

  • Ctrl + C não funciona no modo de usuário único no Linux

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

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