Esta versão do LFS usa um aparato especial de inicialização chamado SysVinit, baseado em uma série de níveis de execução. O procedimento de inicialização pode ser bem diferente de um sistema para outro; o fato de que as coisas funcionam de uma maneira em uma distribuição específica do Linux não garante que elas funcionarão da mesma forma no LFS. O LFS tem a própria maneira de fazer as coisas, mas ele respeita os padrões geralmente aceitos.
Existe um procedimento alternativo de inicialização chamado systemd. Nós não mais discutiremos esse processo de inicialização aqui. Para uma descrição detalhada, visite-se https://www.linux.com/training-tutorials/understanding-and-using-systemd/.
SysVinit (o qual será referido como “init” daqui pra frente) usa um esquema de níveis de execução. Existem sete níveis de execução, numerados de 0 a 6. (Atualmente, existem mais níveis de execução, mas os outros são para casos especiais e geralmente não são usados. Veja-se init(8) para mais detalhes). Cada um dos sete corresponde às ações que o computador é suposto realizar quando ele inicia ou desliga. O nível de execução padrão é o 3. Aqui estão as descrições dos diferentes níveis de execução conforme eles estão implementados no LFS:
            0: parar o computador
            1: Modo de usuário(a) único(a)
            2: Reservado para personalização, do contrário faz o mesmo que 3
            3: Modo de multiusuário(a), com rede de comunicação
            4: Reservado para personalização, do contrário faz o mesmo que 3
            5: Mesmo que 4, ele é usado usualmente para login GUI (como o gdm do GNOME ou o lxdm do LXDE)
            6: reinicializar o computador
          
          Classicamente, o nível de execução 2 acima era definido como “modo de multiusuário(a), sem rede de comunicação”, porém isso somente foi o caso muitos anos atrás quando múltiplos(as) usuários(as) podiam se conectar a um sistema via portas seriais. No ambiente da atualidade isso não faz sentido e agora nós dizemos que ele está “reservado”.
          Durante a inicialização do núcleo, o primeiro aplicativo que é
          executado (se não substituído na linha de comando) é o init. Esse aplicativo lê o
          arquivo de inicialização /etc/inittab. Crie esse arquivo com:
        
