Eu tenho feito pesquisas sobre partições ultimamente e estou bastante confuso em algumas coisas:
o que é uma tabela de partições e para que serve
o que é um esquema de particionamento (GPT e MBR) e para que eles são usados
Por fim, fiz algumas pesquisas e vi o termo 'MBR' e 'GPT' sendo usado para descrever tabelas de partição, minha última pergunta é: MBR e GPT são outro nome para uma partição?
Partições
Vamos começar com outra pergunta: O que é um disco (do ponto de vista do software)?
Um disco é um pedaço de memória. Tem um começo e um fim. Ele contém pedaços de dados, enumerados começando em 0 (você chama isso de endereço ). Um pedaço de dados geralmente é chamado de setor que normalmente produz 512 bytes.
Imagine um mundo sem sistemas de arquivos. Você pode usar totalmente um disco apenas gravando seus dados diretamente nele. Seus dados são então localizados no disco. Tem um certo comprimento. Começa no endereço a e ocupa espaço até o endereço b. Agora você provavelmente deseja ter mais de um conjunto de dados e deseja organizar seus dados de alguma forma. Você pode dizer: quero dividir a memória em partes menores com tamanhos fixos. Eu chamo essas partes de partições . Eu os uso para organizar meus dados.
Então você cria o conceito de uma tabela de partição. A tabela de partição é uma lista bem especificada de números inteiros que caracterizam (início, fim, tipo de uso designado) as partições do disco.
O MBR é, na verdade, muito mais do que apenas uma tabela de partições, mas contém uma tabela de partições. O MBR também contém alguns códigos executáveis envolvidos na inicialização do sistema. Você poderia dizer que o MBR é uma implementação amplamente usada do conceito de tabela de partição. Espera-se que o MBR seja encontrado no setor 0. Ele é feito para caber naquele setor de 512 bytes. Como resultado, há um limite em relação ao número e tamanho das partições que ele pode descrever.
GPT é outra implementação, mas é maior e, consequentemente, capaz de descrever mais e maiores partições.
Etimologia
Para entender a etimologia do termo MBR, precisamos considerar a história. Antes mesmo de pensar em como organizar os dados, você quer que seu sistema inicialize. Desligado, um computador está praticamente "quebrado", pois não pode fazer nada. Para se tornar útil após a inicialização, o primeiro programa precisa ser carregado de um local bem conhecido. Esse local bem conhecido pode ser o primeiro setor do disco rígido (esta é uma simplificação grosseira do processo de inicialização). O primeiro programa é conhecido como carregador de inicialização . Adicione alguns padrões e o MBR (registro mestre de inicialização ) nasce. Deste ponto de vista, ter uma tabela de partição no MBR era um bom complemento mais do que uma necessidade.
O carregador de inicialização geralmente lê a tabela de partições, examina a primeira partição inicializável e continua a carregar o sistema operacional real. É por isso que o esquema de partição MBR geralmente vem com uma partição para o sistema operacional.
Com a GPT (GUID Partition Table), há uma partição designada para o processo de inicialização, a ESP (partição do sistema EFI). O ESP geralmente é formatado com um sistema de arquivos FAT. O carregador de inicialização é armazenado em um arquivo. O sistema operacional real normalmente reside em outra partição. É por isso que o esquema de partição GPT geralmente vem com pelo menos duas partições: uma para o carregador de inicialização e outra para o sistema operacional.
A tabela de partição em que a posição das partições é armazenada. Não há nada armazenado nas partições. O sistema operacional lê a tabela de partição e restringe onde o software pode gravar (portanto
/dev/sda1
, tem um deslocamento (startOffset) adicionado aos seus números de bloco, e qualquer bloco menor que 0 ou maior que $EndOffset-startOffset$ é bloqueado.O registro de inicialização mestre é armazenado próximo à tabela de partições e contém o carregador de inicialização do segundo estágio (o estágio um está na ROM). Isso carrega o estágio 3 (por exemplo, grub).
GPT é um novo padrão de tabela de partição.