[Risolto] Initramfs e dintorni...

Problemi e suggerimenti legati all'installazione di Arch Linux
Rispondi
Avatar utente
vda
Arciere Provetto
Messaggi: 576
Iscritto il: 13 febbraio 2011, 10:53

[Risolto] Initramfs e dintorni...

Messaggio da vda » 31 luglio 2018, 20:19

Ciao a tutti.

Ho da poco installato il sistema base di Arch Linux in VirtualBox simulando un ambiente UEFI con la ESP come partizione di /boot ed una partizione ext4 come partizione di root. Come boot loader utilizzo systemd-boot.

Ho anche provato a cancellare intenzionalmente /boot/initramfs-linux.img per capire se è realmente necessario l'initramfs per avviare il lernel, anche in una configirazione cosi basilare.

Ero difatti convinto che il kernel avesse built-in in sé i moduli (quindi i driver) per montare il file-system di root, avviare init e accedere ai moduli esterni in /usr/lib/modules.

Imvece ho ricevuto un errore dal kernel che reclama comunque il suo initramfs.

Questo significa che la creazione di un ram-fs ed il conseguentr montaggio in RAM del file-system di root temporaneo (con relativi moduli ) é uno step obbligato all'avvio?

8)
Ultima modifica di vda il 1 agosto 2018, 13:17, modificato 1 volta in totale.
Soltanto quando siamo in grado di dare possediamo veramente.
Tutto ciò che non siamo in grado di dare ci possiede. [André Gide]

Avatar utente
TheSaint
Robin Hood
Messaggi: 7511
Iscritto il: 8 settembre 2007, 7:43
Architettura: x86_64 (64bit)
Località: davanti al computer

Re: Initramfs e dintorni...

Messaggio da TheSaint » 1 agosto 2018, 2:55

Se studi come funziona il kernel, potrai anche scoprire come poter avviare senza initramfs. Bisogna sapere correttamente cosa serve al kernel già dall' inizio e compilare il kernel tutto compreso.
Se hai già queste esperienze allora vedrai che iniitramfs potrebbe non servire. Infine non capisco questa preoccupazione.
F the saint
11 anni da questo forum ;)

Avatar utente
vda
Arciere Provetto
Messaggi: 576
Iscritto il: 13 febbraio 2011, 10:53

Re: Initramfs e dintorni...

Messaggio da vda » 1 agosto 2018, 10:50

Nessuna preoccupazione, ci mancherebbe. É che mi piace capire... il che é anche responsabilità di Arch e della sua filosofia improntata all'uso consapevole di Linux..

Ma esiste un'istruzione per avere la lista dei soli moduli built-in nel kernel?

8)
Ultima modifica di vda il 1 agosto 2018, 13:16, modificato 1 volta in totale.
Soltanto quando siamo in grado di dare possediamo veramente.
Tutto ciò che non siamo in grado di dare ci possiede. [André Gide]

Avatar utente
vda
Arciere Provetto
Messaggi: 576
Iscritto il: 13 febbraio 2011, 10:53

Re: Initramfs e dintorni...

Messaggio da vda » 1 agosto 2018, 13:16

Ok, trovato

Codice: Seleziona tutto

$ cat /usr/lib/modules/4.17.10-1-ARCH/modules.builtin