cat > /etc/inittab << "EOF"
# Inicia /etc/inittab
id:3:initdefault:
si::sysinit:/etc/rc.d/init.d/rc S
l0:0:wait:/etc/rc.d/init.d/rc 0
l1:S1:wait:/etc/rc.d/init.d/rc 1
l2:2:wait:/etc/rc.d/init.d/rc 2
l3:3:wait:/etc/rc.d/init.d/rc 3
l4:4:wait:/etc/rc.d/init.d/rc 4
l5:5:wait:/etc/rc.d/init.d/rc 5
l6:6:wait:/etc/rc.d/init.d/rc 6
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
su:S06:once:/sbin/sulogin
s1:1:respawn:/sbin/sulogin
1:2345:respawn:/sbin/agetty --noclear tty1 9600
2:2345:respawn:/sbin/agetty tty2 9600
3:2345:respawn:/sbin/agetty tty3 9600
4:2345:respawn:/sbin/agetty tty4 9600
5:2345:respawn:/sbin/agetty tty5 9600
6:2345:respawn:/sbin/agetty tty6 9600
# Termina /etc/inittab
EOF
        
          Uma explicação desse arquivo de inicialização está na página de
          manual para inittab. No LFS,
          o comando chave é rc.
          O arquivo de inicialização acima instrui rc a executar todos os conjuntos
          de comandos sequenciais começando com um S no diretório
          /etc/rc.d/rcS.d seguido por todos os
          conjuntos de comandos sequenciais começando com um S no diretório
          /etc/rc.d/rc?.d onde o ponto de
          interrogação é especificado pelo valor de initdefault.
        
          Como uma conveniência, o conjunto de comando sequenciais
          rc lê uma biblioteca
          de funções em /lib/lsb/init-functions. Essa biblioteca também
          lê um arquivo de configuração opcional, /etc/sysconfig/rc.site. Quaisquer dos parâmetros
          de configuração do sistema descritos em seções subsequentes podem
          ser colocados nesse arquivo, permitindo a consolidação de todos os
          parâmetros do sistema nesse único arquivo.
        
          Como uma conveniência de depuração, o conjunto de comandos
          sequenciais de funções também registra todas as saídas geradas em
          /run/var/bootlog. Dado que o
          diretório /run é um tmpfs, esse
          arquivo não é persistente ao longo de inicializações; entretanto,
          ele é adicionado ao arquivo mais permanente /var/log/boot.log ao final do processo de
          inicialização.
        
            A mudança de níveis de execução é feita com init <nível de
            execução>, onde <nível de execução> é o
            nível de execução alvo. Por exemplo, para reinicializar o
            computador, um(a) usuário(a) poderia emitir o comando
            init 6, o qual é um
            apelido para o comando reboot. Da mesma forma,
            init 0 é um apelido
            para o comando halt.
          
            Existe um número de diretórios sob /etc/rc.d que se parecem com rc?.d (onde ? é o número do nível de execução)
            e rcS.d, todos contendo um número
            de links simbólicos. Alguns links começam com um K; os outros começam com um
            S, e todos eles tem dois
            números seguindo a letra inicial. O K significa parar (kill) um
            serviço e o S significa iniciar um serviço. Os números determinam
            a ordem na qual os conjuntos de comandos sequenciais são
            executados, de 00 a 99—quanto menor o número, mais cedo o
            conjunto de comandos sequenciais executa. Quando init comuta para outro nível de
            execução, os serviços adequados são tanto iniciados quanto
            parados, dependendo do nível de execução escolhido.
          
            Os conjuntos reais de comandos sequenciais estão em /etc/rc.d/init.d. Eles fazem o trabalho atual e
            os links simbólicos todos apontam para eles. Os links K e os
            links S apontam para o mesmo conjunto de comandos sequenciais em
            /etc/rc.d/init.d. Isso é porque os
            conjuntos de comandos sequenciais podem ser chamados com
            parâmetros diferentes como start, stop, restart, reload e status. Quando um link K é
            encontrado, o conjunto de comandos sequenciais apropriado é
            executado com o argumento stop. Quando um link S é
            encontrado, o conjunto de comandos sequenciais apropriado é
            executado com o argumento start.
          
Estas são descrições do que os argumentos fazem os conjuntos de comandos sequenciais fazer:
start
              O serviço é iniciado.
stop
              O serviço é parado.
restart
              O serviço é parado e então iniciado novamente.
reload
              A configuração do serviço é atualizada. Isso é usado depois que o arquivo de configuração de um serviço foi modificado, quando o serviço não precisa ser reiniciado.
status
              Diz se o serviço está executando e com quais PIDs.
Sinta-se livre para modificar a maneira como o processo de inicialização funciona (afinal de contas, este é seu próprio sistema LFS). Os arquivos dados aqui são um exemplo de como isso pode ser feito.
          O conjunto de comandos sequenciais de iniciação /etc/rc.d/init.d/udev inicia o udevd, aciona quaisquer
          dispositivos "plugue frio" que já tenham sido criados pelo núcleo e
          aguarda por quaisquer regras para completar. O conjunto de comandos
          sequenciais também desconfigura o manuseador do uevent oriundo do
          padrão do /sbin/hotplug. Isso é
          feito, pois o núcleo não mais precisa chamar um binário externo. Em
          vez disso, o udevd
          escutará em um soquete de link de rede os uevents que o núcleo
          gera.
        
          O conjunto de comandos sequenciais /etc/rc.d/init.d/udev_retry se
          ocupa de redeflagrar eventos para subsistemas cujas regras
          possivelmente dependam de sistemas de arquivos que não estão
          montados até que o conjunto de comandos sequenciais mountfs seja executado (em
          particular, /usr e /var possivelmente causem isso). Esse conjunto de
          comandos sequenciais executa depois do conjunto de comandos
          sequenciais mountfs,
          de forma que aquelas regras (se redeflagradas) deveriam prosperar
          na segunda vez. Ele é configurado pelo arquivo /etc/sysconfig/udev_retry; quaisquer palavras
          nesse arquivo outras que comentários são consideradas nomes de
          subsistema para acionar ao tempo de retentativa. Para encontrar o
          subsistema de um dispositivo, use udevadm info --attribute-walk
          <dispositivo>, onde <dispositivo> é um
          caminho absoluto em /dev ou /sys, tais como /dev/sr0 ou
          /sys/class/rtc.
        
