digamos Fedora e Ubuntu?
... atualmente são sistemas operacionais systemd.
O que acontece nos sistemas operacionais systemd
o mecanismo nativo
O Systemd emprega vários tipos de unidades. .mountarquivos de unidade instruem-no a montar volumes. .swaparquivos de unidade instruem-no a informar o kernel sobre partições de troca. (os .servicearquivos da unidade instruem como executar serviços. E assim por diante.) Esses são os mecanismos nativos do sistema. Para promulgá-los, o próprio systemd cria processos filhos que fazem as chamadas relevantes do sistema.
Se você usar o systemctlcomando (with --all) nesse sistema operacional systemd, ele informará sobre o carregamento.swap unidades . Por exemplo:
dev-disk-by \ x2dpartuuid-40549710 \ x2d05.swap ativo ativo carregado / dev / disk / by-partuuid / 40549710-05
Dev-disk-by \ x2duuid-1bb589e8 \ x2d929f \ x2d4041 \ x2d81f4 \ x2dff2b339b4e2a.swap ativo carregado / dev / disk / by-uuid / 1bb589e8-929f-4041-81f4-ff2b339
dev-sda5.swap ativo carregado / dev / sda5
Ele também informará sobre as .mountunidades.
Um administrador do sistema pode realmente escrever esses .swaparquivos de unidade à mão, assim como xe pode escrever .service, .sockete outros arquivos de unidade com a mão. O systemd em si apenas procura por arquivos de unidade no sistema de arquivos. Eles são seu mecanismo nativo.
Pode-se até fazer com que systemd mostre o que há nesses arquivos de unidade e onde eles podem ser encontrados no sistema de arquivos:
$ systemctl cat dev-disk-by \\ x2duuid-1bb589e8 \\ x2d929f \\ x2d4041 \\ x2d81f4 \\ x2dff2b339b4e2a.swap
# /run/systemd/generator/dev-disk-by\x2duuid-1bb589e8\x2d929f\x2d4041\x2d81f4\x2dff2b339b4e2a.swap
# Gerado automaticamente pelo systemd-fstab-generator
[Unidade]
SourcePath = / etc / fstab
Documentação = man: fstab (5) man: systemd-fstab-generator (8)
[Troca]
O que = / dev / disk / by-uuid / 1bb589e8-929f-4041-81f4-ff2b339b4e2a
Opções = sw
$
arquivos de unidade gerados automaticamente
Pode-se escrevê-los à mão. Geralmente, porém, esses arquivos .mounte .swapunidades são gerados automaticamente por programas conhecidos como geradores . Dois desses geradores são systemd-fstab-generatore systemd-gpt-auto-generator. Ambos são executados no início do processo de auto-inicialização e em resposta a um systemctl daemon-reloadcomando e (como você pode ver acima) geram uma carga inteira de arquivos de unidade em um subdiretório não documentado no Windows /run/systemd/. O próprio systemd usa apenas os arquivos de unidade gerados .
O gerador anterior lê /etc/fstab, reconhecendo várias extensões systemd para esse formato de arquivo. Como apontei em um comentário de resposta, tradicionalmente as partições de troca têm o tipo de montagemsw e é assim que alguém descobrirá que outros sistemas operacionais reconhecem registros de troca nesta tabela. Mas os softwares Linux adotaram o caminho alternativo de reconhecer o tipo VFS , procurando swapcomo o tipo VFS. systemd-fstab-generatornão é uma exceção aqui, e é assim que ele interpreta /etc/fstabao convertê-lo nos mecanismos nativos.
O último gerador processa a tabela de partição EFI que está no mesmo disco que contém a Partição do Sistema EFI, procurando entradas da tabela de partição EFI que possuem vários GUIDs do tipo de partição conhecidos . Um desses GUIDs é o GUID convencional atribuído às partições de troca do Linux; e se systemd-gpt-auto-generatorencontrar uma partição com esse GUID (que satisfaça os critérios fornecidos no systemd doco), fará uma .swapunidade para ele; não está /etc/fstabenvolvido .
Obviamente, esse processo tem muitos efeitos colaterais. Por exemplo, como /etc/fstabnão possui chave primária na tabela, os registros podem ter campos "spec" e "file" duplicados (ou seja, "what" e "where"). No mecanismo systemd nativo, no entanto, o campo "arquivo" (ou seja, "onde") é uma chave exclusiva para .mountunidades, incorporada aos nomes das unidades. Duas .mountunidades não podem compartilhá-lo. Para .swapunidades, o campo "spec" (ou seja, "what") é a chave exclusiva para unidades. Não há duas .swapunidades que possam compartilhar isso. Portanto, nem todos os registros /etc/fstabsão necessariamente conversíveis nos mecanismos nativos e funcionarão, especialmente se as pessoas fizerem coisas como listar o mesmo ponto de montagem para dois propósitos diferentes ou listar a mesma partição de troca de duas maneiras diferentes.
Da mesma forma, como foi traduzido /etc/fstabpara o mecanismo nativo e o mecanismo nativo do systemd possui outras maneiras de ativar unidades , o comportamento é sutilmente diferente daquele dos sistemas operacionais que não são do systemd. Por .mountpadrão, uma unidade será ativada automaticamentesystemd-udevd , mesmo após a inicialização, em resposta à aparência do dispositivo de armazenamento montado. Ou pode ser listado como um Wants=ou Requires=de alguns .serviceou .socketunidade, o que significa que será (re) ativado quando estiver. Existe até RequiresMountsFor=.
programas instaladores e a maneira systemd
Tradicionalmente, os programas de instalação do sistema operacional e o administrador do sistema após a reconfiguração do sistema têm swentradas gravadas no /etc/fstab. E é assim que o nativo .mounte as .swapunidades acabam sendo gerados automaticamente. O utilitário de instalação / configuração "sabe" onde o arquivo de troca foi colocado, porque em sua interface com o usuário o administrador do sistema fez algum tipo de escolha e grava uma /etc/fstabcorrespondência. Às vezes, essa opção é que preciso que você me faça uma partição de troca como parte da instalação. ; às vezes é apenas use a partição swap que você já encontrou no disco. (instaladores olhando para os tipos de partição também).
Mas as pessoas do sistema têm essa idéia de sistemas operacionais que se configuram automaticamente a partir de uma /etcárvore em grande parte vazia , os chamados sistemas sem estado , e é isso que mecanismos como o gerador que lê a tabela de partições EFI. No plano das pessoas do sistema, não existem /etc/fstabe, de fato, não existem dados de configuração persistentes /etc, e todo esse material é deduzido do conteúdo da tabela de partições em disco , a cada inicialização e a qualquer momento systemctl daemon-reload. Atualmente, eles estão promovendo programas de instalação de sistemas operacionais do/etc/fstab que os que não escrevem .
No esquema tradicional, é claro que você pode realmente ter cada sistema operacional com sua própria partição de troca privada, e não fazer com que eles toquem nas partições de troca um do outro. E, de fato, se você estiver usando o hibernate em disco por meio de uma partição de swap e esperando poder fazer a inicialização múltipla em outro sistema operacional enquanto hibernado (o que é uma péssima idéia, porque é muito fácil causar corrupção no sistema de arquivos dessa maneira ), isso será necessário.
No esquema systemd, mesmo que o sistema operacional ainda não esteja como as pessoas do sistema o imaginam e "sem estado", os geradores mencionados anteriormente são executados; e, portanto, todas as partições de troca (no disco ESP / raiz) com o tipo de partição necessário são empregadas automaticamente por todos os sistemas operacionais systemd. Como eles compartilharão todas as partições de swap descobertas automaticamente, não é necessário criar uma partição de swap por sistema operacional instalado.
Leitura adicional