Quais são os bcdedit
comandos necessários para configurar a inicialização dupla entre diferentes instalações do Windows? 5
fundo
Instalei recentemente o Windows 8 em um disco rígido separado 1 . Agora que o Windows 8 está instalado, desejo inicializar novamente o Windows 7.
Eu tenho meus dois 2 discos rígidos:
Então você pode ver que eu tenho meus dois discos, com as partições que contêm o Windows:
- Windows 7 :
\\PhysicalDisk0
(partição 0 3 ) - Windows 8 :
\\PhysicalDisk2
(partição 1)
O que estou tentando descobrir é como usar bcdedit
para instruir a coisa que inicializa o Windows que existe outra instalação do Windows por aí.
Em execução bcdedit
agora, mostra a configuração atual:
C:\WINDOWS\system32>bcdedit
Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume2
description Windows Boot Manager
locale en-US
inherit {globalsettings}
integrityservices Enable
default {current}
resumeobject {ce153eb7-3786-11e2-87c0-e740e123299f}
displayorder {current}
toolsdisplayorder {memdiag}
timeout 30
Windows Boot Loader
-------------------
identifier {current}
device partition=C:
path \WINDOWS\system32\winload.exe
description Windows 8
locale en-US
inherit {bootloadersettings}
recoverysequence {ce153eb9-3786-11e2-87c0-e740e123299f}
integrityservices Enable
recoveryenabled Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \WINDOWS
resumeobject {ce153eb7-3786-11e2-87c0-e740e123299f}
nx OptIn
bootmenupolicy Standard
hypervisorlaunchtype Auto
Não consigo encontrar nenhuma documentação sobre a diferença entre o Windows Boot Manager e o Windows Boot Loader .
Documentação
Há alguma documentação sobre Bcdedit
:
- Technet: Referência de Linha de Comando - Bcdedit
- Technet: Kit de instalação automatizada do Windows - Opções de linha de comando do BCDEdit
- White paper - Comandos BCDEdit para o ambiente de inicialização (documento do Word)
Mas eles não explicam como editar os dados de configuração de inicialização binária.
Se eu tivesse que adivinhar , acho que um Gerenciador de Inicialização do Windows instrui o BIOS sobre qual programa ele deve executar. Esse programa daria ao usuário um conjunto de opções de inicialização. Isso deixa o Windows Boot Loader como uma opção de inicialização específica , que representa uma instalação específica do Windows.
Se for esse o caso, eu precisaria criar uma nova entrada no Windows Boot Loader .
Isso significa que eu posso querer usar o /create
parâmetro:
/crio
Cria uma nova entrada de inicialização:
bcdedit [/ nome do arquivo da loja ] / criar [ id ] / descrição d [/ application apptype | / herdar [ apptype ] | / herdar DEVICE | / dispositivo ]
Então, assumo uma sintaxe de:
>bcdedit /create /d "The old Windows 7" /application osloader
Onde application
pode ser um dos seguintes tipos:
Apptype Description
BOOTSECTOR The boot sector application
OSLOADER The Windows boot loader
RESUME A resume application
Infelizmente, a única documentação sobre osloader
é "O carregador de inicialização do Windows" . Não vejo como isso pode diferenciar entre o Windows 8 em um disco rígido e o Windows 7 em outro.
O outro parâmetro possível quando /create
um carregador de inicialização é
>bcdedit /create /D "Windows Vista" /device "The Quick Brown Fox"
Infelizmente, a documentação está ausente para /device
:
/dispositivo
Opcional. Se o ID não estiver definido como um identificador conhecido, a opção usada para especificar a nova entrada de inicialização como uma entrada adicional de opções do dispositivo.
Como não defini id
um identificador conhecido, devo definir / device como "a opção usada para especificar a nova entrada de inicialização como uma entrada adicional de opções do dispositivo" . Eu conheço todas essas palavras; são todos ingleses. Mas não tenho ideia do que está dizendo; essas palavras nessa ordem parecem sem sentido.
Então, eu estou um pouco frustrado. Não quero ser como Dan Stolts, da Microsoft, que destruiu seus discos rígidos tentando usar o BCDEdit :
Não encontrei nenhum conteúdo que fosse particularmente útil quando manuseiei minha máquina jogando com o BCDEdit. Este post teria sido ok se houvesse muito mais detalhes, especialmente no set OSDevice / comando, etc. Então, quando eu tenho a minha máquina fixa, eu documentei a solução ea informação é aqui ... .
Quero dizer, se um funcionário da Microsoft não consegue nem descobrir como usar o BCDEdit para editar o seu BCD, então que chances tenho?
Leitura de bônus
- Opções de linha de comando do BCDEdit
- Bcdedit
- O sistema Server 2008 R2 ou Windows 7 NÃO inicializa após fazer alterações no gerenciador de inicialização usando o BCDEdit
- Editor Visual BCD 4
- Configuração de inicialização dupla do Windows 7 e Windows 8 RTM
Notas de rodapé
- 1 Como o instalador do Windows 8 danificaria minha instalação do Windows 7, decidi desconectar meu disco rígido "principal" durante a instalação. O que é uma explicação extensa sobre por que o instalador do Windows 8 não detectou a instalação existente do Windows 7. Normalmente, o instalador teria criado automaticamente as entradas necessárias para a inicialização dupla. Não que a razão pela qual estou fazendo a pergunta seja importante.
- 2 Existem três unidades, mas a terceira é apenas armazenamento em massa. A existência de um terceiro disco rígido é irrelevante para a questão. Eu apenas menciono isso no caso de alguém querer saber por que a captura de tela tem 3 discos rígidos quando eu menciono apenas dois.
- 3 Comecei arbitrariamente a numerar partições em "zero" ; para não implicar que as partições sejam numeradas começando em zero. Menciono apenas partições porque não vejo como qualquer carregador de inicialização poderia fazer seu trabalho sem saber em qual partição e em qual pasta uma instalação do Windows está localizada.
- 4 Estou perguntando sobre o BCDEdit. Eu tentei o Visual BCD Editor . Parece ser um editor visual do BCD. Isso significa que é uma GUI, mas ainda usa a mesma terminologia que o BCDEdit e requer o mesmo conhecimento que o BCD não documenta.
- 5 Por uma questão de simplicidade, presumiremos que todas as instalações do Windows nas quais eu quero inicializar duas vezes são Windows Vista ou posterior, tornando-as compatíveis com o BCDEdit e o carregador de inicialização binário. A alternativa exigiria investigar os meandros do passado
ntloader
. Também não estou perguntando sobre a inicialização dupla para Linux; ou como inicializar em uma imagem de disco rígido virtual (vhd). Apenas versões modernas do Windows em discos rígidos existentes na mesma máquina.
bcdedit
é parabcdboot e:\windows
(ver aqui para a pergunta){current}
não funciona.Algumas anotações sobre críticas na pergunta original sobre o uso da mesma terminologia no Visual BCD usada pela Microsoft para o bcdedit.
O conceito BCD é desenvolvido pela Microsoft. Ele vem com sua própria terminologia. Eu não acho que posso mudar isso. Eu posso estender apenas.
A Microsoft ofereceu duas maneiras de acessar / editar o BCD:
Ambas as interfaces falam sobre objetos e elementos BCD. Este é um conceito geral usado tanto em programação / computadores quanto em outras áreas humanas. Poderíamos ir até à filosofia que usa a terminologia de objetos, propriedades e relações para descrever o mundo e o universo.
O acesso do provedor BCD WMI é mais flexível, pois oferece ao programador a possibilidade de acessar todos os objetos e elementos do BCD e operá-los livremente.
O Visual BCD faz uso total da Interface do Provedor BCD WMI e implementa o acesso da mesma maneira que usamos para acessar o registro do Windows usando o regedit.exe. Além disso, a ferramenta automatiza duas tarefas principais - criação de carregadores e reparo de inicialização dupla . Nenhuma outra ferramenta oferece essa funcionalidade automática com um clique . Eu diria que essa é uma nova terminologia e um novo nível de abstração . Eu não mudaria a base que a Microsoft criou, só posso aproveitar isso.
Usuários iniciantes apenas clicam em um botão e uma operação complexa é realizada! Nenhum fundo é necessário! Você nem precisa saber quantas versões do Windows instalou - a ferramenta tenta encontrá-las todas e, em seguida, cria carregadores para elas se os carregadores correspondentes ainda não estiverem presentes no BCD - a terminologia usada - "Criar carregadores ausentes do Windows" - I acha que todo mundo que fala inglês pode entender / clicar / confirmar tal operação ou estou errado?
A complexidade de objetos e elementos no BCD é natural, pois o conceito abrange a inicialização de sistemas operacionais Windows mais novos e mais antigos, além de sistemas operacionais estrangeiros como Linux, Unix etc. Além disso, é um conceito geral para inicialização por MBR e inicialização por EFI em uma variedade de dispositivos.
A parte mais complexa do BCD é o conceito de dispositivo . Você tem um dispositivo de partição, um dispositivo de ramdisk, um arquivo, um dispositivo de localização - você precisa dedicar algum tempo para entendê-lo e não acho que seja para o usuário normal do Windows. Os fóruns estão cheios de perguntas sobre partições de disco, o que é um tópico muito menos complexo. Muitos usuários do Windows ainda não sabem sobre a diferença entre partição primária e lógica, por exemplo. Você precisa saber sobre partições se quiser fazer a inicialização dupla / múltipla. Você precisa comprar terrenos para construir uma segunda casa.
O conceito de BCD é o mesmo desde o Vista - apenas novos elementos são definidos no Windows 7/8.
Eu acho que a estrutura de registro do BCD foi escolhida, pois o Windows já implementa essa interface e é uma interface transacional confiável, comprovada para funcionar ao longo dos anos. Se o conceito de registro do Windows em geral é um conceito bom ou ruim é outro tópico.
Cabe ao programador / desenvolvedor criar uma interface mais amigável. Comecei fornecendo a mesma interface - uma GUI equivalente ao bcdedit - depois a interface pode ser abstraída em um nível superior, com base nos padrões de uso. Uma visão estruturada do BCD já está implementada. Esta é a camada de abstração básica.
O próximo nível de abstração seria concentrar-se nas relações entre os objetos, pois esse tópico não é coberto pela Microsoft. Não é uma tarefa fácil. Nova terminologia vem com abstração.
fonte
Windows
aqui, e outroWindows
ali. Como eu inicializo entre eles?". Em vez de um tutorial completo sobre todas as opções do BCDEdit, eu esperava os comandos que só podem resolver esse problema (aparentemente simples). Talvez quase algo tão simples quantomsconfig
, exceto que permite navegar para outra instalação do Windows e a adicionará a você.Você precisa de um
BCDEdit /set
comando para configurar o volume de inicialização. Em seguida, adicione a entrada ao menu do sistema operacional Windows Boot Manager, chamando oBCDEdit /displayorder
comandoEle identificará a partição do outro sistema operacional ou o seguinte comando também
A linha a seguir torna a entrada inicializável, adicionando-a ao menu
Você pode verificar se a nova entrada aparecerá no menu de inicialização executando o comando
bcdedit /enum ACTIVE
e procurando a entrada do Windows Legacy OS Loader.Nota : o
/create
comando é usado para adicionar o SO não Microsoft à entrada do carregador de inicialização.Para mais informações sobre isso, você pode ler este artigo de origem
Em relação à sua pergunta sobre " Diferença entre o carregador de inicialização do Windows e o gerenciador de inicialização "
Da wikipedia
Veja também no technet .
O Visual BCD Editor é uma versão avançada da GUI do utilitário bcdedit do Windows.
Página de download para o editor visual do BCD.
Experimente tentar reparar a opção na ferramenta.
fonte
Embora antigo, quero adicionar às respostas, porque várias das respostas acima contêm informações incorretas. Eles provavelmente funcionam, mas você certamente não precisa de um programa externo, ou mesmo
bcdboot
de o fazer. Para referência, as informações corretas são as seguintes:Histórico rápido do BCD, se novo
BCD é a configuração de inicialização do Windows. Ele contém várias seções, cada uma identificada por um nome (chamado de "descrição") e um identificador parecido com este: "{0743bb44-fda6-11e3-90c8-e3ee27f3aec6}".
Existem vários "identificadores conhecidos", e o bcdedit os utilizará de maneira útil onde for possível (a menos que você use a opção
/v
(detalhada) com/enum
). Eles têm a seguinte aparência: "{bootmgr}", "{memdiag}". Estes são apenas nomes abreviados para identificadores completos, mas são mais fáceis de trabalhar. Você pode usar qualquer um.Você pode listar essas seções com o seguinte comando (o "tudo" é opcional, mas sem ele você não vai ver uma lista completa):
bcdedit /enum all
.Saída típica:
Da mesma forma, para facilitar a identificação de dispositivos, ele usará um formato como
\Device\HarddiskVolume2
, mas reconhecerá a partição por sua letra ("C:"), se uma estiver atribuída.A lista produzida por
/enum all
começa com uma seção opcional do gerenciador de inicialização do firmware (se sua placa-mãe tiver EFI). Seu nome abreviado é "{fwbootmgr}" . Ele controla a opção inicial de inicialização da EFI (seja para usar o gerenciador de inicialização normal do Windows ou dispositivos específicos). Geralmente você pode ignorar {fwbootmgr} se presente.Abaixo disso está o "Windows Boot Manager" (identificador "{bootmgr}" ). Este é um com o qual você trabalhará. Ele contém a configuração do menu básico ou qualquer outra coisa que você obtém na inicialização (se o Windows Boot Manager estiver funcionando e puder encontrar o BCD em primeiro lugar).
Abaixo de {bootmgr}, há várias seções do "Windows Boot Loader" e, possivelmente, outras seções, cada uma das quais controla uma ação ou opção de inicialização.
Configurando a inicialização dupla usando o bcdedit (você não precisa de mais nada)
Para a inicialização dupla, você deve informar o bcdedit a
/copy
uma entrada existente válida do Windows Boot Loader para seu primeiro sistema operacional./copy
copiar uma entrada existente{current}
é o identificador da entrada que você deseja copiar. É um atalho para o item de inicialização atual. Se não for esse o item que você deseja inicializar, use o identificador correto para o que você deseja. O texto de descrição para cada entrada ajudará a encontrar o que você deseja./d "Description for copied entry
será a descrição do novo itemEle fará uma cópia dessa entrada, fornecerá a descrição declarada e responderá com o novo identificador que a cópia foi fornecida:
Isso cria uma entrada independente com o nome certo, agora você precisa dizer o que fazer. Como quase nada mudou nos sistemas operacionais recentes, você pode simplesmente definir o dispositivo e o dispositivo para sua partição Win7, e provavelmente funcionará. Se necessário, observe a saída de / enum ao inicializar normalmente no Win7 e copie as entradas que parece esperar. Mas geralmente é suficiente atribuir uma carta ao seu segundo sistema operacional temporariamente, como "Q", e o comando é:
bcdedit /set {NEW_IDENTIFIER} device partition=Q:
ou algo assim, e o mesmo paraosdevice
. O bcdedit classificará as letras das unidades, veja abaixo. Você pode excluir a letra da unidade temporária depois de usada em bcd.Em seguida, adicione-o à lista de entradas em {bootmgr} usando
bcdedit /displayorder {NEW_ID} /addlast
, e - crucialmente - diga ao bcd para exibir um menu de inicialização usandobcdedit /set {bootmgr} displaybootmenu Yes
.Feito.
Nota - é seguro usar letras de unidade "ímpares" ou "erradas" no BCD, e é seguro se a saída do / enum as contiver também.
Para ser claro, você não precisa se preocupar com o fato de o seu novo dispositivo ser identificado como Q: (ou o que for) quando "deveria ser C:". O bcdedit armazena o ID do disco rígido, não a letra. É puramente aceitar e exibir Q: para ser útil. Se um dispositivo tiver uma letra, ela será mostrada por padrão, em vez da ID do dispositivo, para sua facilidade. Você pode ver isso removendo ou atribuindo a letra do 2º SO no DISKPART ou DISKMGMT.MS. A saída de / enum será revertida imediatamente para um \ Device. Na verdade, ele salvou o ID correto do disco rígido e, quando usado para inicializar, o Windows encontrará esse dispositivo - a letra é simples e nunca é realmente salva.
fonte
{0743bb44-fda6-11e3-90c8-e3ee27f3aec6}
? Você já copiou o{current}
Windows Boot Loader ; de que outra coisa você está fazendo uma cópia? (Não é o Windows Boot Manager presumo)Em resposta à pergunta específica do autor, conforme reiterada nos comentários (embora seja diferente da pergunta inicial sobre as
bcdedit.exe
seqüências para realizar o mesmo):O EasyBCD é exatamente o que você está procurando (gratuito para uso pessoal). É uma ferramenta visual de gerenciador de inicialização dupla para Windows, e adicionar uma nova entrada do Windows é com um apontar e clicar, exatamente como você a descreveu .
Há muitos recursos no EasyBCD online, então não vou repetir tudo aqui. Basicamente, o EasyBCD envolve a complexidade
bcdedit.exe
e a estende com seus próprios módulos do carregador de inicialização, para permitir a inicialização dupla com outras versões (mais novas ou mais antigas) do Windows, além de Linux, BSD e muito mais.Divulgação completa: sou o principal autor do EasyBCD.
fonte
Isso pode ser apontado para um arquivo como .vhd, mas criado como uma partição em disco e inicializado e anexado, ou montado em tempo real e reinicializado como um sistema operacional. O sistema operacional pode estar oculto dentro de outra partição. outra partição pode estar oculta dentro de outra partição e SO dentro dela. quando você executa
bcdedit
para ser apontado para outro arquivo .vhd, não importa onde esteja localizado. Isso carrega. Meu instrutor mostrou isso em sala de aula, mas falhou ou se recusou a dar mais explicações parabcdedit
. Mas isso funciona para ocultar e operar o SO totalmente funcional.bcdboot e:\windows
bcdboot c:\windows
fonte