Para informação acerca de carregamento de módulo do núcleo e udev, veja-se Seção 9.3.2.3, “Carregamento de Módulo.”
          O conjunto de comandos sequenciais setclock lê a hora a partir do
          relógio do hardware, também conhecido como relógio do BIOS ou do
          Complementary Metal Oxide Semiconductor (CMOS). Se o relógio do
          hardware estiver configurado para UTC, esse conjunto de comandos
          sequenciais converterá a hora do relógio do hardware para a hora
          local usando o arquivo /etc/localtime
          (o qual diz ao aplicativo hwclock qual fuso horário usar).
          Não existe maneira de detectar se o relógio do hardware está ou não
          configurado para UTC, de forma que isso precisa ser configurado
          manualmente.
        
O programa setclock é executado via udev quando o núcleo detecta o recurso do hardware em consequência da inicialização. Ele também pode ser executado manualmente com o parâmetro pare para armazenar a hora do sistema para o relógio do CMOS.
          Se você não conseguir lembrar se o relógio do hardware está ou não
          configurado para UTC, descubra executando o comando hwclock --localtime --show. Isso
          mostrará o que é a hora atual de acordo com o relógio do hardware.
          Se essa hora corresponder à que o seu relógio diz, então o relógio
          do hardware está configurado para hora local. Se a saída gerada
          originária do hwclock
          não for a hora local, as chances são as de que ele esteja
          configurado para hora UTC. Verifique isso adicionando ou subtraindo
          a número apropriado de horas para o seu fuso horário à (da) hora
          mostrada pelo hwclock. Por exemplo, se você
          estiver atualmente no fuso horário MST, o qual é conhecido também
          como GMT -0700, adicione sete horas à hora local.
        
          Mude o valor da variável UTC abaixo para
          um valor de 0 (zero) se o
          relógio do hardware NÃO
          estiver configurado para hora UTC.
        
          Crie um novo arquivo /etc/sysconfig/clock executando o seguinte:
        
