Uma partição / boot é sempre necessária?

30

Devo criar uma /bootpartição sempre que instalar uma distribuição Linux?

Existe uma diferença entre ter uma /bootpartição e tornar a /partição inicializável?

user1301428
fonte
Eu acho que é mais seguro manter a partição / boot separada para evitar sobrescrever o gerenciador de inicialização por engano. Se não me engano, o carregador de inicialização deve estar nos primeiros cilindros do disco para garantir que o processo de inicialização funcione corretamente, pois o BIOS sempre carrega os primeiros bytes do disco, supondo que exista um código que possa controlar mais controle e seja capaz para carregar o sistema operacional.
mnmnc
1
Certamente não é uma necessidade, mas como dito no comentário acima, é uma boa prática.
precisa

Respostas:

29

Para responder à pergunta direta: não , uma partição separada para /bootcertamente não é necessária em todos os casos.

No entanto , mesmo se você não dividir qualquer outra coisa, é geralmente recomendado para ter partições separadas para /, /boote swap. Eu também sugiro fortemente colocar também /homeuma partição separada, mesmo que você não divida mais a hierarquia do sistema de arquivos.

O motivo para colocar / inicializar em uma partição separada do sistema de arquivos raiz comum é que você pode reduzir a complexidade do sistema de arquivos em disco, o que reduz as demandas do carregador de inicialização para inicializar o kernel e o disco RAM inicial. Isso se torna particularmente interessante se você estiver executando uma configuração não trivial - talvez esteja executando RAID ou um sistema de arquivos incomum, como o ZFS na partição raiz, ou uma partição raiz criptografada. A partição para / boot pode ser formatada usando, por exemplo, ext2fs simples. Como a partição precisa apenas ser pequena (algumas centenas de megabytes são suficientes; / boot no meu sistema atual é 100 MB e não sinto nenhuma restrição disso), as desvantagens de um sistema de arquivos não registrado em diário como o ext2 precisam não seja tão bom porque as verificações são tão rápidas de qualquer maneira, e a relativa simplicidade do sistema de arquivos, além de ser em grande parte estática, pode tornar menos provável a corrupção não detectada. O fato de o carregador de inicialização não precisar entender nativamente um sistema de arquivos ou configuração de disco exótico é outra vantagem possível.

O motivo para colocar / home em uma partição separada é que, mesmo que algo fique desonesto e comece a enchê-la (ou se você o fizer), você nunca corre o risco de causar problemas para processos não relacionados ao usuário (que raramente ficam sem / home) ou o próprio processo de inicialização. Além disso, fica muito mais fácil reinstalar o sistema operacional ou alternar as distribuições, se você puder simplesmente dizer ao instalador para sair / de casa como está e reformatar /para preenchê-lo com seus próprios arquivos. Como um esforço de recuperação de última hora, se algo realmente der errado em termos de software, isso pode fazer uma grande diferença.

A execução de um arquivo de troca não é uma configuração recomendada no Linux, e nem tenho certeza de que os kernels de estoque das distribuições mais comuns suportam(ou permitir) troca baseada em arquivo. Existem várias razões para isso, uma grande razão para o desempenho (em grande parte devido ao risco de fragmentação). A troca já é terrivelmente lenta em comparação com a RAM (é mais uma medida de interrupção do que uma correção), então há poucas razões para torná-la ainda mais lenta, arriscando a fragmentação. E uma partição de troca pode ser compartilhada com segurança entre distribuições Linux em um ambiente de inicialização múltipla; talvez não seja uma consideração no caso geral, mas certamente uma consideração para alguns. Uma partição de troca também pode ser colocada em um disco físico separado com características diferentes; talvez um SSD hoje em dia ou uma unidade de 10 krpm executando um canal de controlador separado (essa última é menos considerada hoje em dia quando todo disco SATA está em um canal separado, mas pode fazer a diferença nos dias do PATA).

