Em uma palavra: permissões.
Para elaborar…
Localização
O BCD é armazenado na unidade de inicialização (geralmente um volume NTFS de ~ 100MB). Ele está oculto por padrão, mas você pode atribuir uma letra de unidade a ele com o snap-in do MMC de Gerenciamento de Disco ( diskmgmt.msc
). Em seguida, você pode procurar no diretório Boot
e ver o arquivo BCD
, que é um arquivo de formato de registro-seção regular que contém os dados de configuração de inicialização.
Fundamentação
Obviamente, os dados de inicialização são muito sensíveis e são a primeira linha de falha. Arquivos de sistema bagunçados podem ser corrigidos com relativa facilidade, mas isso requer que algo seja executado para fazer os reparos. Se os arquivos de inicialização estiverem confusos, nada será executado e as luzes serão apagadas. (Bem, isso ainda é solucionável, mas não automaticamente; exigirá intervenção manual e proposital, como usar um disco de inicialização ou instalação).
Como os dados de inicialização são críticos, o Windows não facilita a confusão. Usar o editor de registro para editar diretamente os dados de inicialização tornaria possível definir valores inválidos ou conflitantes, adicionar entradas inválidas ou ilegais, remover entradas obrigatórias, etc. Limitar a modificação do BCD a bcdedit
permite restringir as alterações a informações válidas. valores que ajudam a limitar o dano que pode ser feito (não elimina completamente os problemas; você ainda pode matar um sistema, mas pelo menos elimina uma grande quantidade de possíveis problemas).
Método
Se você examinar as permissões da ramificação BCD00000000
, verá que ela tem Full Control
definido para a conta SYSTEM, mas o grupo administradores tem Special
permissões que são apenas Read-Only
plus WriteDac
que concede a capacidade de definir permissões. (Pode ser necessário clicar no botão [Advanced]
porque a caixa de diálogo básica indica que SYSTEM possui Special
access também, mas a caixa de diálogo Configurações avançadas de segurança mostra a configuração correta para Full Control
.)
Quando você executa o Regedit (que requer privilégios elevados), ele é executado no contexto da sua conta de usuário e obtém as permissões do grupo de administradores, portanto, não é possível gravar nele. Quando você usa o comando bcdedit
, ele é executado no contexto da conta SYSTEM, que possui permissões de gravação. Se você ativar a coluna Nome de usuário no Gerenciador de tarefas, verá que o Regedit é executado pela sua conta de usuário e bcdedit
é executado pelo SYSTEM.
Soluções alternativas
Não é aconselhável editar diretamente o BCD com o Regedit e raramente é necessário, mas se você realmente precisar, uma maneira é conceder acesso de gravação à filial BCD00000000
. Claro que isso não é recomendado porque você precisa se lembrar de revogar a permissão mais tarde. Uma maneira mais fácil é simplesmente executar o Regedit no contexto SYSTEM .