cat > /etc/sysconfig/clock << "EOF"
# Inicia /etc/sysconfig/clock
UTC=1
# Configure isto para quaisquer opções que você pudesse precisar dar para hwclock,
# tais como tipo do relógio de hardware de máquina para Alphas.
CLOCKPARAMS=
# Termina /etc/sysconfig/clock
EOF
        
          Uma boa dica explicando como lidar com hora no LFS está disponível
          em https://www.linuxfromscratch.org/hints/downloads/files/time.txt.
          Ela explica problemas como fusos horários, UTC e a variável de
          ambiente TZ.
        
          
            Os parâmetros CLOCKPARAMS e UTC também possivelmente sejam
            configurados no arquivo /etc/sysconfig/rc.site.
          
          Esta seção discute como configurar o conjunto de comandos
          sequenciais de inicialização console que configura o mapa de
          teclado, fonte do console e nível de registro do núcleo do console.
          Se caracteres não-ASCII (por exemplo, o sinal de direitos autorais,
          o sinal da libra britânica e o símbolo do Euro) não serão usados e
          o teclado for um dos Estados Unidos da América do Norte, muito
          desta seção pode ser pulada. Sem o arquivo de configuração, (ou
          configurações equivalentes em rc.site), o conjunto de comandos sequenciais de
          inicialização console
          não fará nada.
        
          O conjunto de comandos sequenciais console lê o arquivo /etc/sysconfig/console para informação de
          configuração. Decida qual mapa de teclas e fonte de tela serão
          usados. Vários HOWTOs específicos de idiomas também podem ajudar
          com isso; veja-se https://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html.
          Se ainda em dúvida, olhe nos diretórios /usr/share/keymaps e /usr/share/consolefonts para mapas de teclas
          válidos e fontes de tela. Leiam-se as páginas de manual loadkeys(1) e
          setfont(8) para
          determinar os argumentos corretos para esses aplicativos.
        
          O arquivo /etc/sysconfig/console
          deveria conter linhas da forma: VARIÁVEL=valor. As seguintes variáveis são
          reconhecidas:
        
                Essa variável especifica o nível de registro para mensagens
                do núcleo enviadas para o console, conforme configurado por
                dmesg -n.
                Níveis válidos são de 1 (sem
                mensagens) até 8. O nível padrão
                é 7, que é bastante verboso.
              
                Essa variável especifica os argumentos para o programa
                loadkeys,
                tipicamente, o nome do mapa de teclas a carregar, por
                exemplo, it. Se essa variável
                não estiver configurada, o conjunto de comandos sequenciais
                de inicialização não executará o programa loadkeys e o mapa padrão de
                teclas do núcleo será usado. Observe que uns poucos mapas de
                teclas tem múltiplas versões com o mesmo nome (cz e variantes
                dele em qwerty/ e qwertz/; es em olpc/ e qwerty/; e trf em
                fgGIod/ e qwerty/). Nesses casos, o diretório ancestral
                também deveria ser especificado (por exemplo, qwerty/es) para
                garantir que o mapa de teclas adequado seja carregado.
              
                Essa (raramente usada) variável especifica os argumentos para
                a segunda chamada ao programa loadkeys. Isso é útil se o
                mapa padrão de teclas não for completamente satisfatório e um
                pequeno ajuste tenha que ser feito. Por exemplo, para incluir
                o símbolo do Euro em um mapa de teclas que normalmente não o
                tem, configure essa variável para euro2.
              
                Essa variável especifica os argumentos para o programa
                setfont.
                Tipicamente, isso inclui o nome da fonte, -m, e o nome do mapa de caracteres de
                aplicação a carregar. Por exemplo, para a finalidade de
                carregar a fonte “lat1-16” juntamente com o mapa de
                caracteres de aplicação “8859-1” (apropriado nos Estados Unidos
                da América do Norte), configure essa variável para
                lat1-16 -m 8859-1. Em modo
                UTF-8, o núcleo usa o mapa de caracteres de aplicação para
                converter os códigos de tecla de 8 bits para UTF-8. Dessa
                maneira, o argumento do parâmetro -m deveria ser configurado
                para a codificação dos códigos compostos de tecla no mapa de
                teclas.
              
                Configure essa variável para 1,
                yes ou true para a finalidade de colocar o console
                em modo UTF-8. Isso é útil em localidades baseadas em UTF-8 e
                danoso em outras.
              
Para muitos esquemas de teclado, não existe mapa padrão de teclado Unicode no pacote Kbd. O conjunto de comandos sequenciais de inicialização console converterá um mapa de teclas disponível para UTF-8 em tempo real se essa variável estiver configurada para a codificação do mapa disponível de teclas não-UTF-8.
Alguns exemplos:
                Usaremos C.UTF-8 como localidade
                para sessões interativas no console do Linux na Seção 9.7,
                “Configurando a Localidade do Sistema,” de forma que
                deveríamos configurar UNICODE
                para 1. E as fontes do console
                enviadas pelo pacote Kbd
                contendo os glifos para todos os caracteres provenientes das
                mensagens do aplicativo na localidade C.UTF-8 são LatArCyrHeb*.psfu. gz, LatGrkCyr*.psfu.gz, Lat2-Terminus16.psfu.gz e pancyrillic.f16.psfu.gz em /usr/share/consolefonts (as outras fontes
                de console fornecidas carecem de glifos de alguns caracteres,
                como as aspas esquerda/direita do Unicode e o travessão do
                Unicode em inglês). Portanto, configure uma delas, por
                exemplo Lat2-Terminus16.psfu.gz
                como fonte padrão do console:
              
cat > /etc/sysconfig/console << "EOF"
# Inicia /etc/sysconfig/console
UNICODE="1"
FONT="Lat2-Terminus16"
# Termina /etc/sysconfig/console
EOF
            Para uma configuração não Unicode, somente as variáveis KEYMAP e FONT geralmente são necessárias. Por exemplo, para uma configuração em polonês, alguém usaria:
