Parece que você está falando sobre o Debian.
Isso diz tudo, se você o tiver usando o sistema init tradicional. Especificamente:
O programa "/ sbin / init" é executado como o primeiro programa e executa o processo principal de inicialização. O Debian normalmente usa o esquema sysvinit tradicional com o pacote sysv-rc. Veja init (8), inittab (5) e "/usr/share/doc/sysv-rc/README.runlevels.gz" para a explicação exata. Esse processo principal de inicialização basicamente segue o seguinte.
O sistema Debian entra no nível de execução N (nenhum) para inicializar o sistema seguindo a descrição "/ etc / inittab".
O sistema Debian entra no nível de execução S para inicializar o sistema no modo de usuário único para concluir a inicialização do hardware, etc.
O sistema Debian entra em um dos níveis de execução multiusuário especificados (2 a 5) para iniciar os serviços do sistema.
O que acontece por nível de execução é que tudo /etc/rcX.d
é executado, em ordem alfabética, onde X
está o nível de execução.
Então, se você cd /etc/rcS.d
verá /etc/init.d
vários links simbólicos para , que começam com um número. O número está lá para determinar o pedido. Os que começam com S
são executados quando o nível de execução é inserido e os que começam com K
são executados quando o nível de execução é encerrado. O nível de execução "S" é usado apenas para inicialização, portanto, não há K
links lá.
Tome cuidado aqui se você modificar ou renomear qualquer coisa. Teste seus scripts antes de submeter-se a um processo de inicialização.
Ok, vamos tentar responder à pergunta agora, com as informações acima, conforme o necessário.
No Debian, /etc/rc.S/S11mountall.sh
é onde o crucial "montar tudo no fstab" acontece. No entanto, fstab
é consultado para montar o sistema de arquivos raiz em /etc/rc.S/S07checkroot.sh
.
Se você fstab
montar automaticamente um novo /etc
, tudo dentro /etc/rc.S/S12*
e mais alto estará usando o /etc
volume "overlay". No entanto, você precisa de um válido /etc/fstab
no volume raiz naquele momento com antecedência.
Outras coisas que /etc
são consultadas incluem /etc/hostname
, possivelmente algumas coisas relacionadas a udev
(o que é extremamente importante). Você precisa olhar para todos os scripts /etc/rc.S/S11*
e para saber exatamente. Se você realmente não quer nada /etc
até que seja montado a partir de uma partição externa, você está olhando para modificar esses scripts. Provavelmente não será tão simples quanto mudar a ordem de /etc/rc.S/S12mountall.sh
, por exemplo /etc/rc.S/S00mountall.sh
, mas é possível adicionar um novo script que é trazido /etc
de uma partição externa anteriormente.
Você pode usar o mount --bind
comando Linux para montar o original do volume raiz em /etc
algum lugar (como /etc_from_rootfs
) para copiá-lo quando fizer alterações fstab
ou outros arquivos consultados anteriormente /etc/rc.S/S12mountall.sh
.
O kernel do Linux não faz o que o Windows faz, que é usar e exigir a presença do registro antes e durante a inicialização. O próprio kernel inicializa bem (mas não é terrivelmente utilizável em 99% das instâncias) sem /etc
, mas cabe aos programas de espaço de usuário chamados após (começando com init
), que depois observam /etc
, para preparar um ambiente de usuário decente.
Parece complicado? É por isso que é provável que ouvir @MattDMo seja prudente.
/etc/fstab
para nada. São os initramfs que são montados/
(e frequentemente/usr
), e o init executado a partir das/
montagens é o restante.