kernel/arch/x86/platform/intel/iosf_mbi.ko
kernel/kernel/configs.ko
kernel/mm/zpool.ko
kernel/mm/zbud.ko
kernel/mm/zsmalloc.ko
kernel/mm/z3fold.ko
kernel/fs/binfmt_misc.ko
kernel/fs/binfmt_script.ko
kernel/fs/autofs4/autofs4.ko
kernel/fs/configfs/configfs.ko
kernel/fs/efivarfs/efivarfs.ko
kernel/fs/exportfs/exportfs.ko
kernel/fs/nls/nls_base.ko
kernel/fs/pstore/pstore.ko
kernel/fs/pstore/ramoops.ko
kernel/crypto/crypto.ko
kernel/crypto/crypto_wq.ko
kernel/crypto/crypto_algapi.ko
kernel/crypto/aead.ko
kernel/crypto/crypto_blkcipher.ko
kernel/crypto/seqiv.ko
kernel/crypto/crypto_hash.ko
kernel/crypto/akcipher.ko
kernel/crypto/kpp.ko
kernel/crypto/dh_generic.ko
kernel/crypto/rsa_generic.ko
kernel/crypto/crypto_acompress.ko
kernel/crypto/cryptomgr.ko
kernel/crypto/hmac.ko
kernel/crypto/crypto_null.ko
kernel/crypto/md5.ko
kernel/crypto/sha1_generic.ko
kernel/crypto/sha256_generic.ko
kernel/crypto/gf128mul.ko
kernel/crypto/ecb.ko
kernel/crypto/ctr.ko
kernel/crypto/gcm.ko
kernel/crypto/aes_generic.ko
kernel/crypto/crct10dif_common.ko
kernel/crypto/crct10dif_generic.ko
kernel/crypto/lzo.ko
kernel/crypto/rng.ko
kernel/crypto/drbg.ko
kernel/crypto/jitterentropy_rng.ko
kernel/crypto/ghash-generic.ko
kernel/crypto/asymmetric_keys/public_key.ko
kernel/crypto/asymmetric_keys/x509_key_parser.ko
kernel/crypto/asymmetric_keys/pkcs7_message.ko
kernel/block/deadline-iosched.ko
kernel/block/cfq-iosched.ko
kernel/block/mq-deadline.ko
kernel/block/kyber-iosched.ko
kernel/block/bfq.ko
kernel/drivers/acpi/button.ko
kernel/drivers/acpi/fan.ko
kernel/drivers/acpi/video.ko
kernel/drivers/acpi/processor.ko
kernel/drivers/acpi/thermal.ko
kernel/drivers/acpi/hed.ko
kernel/drivers/acpi/ec_sys.ko
kernel/drivers/acpi/acpi_pad.ko
kernel/drivers/base/firmware_loader/firmware_class.ko
kernel/drivers/base/regmap/regmap-i2c.ko
kernel/drivers/base/regmap/regmap-spi.ko
kernel/drivers/base/regmap/regmap-mmio.ko
kernel/drivers/bus/simple-pm-bus.ko
kernel/drivers/connector/cn.ko
kernel/drivers/cpufreq/cpufreq_performance.ko
kernel/drivers/dax/dax.ko
kernel/drivers/dma/virt-dma.ko
kernel/drivers/dma/dw/dw_dmac_core.ko
kernel/drivers/dma/dw/dw_dmac.ko
kernel/drivers/dma/dw/dw_dmac_pci.ko
kernel/drivers/dma/hsu/hsu_dma.ko
kernel/drivers/edac/edac_core.ko
kernel/drivers/extcon/extcon-core.ko
kernel/drivers/gpio/gpio-generic.ko
kernel/drivers/gpu/drm/drm_panel_orientation_quirks.ko
kernel/drivers/hwmon/hwmon.ko
kernel/drivers/i2c/i2c-core.ko
kernel/drivers/i2c/busses/i2c-designware-core.ko
kernel/drivers/i2c/busses/i2c-designware-platform.ko
kernel/drivers/input/input-core.ko
kernel/drivers/input/touchscreen/of_touchscreen.ko
kernel/drivers/iommu/iova.ko
kernel/drivers/mfd/mfd-core.ko
kernel/drivers/mfd/ab3100-otp.ko
kernel/drivers/nvdimm/libnvdimm.ko
kernel/drivers/nvme/host/nvme-core.ko
kernel/drivers/nvme/host/nvme.ko
kernel/drivers/pci/pci-stub.ko
kernel/drivers/pinctrl/intel/pinctrl-cherryview.ko
kernel/drivers/pinctrl/intel/pinctrl-intel.ko
kernel/drivers/pinctrl/intel/pinctrl-broxton.ko
kernel/drivers/pinctrl/intel/pinctrl-cannonlake.ko
kernel/drivers/pinctrl/intel/pinctrl-cedarfork.ko
kernel/drivers/pinctrl/intel/pinctrl-denverton.ko
kernel/drivers/pinctrl/intel/pinctrl-geminilake.ko
kernel/drivers/pinctrl/intel/pinctrl-lewisburg.ko
kernel/drivers/pinctrl/intel/pinctrl-sunrisepoint.ko
kernel/drivers/platform/x86/intel_pmc_core.ko
kernel/drivers/pps/pps_core.ko
kernel/drivers/ptp/ptp.ko
kernel/drivers/thermal/thermal_sys.ko
kernel/drivers/tty/serdev/serdev.ko
kernel/drivers/tty/serial/serial_core.ko
kernel/drivers/tty/serial/8250/8250.ko
kernel/drivers/tty/serial/8250/8250_base.ko
kernel/drivers/tty/serial/8250/8250_pci.ko
kernel/drivers/tty/serial/8250/8250_lpss.ko
kernel/drivers/tty/serial/8250/8250_mid.ko
kernel/drivers/video/backlight/backlight.ko
kernel/drivers/video/fbdev/core/fb.ko
kernel/drivers/video/fbdev/core/cfbfillrect.ko
kernel/drivers/video/fbdev/core/cfbcopyarea.ko
kernel/drivers/video/fbdev/core/cfbimgblt.ko
kernel/drivers/watchdog/pretimeout_panic.ko
kernel/drivers/xen/xenbus/xenbus_probe_frontend.ko
kernel/arch/x86/video/fbdev.ko
kernel/net/ipv4/tcp_cubic.ko
kernel/net/ipv6/ipv6.ko
kernel/net/ipv6/inet6_hashtables.ko
kernel/net/netlabel/netlabel_calipso.ko
kernel/net/packet/af_packet.ko
kernel/net/packet/af_packet_diag.ko
kernel/net/sched/sch_fq_codel.ko
kernel/net/strparser/strparser.ko
kernel/net/unix/unix.ko
kernel/net/unix/unix_diag.ko
kernel/lib/bitrev.ko
kernel/lib/crc-ccitt.ko
kernel/lib/crc-t10dif.ko
kernel/lib/crc32.ko
kernel/lib/asn1_decoder.ko
kernel/lib/oid_registry.ko
kernel/lib/ucs2_string.ko
kernel/lib/fonts/font.ko
kernel/lib/lz4/lz4_decompress.ko
kernel/lib/lzo/lzo_compress.ko
kernel/lib/lzo/lzo_decompress.ko
kernel/lib/mpi/mpi.ko
kernel/lib/reed_solomon/reed_solomon.ko
kernel/lib/xz/xz_dec.ko
kernel/lib/zlib_deflate/zlib_deflate.ko
kernel/lib/zlib_inflate/zlib_inflate.ko
E in effetti fra questi non trovo nulla che ricordi ad esempio dischi SSD, nè fs ext4...

Grazie ancora

8)
Soltanto quando siamo in grado di dare possediamo veramente.
Tutto ciò che non siamo in grado di dare ci possiede. [André Gide]

Avatar utente
TheSaint
Robin Hood
Messaggi: 7511
Iscritto il: 8 settembre 2007, 7:43
Architettura: x86_64 (64bit)
Località: davanti al computer

Re: Initramfs e dintorni...

Messaggio da TheSaint » 1 agosto 2018, 13:19

Credo che potresti provare questo comando

Codice: Seleziona tutto

$ zcat /proc/config.gz |grep nome_modulo
Ma se cerchi quali sono in initramfs, allora dovresti estrarre initramfs compresso e montarlo in loop. Poi magari puoi vedere se contiene dei moduli. Suppongo che il kernel sia invece senza drivers e li carica tramite i moduli.
Se sai quali sono i moduli che servono allora potresti anche provare a compilarti il kernel monolitico. Facile che li scopri con

Codice: Seleziona tutto

$ lsmod
F the saint
11 anni da questo forum ;)

Rispondi