Diferença entre partições inicializáveis ​​e não inicializáveis

8

Qual é a diferença entre uma partição inicializável e não inicializável? Eu sei que um usuário não pode inicializar um sistema a partir de uma partição marcada como não inicializável e pode de um marcado inicializável.

Eu quero saber sobre as diferenças subjacentes entre esses sinalizadores de partição.

Sam
fonte
1
Pode estar sabendo o que é o processo de inicialização do linux pode ajudá-lo. ibm.com/developerworks/linux/library/l-linuxboot
@anon_anon Uh, esse artigo, embora sem dúvida um bom, é um pouco antigo. É de 2006 e discute o GRUB Legacy. Acho que as coisas mudaram um pouco com o GRUB 2. (Se nada mais, eles usam nomes diferentes para os " estágios " de inicialização no GRUB 2 :). Tentei localizar uma atualização do artigo do DeveloperWorks que você vinculou para o GRUB 2, mas não o fez. O mais próximo que pude chegar foi o seguinte: Migrar para o GRUB 2 .
irracional John
@Rony Ooops. Atualizei minha resposta.
irracional John

Respostas:

6

Embora tenha sido recusado ... possivelmente porque alguém pensou que não estava respondendo à pergunta ... acho que a resposta de @ Rony é um bom começo para explicar o que é a bootbandeira. (Na verdade, eu estava planejando começar minha resposta com um exemplo semelhante ao que ele forneceu.)

Eu estava pronto para divagar sobre uma resposta sobre como a bootbandeira é, neste momento, um remanescente histórico frequentemente ignorado (como mostra o exemplo de @ Rony) de um período em que os discos rígidos eram menores e os gerenciadores de inicialização eram muito menos sofisticados.

Mas então descobri que isso já havia sido dito nesta resposta a esta pergunta: Qual é a opção "Sinalizador de inicialização" ao instalar uma distribuição?

Além disso, havia também um link para um pequeno artigo sobre o sinalizador Boot, que diz

  • " Sua função principal é indicar a um carregador de inicialização do tipo MS-DOS / MS Windows que partição inicializar. Em alguns casos, é usado pelo Windows XP / 2000 para atribuir à partição ativa a letra" C: ". "

Bem, isso é embaraçoso ...

Quando afirmei que a bootbandeira era um " remanescente histórico ", eu estava assumindo que era esse o caso, porque claramente o GRUB não precisava usá-la. Certamente a Microsoft também teria " mudado ".

A citação conhecida geralmente atribuída a Oscar Wilde acabou sendo verdadeira demais neste caso.

Parece que os carregadores MBR e PBR (Partition Boot Record) utilizados pelos sistemas operacionais Windows ME esperar que a bootbandeira deve ser definido corretamente.

Para testar isso, limpei o sinalizador de inicialização de todas as partições de uma VM do Windows 8. (Veja abaixo. Se você estiver curioso, aqui está um link para a pasta do resultado completo do script BootInfo )

Drive: sda     
Disk /dev/sda: 26.8 GB, 26843545600 bytes
255 heads, 63 sectors/track, 3263 cylinders, total 52428800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sda1               2,048       718,847       716,800   7 NTFS / exFAT / HPFS
/dev/sda2             718,848    52,426,751    51,707,904   7 NTFS / exFAT / HPFS

Quando limpei o sinalizador de ambas as partições, recebi a mensagem de erro FATAL: INT18: BOOT FAILUREao tentar inicializar. (Não tenho certeza se isso é do carregador de inicialização do Windows MBR ou do equivalente da VM a um BIOS.)

Apenas para ver o que aconteceria, também defini o bootsinalizador na partição "errada", em /dev/sda2vez de /dev/sda1. Isso resultou na janela mostrada na imagem abaixo.

Windows falhou ao iniciar a janela de erro

<sigh/>

Essa experiência me faz pensar se a Microsoft ainda está usando o mesmo carregador de setor de inicialização MBR usado para o MS-DOS e o Windows 3.0 / 3.1?

John irracional
fonte
3

Eu sei que um usuário não pode inicializar um sistema a partir de uma partição marcada como não inicializável e pode de um marcado como inicializável.

Do disco rígido do laptop

# fdisk  -l /dev/sda

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 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
Disk identifier: 0x47b94fbe

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     1999999      998976   83  Linux
/dev/sda2         2000000     9999999     4000000   82  Linux swap / Solaris
/dev/sda3        10000000    89999999    40000000   83  Linux
/dev/sda4        90000000   976773167   443386584   83  Linux

Do Linux inicializável Linux

# fdisk  -l /dev/sdb

Disk /dev/sdb: 8004 MB, 8004304896 bytes
247 heads, 62 sectors/track, 1020 cylinders, total 15633408 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
Disk identifier: 0x000a5395

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2097151     1047552   83  Linux
/dev/sdb2         2097152    15632383     6767616   83  Linux

Eles não têm uma única partição inicializável, enquanto são todos inicializáveis.

Rony
fonte
2

Apenas uma bandeira na tabela de partições. O MBR pesquisa o sinalizador nas partições e executa a partir da partição com o sinalizador "boot".

Rufo El Magufo
fonte
0

Ao usar o MBR tradicional da Microsoft, o código no MBR identifica como executar as E / S de disco e percorre as partições para ver qual delas está marcada com o sinalizador de inicialização. Apenas uma partição deve estar tão marcada. Em seguida, verifica o primeiro setor dessa partição e, se estiver marcado adequadamente, lê esse setor e transfere o controle para ele. Se bem me lembro, essa verificação é que o setor termina com 0x55 0xaa.

O restante da responsabilidade pela inicialização recai no código desse setor e no código que ele, por sua vez, carrega.

O GRUB2 geralmente usa seu próprio MBR e processo, ignorando esse bit.

John S Gruber
fonte