cat > /etc/sysconfig/console << "EOF"
# Inicia /etc/sysconfig/console
KEYMAP="pl2"
FONT="lat2a-16 -m 8859-2"
# Termina /etc/sysconfig/console
EOF
            Como mencionado acima, às vezes é necessário ajustar um mapa padrão de teclas um pouco. O exemplo seguinte adiciona o símbolo do Euro ao mapa de teclas alemão:
cat > /etc/sysconfig/console << "EOF"
# Inicia /etc/sysconfig/console
KEYMAP="de-latin1"
KEYMAP_CORRECTIONS="euro2"
FONT="lat0-16 -m 8859-15"
UNICODE="1"
# Termina /etc/sysconfig/console
EOF
            O seguinte é um exemplo habilitado para Unicode para búlgaro, onde um mapa padrão de teclas UTF-8 existe:
cat > /etc/sysconfig/console << "EOF"
# Inicia /etc/sysconfig/console
UNICODE="1"
KEYMAP="bg_bds-utf8"
FONT="LatArCyrHeb-16"
# Termina /etc/sysconfig/console
EOF
            Devido ao uso de uma fonte LatArCyrHeb-16 de 512 glifos no exemplo anterior, cores brilhantes não mais estão disponíveis no console do Linux, a menos que um framebuffer seja usado. Se alguém quiser ter cores brilhantes sem um framebuffer e puder viver sem caracteres não pertencentes ao idioma dele(a), ainda é possível usar uma fonte de 256 glifos específica para o idioma, conforme ilustrado abaixo:
cat > /etc/sysconfig/console << "EOF"
# Inicia /etc/sysconfig/console
UNICODE="1"
KEYMAP="bg_bds-utf8"
FONT="cyr-sun16"
# Termina /etc/sysconfig/console
EOF
            O seguinte exemplo ilustra conversão automática de mapa de teclas de ISO-8859-15 para UTF-8 e habilitação de teclas mortas em modo Unicode:
cat > /etc/sysconfig/console << "EOF"
# Inicia /etc/sysconfig/console
UNICODE="1"
KEYMAP="de-latin1"
KEYMAP_CORRECTIONS="euro2"
LEGACY_CHARSET="iso-8859-15"
FONT="LatArCyrHeb-16 -m 8859-15"
# Termina /etc/sysconfig/console
EOF
            Alguns mapas de teclas tem teclas mortas (isto é, teclas que não produzem um carácter por elas próprias, mas põem um acento no carácter produzido pela próxima tecla) ou definem regras de composição (tais como: “pressione Ctrl+. A E para obter Æ” no mapa de teclas padrão). O Linux-6.16.1 interpreta teclas mortas e regras de composição no mapa de teclas corretamente somente quando os caracteres fonte a serem compostos juntos não são multi byte. Essa deficiência não afeta mapas de teclas para idiomas europeus, pois lá acentos são adicionados a caracteres ASCII não acentuados, ou dois caracteres ASCII são compostos juntos. Entretanto, em modo UTF-8 isso é um problema; por exemplo, para o idioma grego, onde alguém de vez em quando precisa colocar um acento na letra α. A solução é a de, ou evitar o uso de UTF-8, ou instalar o sistema de janelas X, que não tem essa limitação no manuseio de entradas geradas dele.
Para chinês, japonês, coreano e alguns outros idiomas, o console do Linux não pode ser configurado para exibir os caracteres necessários. Usuários(as) que precisam de tais idiomas deveriam instalar o Sistema de Janelas X, fontes que cobrem os intervalos necessários de caracteres, e o método de entrada adequado (por exemplo, SCIM, suporta uma ampla variedade de idiomas).
          
            O arquivo /etc/sysconfig/console
            somente controla a localização do console de texto do Linux. Ele
            não tem nada a ver com configurar o esquema adequado de teclado e
            fontes de terminal no Sistema de Janelas X; com sessões do ssh;
            ou com um console serial. Em tais situações, as limitações
            mencionadas nos últimos dois itens de lista acima não se aplicam.
          
          De vez em quando, é desejável criar arquivos em tempo de
          inicialização. Por exemplo, o diretório /tmp/.ICE-unix frequentemente é necessário. Isso
          pode ser feito criando-se uma entrada no conjunto de comandos
          sequenciais de configuração /etc/sysconfig/createfiles. O formato desse
          arquivo está embutido nos comentários do arquivo padrão de
          configuração.
        
          O conjunto de comandos sequenciais sysklogd invoca o aplicativo syslogd como uma parte da
          inicialização do System V. A opção -m
          0 desliga a marca periódica de carimbo de tempo que o
          syslogd escreve nos
          arquivos de registro a cada 20 minutos por padrão. Se você quiser
          ligar essa marca periódica de carimbo de tempo, edite /etc/sysconfig/rc.site e defina a variável
          SYSKLOGD_PARMS para o valor desejado. Por exemplo, para remover
          todos os parâmetros, configure a variável para um valor nulo:
        
