Que partição deve / usr estar em

1

Conforme este documento /bin e /sbin contém arquivos mínimos para inicialização e reparo do sistema e /usr é uma partição separada para que possa ser facilmente desmontada para reparo.

Mas de acordo com esta informação sobre a partição, todos os diretórios essenciais para a inicialização (exceto /boot ) devem ser na mesma partição em que / é.Esses diretórios essenciais são /etc e /usr

Acho esses dois documentos contraditórios.

  1. De acordo com o primeiro link, /bin e /sbin são essenciais para a inicialização, por que apenas /etc e /usr são considerados essenciais pelo segundo link? É o caso que o sistema pode ser inicializado no modo de usuário único usando apenas /bin e /sbin , mas para o modo completo /usr e /etc também são necessários?
  2. Por que é essencial que /usr e /etc estejam na mesma partição que root, mas não para /boot , /bin e /sbin
  3. Como é que /usr pode ser feito apenas para leitura? Até onde sei, /usr/bin é usado para armazenar binários por gerenciadores de pacotes.
  4. Também em algum lugar eu li que /bin e /sbin contém código para montar outros sistemas de arquivos, se esse for o caso que monta o / ? É feito pelo grub?
por krrish 24.11.2017 / 11:59

3 respostas

2

Você está lendo documentação de 2006, a ideia de que suas práticas mencionadas neles parecem contraditórias não é surpreendente.

No entanto, vamos responder a isso, considerando o estado moderno das distribuições Linux.

  • / sbin são binários do sistema
  • / etc são dados de configuração do sistema específicos do host
  • / usr é compartilhado, somente dados de leitura
  • / var é dados variáveis persistentes e específicos do host
  • / run é um dado de tempo de execução (desde a última inicialização)

Considerando que consideramos cada um dos seus pontos:

  1. Isso ocorre porque os gerentes de serviços, incluindo init.d, exigem a configuração do host e o / usr / bin (programas) compartilhados (usuários). O segundo link está sugerindo a inicialização como na inicialização normalmente, enquanto o primeiro link está se referindo a tarefas administrativas, como a recuperação do sistema. Ambos estão corretos, dado o contexto.

  2. O Linux moderno na verdade não tem um / bin em seu / usr / bin, que é considerado essencial no segundo documento. / boot não precisa estar na mesma partição porque contém dados para o gerenciador de inicialização e o Linux não precisa necessariamente dele durante a inicialização após o bootloader. Além disso / boot normalmente será uma partição separada com um sistema de arquivos que o carregador de inicialização suporta. Isto apenas deixa / sbin, o kernel linux irá chamar o init depois de algum ponto, entretanto os sistemas de arquivos são montados como parte do initram. As informações contidas em / etc / fstab podem conter onde / sbin / deve ser montado antes de / sbin / init ser chamado para que possa ser separado.

  3. O segundo link não está realmente dizendo que o / usr deve ser montado somente para leitura apenas para que seja destinado a ser somente leitura da perspectiva de aplicativos. No entanto, os arquivos ainda são alterados como parte das tarefas administrativas de instalação e atualização de software. Certas ferramentas como o gerenciador de pacotes para gravar dados aqui.

  4. O GRUB está ciente dos sistemas de arquivos, embora, dada a sua frase, vale a pena notar que isso realmente não importaria da perspectiva do Linux. Por exemplo, no Android, o kernel (programa do sistema) e o initram são armazenados em partições sem sistema de arquivos. Um bootloader irá então carregar o Linux e o initram na memória e chamar o Linux. O Linux então montará a raiz do initram. O initram contém os módulos do kernel necessários e o software para acessar o hardware e montar o sistema de arquivos raiz. Ele não precisa de nenhuma configuração para fazer isso porque foi transmitido pelo gerenciador de inicialização. Mas então ele acessará arquivos como / etc / fstab, mount / sbin se necessário antes de chamar / sbin / init.

por jdwolf 24.11.2017 / 13:00
2

De acordo com a documentação do Ubuntu

Os diretórios a seguir NUNCA devem ser colocados em suas próprias partições separadas:

  • / bin - Esse diretório armazena os executáveis do sistema que são acessíveis pela maioria dos usuários.
  • / sbin - Esse diretório mantém os executáveis usados para as principais funções do sistema e usados pelo administrador do sistema para manter o sistema.
  • / proc - Este é um diretório de uso do sistema que contém informações sobre o processo. Quase nunca acessado por um usuário.
  • / dev - Esse diretório contém links criados pelo sistema para o seu hardware instalado e como / proc quase nunca é acessado diretamente.

Qualquer outro diretório pode ser colocado em uma partição separada, desde que a montagem seja anotada corretamente em / etc / fstab. No entanto, fazer isso pode afetar significativamente o desempenho.

Grub Carrega o kernel e o initramfs (sistema de arquivos RAM inicial). É o initramfs que verifica e monta unidades e, em seguida, inicia o processo de inicialização.

Nota: /etc contém arquivos de configuração do sistema; incluindo fstab , que especifica pontos de montagem. Não tenho certeza de como o initramfs lida com isso. Mas eu diria que /etc deve ser adicionado à lista, já que uma pesquisa superficial na web indica modificação nos arquivos de inicialização ou o kernel é necessário para acomodar a movimentação de /etc para uma partição separada.

Referência

link

    
por ravery 24.11.2017 / 13:03
1

Esta é uma regressão introduzida pelo systemd, que tem uma integração mais strong no ambiente de desktop e, portanto, requer bibliotecas e daemons no momento da inicialização que, em um sistema Unix tradicional, não seriam considerados parte do sistema central mínimo.

Com hardware moderno, uma partição /usr separada geralmente não vale a pena para a maioria dos usuários, o que é considerado um compromisso aceitável.

    
por Simon Richter 24.11.2017 / 16:43