Hoje em dia, eu separo /, / boot e troco, com / no meu sistema atual sendo 100 GB (não estou nem perto de usar tudo isso; o uso atual é de 8,9 GB e isso me dá tudo o que preciso em termos de software e depois alguns). O restante do disco primário é constituído por um único sistema de arquivos, que por convenção pessoal eu monto em / da ( disk a). Um segundo disco seria / db, depois / dc e assim por diante. (Duvido que a ESF realmente aprove esse esquema, mas na prática funciona bem para mim.) Em seguida, vinculo mount / home ao / da, o que significa que posso mover o diretório físico sem precisar se preocupar em atualizar cada referência de caminho ou reparticionar apenas porque percebi que estou com pouco espaço em disco para / home.

um CVn
fonte
3
Além disso, / boot separada só é necessário se a partição raiz é criptografado (e bota é, obviamente, claro)
usr-local-ΕΨΗΕΛΩΝ
@djechelon eu acho que cai sob "uma configuração não-trivial", mas eu vou editar o seu exemplo em particular no.
um CVn
Estou analisando o ZFS e todos os guias parecem indicar que, ao usar o ZFS no root, você precisa de algo como ext * on / boot.
CMCDragonkai
1
@CMCDragonkai Isso não altera minha resposta: "não, uma partição separada para / boot certamente não é necessária em todos os casos ".
a CVn 29/06
3

Eu não acho mais obrigatório. No passado, era necessário devido a algumas limitações do BIOS. Era impossível ter uma partição inicializável após 8 ou 64 Go (não me lembro exatamente). Então, se você quiser ter uma inicialização dupla, poderá colocar uma primeira pequena partição (/ boot), a partição inicializável do Windows e, depois, as outras partições Linux. Há muito tempo, não havia nenhum diretório / boot. O kernel estava diretamente em /.

Thierry Chich
fonte
1
Às vezes, o kernel era armazenado diretamente na raiz (algumas distribuições ainda podem fazer isso), mas você ainda pode precisar de outras coisas, como initrd, System.map, configuração do gerenciador de inicialização, etc, etc., que preferem uma hierarquia própria.
um CVn
2

A diferença é a otimização do sistema de arquivos. Geralmente, cada partição tem suas próprias tabelas para arquivos, descritores, etc. Você pode instalar o Linux em uma única partição '/' sem '/ boot', '/ swap', / usr 'etc, mas essas tabelas internas de partição única logo crescerão enormes e algumas operações ficarão um pouco lentas. Portanto, partições diferentes são usadas para fornecer contêineres otimizados e separados para diferentes tipos de tarefas.

grigoryvp
fonte
O conjunto completo de tabelas de inodes raramente é usado fora das verificações do sistema de arquivos. Na maioria das vezes, apenas as tabelas para um diretório específico são referenciadas. Esses não são (ou pouco) diferentes em tamanho, com base no tamanho da partição.
um CVn
O tamanho é baseado na partição usage, não no tamanho. inodes é uma lista, então mais inodes = um pouco mais de tempo para procurar arquivos, adicionar etc. Onde não há uma grande diferença entre partição vazia e partição com milhões de arquivos, mas para operações como inicializar ou trocar qualquer diferença.
grigoryvp
Não vejo como seu comentário contradiz o meu. E uma partição de swap não tem conceito de inodes, porque não lida com arquivos. Há uma grande diferença entre /swape swap.
a CVn
0

Não, acho que uma partição / boot não é necessária por vários motivos:

  • Você pode querer que a pasta / boot não seja muito pequena e inclua-a em /
  • Não é necessário criar uma partição porque os arquivos e pastas de / boot geralmente não são atualizados e acessados. Não é como uma pasta / tmp ou / swap. programas não gravam em / boot.
  • / boot é usado apenas durante a inicialização e atualizações do Kernel quando as imagens initramfs são atualizadas.
  • Você pode incluir / boot to / root em uma matriz RAID 5 e ela funcionará com o GRUB2. Adicione o GRUB2 ao MBR para cada unidade. Você pode inicializar da 2ª, 3ª unidade ... se a 1ª unidade estiver morta.
  • Menos montagens = menos uuid's = mais visibilidade = mais simplicidade
Nicolas Guérinet
fonte