SYSKLOGD_PARMS=
          Veja-se man syslogd
          para mais opções.
        
          O arquivo opcional /etc/sysconfig/rc.site contém configurações que
          são automaticamente configuradas para cada conjunto de comandos
          sequenciais de inicialização do SystemV. Ele pode alternativamente
          configurar os valores especificados nos arquivos hostname, console e
          clock no diretório /etc/sysconfig/. Se as variáveis associadas
          estiverem presentes em ambos desses arquivos separados e
          rc.site, os valores nos arquivos
          específicos de conjunto de comandos sequenciais tem precedência.
        
          rc.site também contém parâmetros que
          podem personalizar outros aspectos do processo de inicialização.
          Configurar a variável IPROMPT habilitará a execução seletiva de
          conjuntos de comandos sequenciais de inicialização. Outras opções
          estão descritas nos comentários de arquivo. A versão padrão do
          arquivo é como se segue:
        
# rc.site
# Optional parameters for boot scripts.
# Distro Information
# These values, if specified here, override the defaults
#DISTRO="Linux From Scratch" # The distro name
#DISTRO_CONTACT="lfs-dev@lists.linuxfromscratch.org" # Bug report address
#DISTRO_MINI="LFS" # Short name used in filenames for distro config
# Define custom colors used in messages printed to the screen
# Please consult `man console_codes` for more information
# under the "ECMA-48 Set Graphics Rendition" section
#
# Warning: when switching from a 8bit to a 9bit font,
# the linux console will reinterpret the bold (1;) to
# the top 256 glyphs of the 9bit font.  This does
# not affect framebuffer consoles
# These values, if specified here, override the defaults
#BRACKET="\\033[1;34m" # Blue
#FAILURE="\\033[1;31m" # Red
#INFO="\\033[1;36m"    # Cyan
#NORMAL="\\033[0;39m"  # Grey
#SUCCESS="\\033[1;32m" # Green
#WARNING="\\033[1;33m" # Yellow
# Use a colored prefix
# These values, if specified here, override the defaults
#BMPREFIX="      "
#SUCCESS_PREFIX="${SUCCESS}  *  ${NORMAL} "
#FAILURE_PREFIX="${FAILURE}*****${NORMAL} "
#WARNING_PREFIX="${WARNING} *** ${NORMAL} "
# Manually set the right edge of message output (characters)
# Useful when resetting console font during boot to override
# automatic screen width detection
#COLUMNS=120
# Interactive startup
#IPROMPT="yes" # Whether to display the interactive boot prompt
#itime="3"    # The amount of time (in seconds) to display the prompt
# The total length of the distro welcome string, without escape codes
#wlen=$(echo "Welcome to ${DISTRO}" | wc -c )
#welcome_message="Welcome to ${INFO}${DISTRO}${NORMAL}"
# The total length of the interactive string, without escape codes
#ilen=$(echo "Press 'I' to enter interactive startup" | wc -c )
#i_message="Press '${FAILURE}I${NORMAL}' to enter interactive startup"
# Set scripts to skip the file system check on reboot
#FASTBOOT=yes
# Skip reading from the console
#HEADLESS=yes
# Write out fsck progress if yes
#VERBOSE_FSCK=no
# Speed up boot without waiting for settle in udev
#OMIT_UDEV_SETTLE=y
# Speed up boot without waiting for settle in udev_retry
#OMIT_UDEV_RETRY_SETTLE=yes
# Skip cleaning /tmp if yes
#SKIPTMPCLEAN=no
# For setclock
#UTC=1
#CLOCKPARAMS=
# For consolelog (Note that the default, 7=debug, is noisy)
#LOGLEVEL=7
# For network
#HOSTNAME=mylfs
# Delay between TERM and KILL signals at shutdown
#KILLDELAY=3
# Optional sysklogd parameters
#SYSKLOGD_PARMS="-m 0"
# Console parameters
#UNICODE=1
#KEYMAP="de-latin1"
#KEYMAP_CORRECTIONS="euro2"
#FONT="lat0-16 -m 8859-15"
#LEGACY_CHARSET=
        
            Os conjuntos de comandos sequenciais de inicialização do LFS
            inicializam e desligam um sistema de uma maneira bastante
            eficiente, porém existem uns poucos ajustes que você pode fazer
            no arquivo rc.site para aumentar a velocidade ainda mais e
            ajustar mensagens de acordo com suas preferências. Para fazer
            isso, ajuste as configurações no arquivo /etc/sysconfig/rc.site acima.
          
                  Durante o conjunto de comandos sequenciais de inicialização
                  udev, existe uma chamada para
                  udev settle
                  que exige algum tempo para completar. Esse tempo
                  possivelmente ou possivelmente não seja exigido dependendo
                  dos dispositivos no sistema. Se você tiver somente
                  partições simples e uma placa ethernet, o processo de
                  inicialização provavelmente não precisará esperar por esse
                  comando. Para pulá-lo, configure a variável
                  OMIT_UDEV_SETTLE=y.
                
                  O conjunto de comandos sequenciais de inicialização
                  udev_retry também executa
                  udev settle
                  por padrão. Esse comando é necessário somente se o
                  diretório /var for montado
                  separadamente, pois o relógio precisa do arquivo
                  /var/lib/hwclock/adjtime.
                  Outras personalizações possivelmente também precisem
                  esperar que o Udev complete, porém em muitas instalações
                  ele não é necessário. Pule o comando configurando a
                  variável OMIT_UDEV_RETRY_SETTLE=y.
                
