Por que é descompactar a imagem rootfs como initramfs lenta

2

Eu tenho uma nova instalação do gentoo e a única etapa de inicialização que leva tempo é aquela que diz:

Trying to unpack rootfs image as initramfs...

Demora cerca de 10 segundos no momento da inicialização. Eu tentei ler no initramfs para descobrir por que este passo leva mais tempo, mas ainda assim tudo é muito enigmático para mim. Eu tenho um initramfs na minha partição de inicialização:

~ $ cd /boot/
malcolm@Host-002 /boot $ ls
grub                                       lost+found
initramfs-genkernel-x86_64-4.12.12-gentoo  System.map-genkernel-x86_64-4.12.12-gentoo
kernel-genkernel-x86_64-4.12.12-gentoo

grub2-mkconfig -o /boot/grub/grub.cfg encontrou o initramfs-genkernel e está no meu /boot/grub/grub.cfg :

menuentry 'Gentoo GNU/Linux' --class gentoo --class gnu-linux --class gnu --class os $menuent$
        load_video
        if [ "x$grub_platform" = xefi ]; then
                set gfxpayload=keep
        fi
    insmod gzio
        insmod part_gpt
        insmod ext2
        set root='hd0,gpt2'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --$
        else
          search --no-floppy --fs-uuid --set=root 80e1a69b-be52-4845-a6c7-4f7e8353bc1e
        fi
    echo    'Loading Linux x86_64-4.12.12-gentoo ...'
        linux   /kernel-genkernel-x86_64-4.12.12-gentoo root=UUID=2eb28949-50a7-4178-9d0a-309$
        echo    'Loading initial ramdisk ...'
        initrd  /initramfs-genkernel-x86_64-4.12.12-gentoo
}

Estou confuso sobre o que unpacking roots image as initramfs significa. Como o initramfs é necessário para carregar as ferramentas necessárias para carregar o sistema, achei que meu sistema descompactaria o initramfs-genkernel na minha partição de inicialização. O que é essa imagem rootfs?

Eu sei que é tudo muito confuso como uma pergunta, mas eu também sou, e qualquer sugestão sobre como fazer melhor será muito apreciada.

EDITAR:

/var/log/dmesg em torno do ponto real com o initramfs

[    0.275512] pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7 window]
[    0.275514] pci_bus 0000:00: resource 5 [io  0x0d00-0xffff window]
[    0.275515] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff window]
[    0.275516] pci_bus 0000:00: resource 7 [mem 0xd0000000-0xfebfffff window]
[    0.275517] pci_bus 0000:00: resource 8 [mem 0xfed40000-0xfed4bfff window]
[    0.275518] pci_bus 0000:03: resource 0 [io  0x2000-0x2fff]
[    0.275519] pci_bus 0000:03: resource 1 [mem 0xd0100000-0xd02fffff]
[    0.275520] pci_bus 0000:03: resource 2 [mem 0xd0300000-0xd04fffff 64bit pref]
[    0.275521] pci_bus 0000:04: resource 1 [mem 0xf1000000-0xf10fffff]
[    0.275611] NET: Registered protocol family 2
[    0.275839] TCP established hash table entries: 65536 (order: 7, 524288 bytes)
[    0.276037] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
[    0.276238] TCP: Hash tables configured (established 65536 bind 65536)
[    0.276353] UDP hash table entries: 4096 (order: 5, 131072 bytes)
[    0.276455] UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes)
[    0.276597] NET: Registered protocol family 1
[    0.276691] pci 0000:00:02.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff]
[    0.277288] PCI: CLS 64 bytes, default 64
[    0.277324] Trying to unpack rootfs image as initramfs...
[    5.396096] Freeing initrd memory: 38272K
[    5.396183] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    5.396270] software IO TLB [mem 0xba0af000-0xbe0af000] (64MB) mapped at [ffff918efa0af000$
[    5.396465] RAPL PMU: API unit is 2^-32 Joules, 4 fixed counters, 655360 ms ovfl timer
[    5.396587] RAPL PMU: hw unit of domain pp0-core 2^-14 Joules
[    5.396670] RAPL PMU: hw unit of domain package 2^-14 Joules
[    5.396752] RAPL PMU: hw unit of domain dram 2^-14 Joules
[    5.396835] RAPL PMU: hw unit of domain pp1-gpu 2^-14 Joules
[    5.397284] audit: initializing netlink subsys (disabled)
[    5.397435] audit: type=2000 audit(1513038122.396:1): state=initialized audit_enabled=0 re$
[    5.397762] Initialise system trusted keyrings
[    5.397883] workingset: timestamp_bits=46 max_order=21 bucket_order=0
[    5.398161] SELinux:  Registering netfilter hooks
[    5.398739] Key type asymmetric registered

Mesmo que o log diga 5 seg, o tempo real que vejo na inicialização e que eu enviei é de cerca de 10 segundos: /

    
por Malcolm 23.12.2017 / 15:05

1 resposta

0

Descompactar um arquivo depende de duas coisas (imho):

  1. algoritmo em uso
  2. tamanho dos arquivos no arquivo

Por isso, na minha opinião, o seu disco de inicialização é muito grande.

Para acelerar o processo, você pode tentar minimizar o tamanho e brincar com os vários algoritmos de arquivamento suportados para ver o que funciona melhor para sua configuração.

Para mim, é um kernel mínimo compactado com o LZ4 sem o initdisk. Com isso eu alcancei 0.9s do grub para o sysv init no hp envy 14 (e apd no 1.8GHZ) Se você estiver interessado, ao otimizar seu processo, você pode encontrar um ótimo guia para minimizar o kernel e o disco de inicialização tamanho aqui link

    
por 09.01.2018 / 16:56