Por padrão, as verificações do sistema de arquivos são silenciosas. Isso pode parecer um atraso durante o processo de inicialização. Para ligar a saída gerada do fsck, configure a variável VERBOSE_FSCK=y.
                  Quando reinicializar, você possivelmente queira pular a
                  verificação do sistema de arquivos, fsck, completamente. Para
                  fazer isso, ou crie o arquivo /fastboot ou reinicialize o sistema com o
                  comando /sbin/shutdown -f -r
                  now. Por outro lado, você pode forçar que
                  todos os sistemas de arquivos sejam verificados criando
                  /forcefsck ou executando
                  shutdown com
                  o parâmetro -F em
                  vez de -f.
                
Configurar a variável FASTBOOT=y desabilitará fsck durante o processo de inicialização até que ela seja removida. Isso não é recomendado em uma base permanente.
                  Normalmente, todos os arquivos no diretório /tmp são deletados em tempo de
                  inicialização. Dependendo do número de arquivos ou
                  diretórios presentes, isso pode causar um atraso notável no
                  processo de inicialização. Para pular a remoção desses
                  arquivos configure a variável SKIPTMPCLEAN=y.
                
Durante o desligamento, o programa init envia um sinal TERM para cada programa que ele tenha iniciado (por exemplo agetty), espera um tempo configurado (padrão 3 segundos), então envia a cada processo um sinal KILL e aguarda novamente. Esse processo é repetido no conjunto de comandos sequenciais sendsignals para quaisquer processos que não sejam desligados pelos conjuntos próprios de comandos sequenciais deles. O atraso para init pode ser configurado passando-se um parâmetro. Por exemplo, para remover o atraso no init, passe o parâmetro -t0 quando desligar ou reinicializar (por exemplo /sbin/shutdown -t0 -r now). O atraso para o conjunto de comandos sequenciais sendsignals pode ser pulado configurando-se o parâmetro KILLDELAY=0.