Mi triggereli a modulok betöltését?

Fórumok

Ért itt valaki a Linuxokhoz? :)

Gondom az, hogy loop device-ként mount-olás nem sikerült, semmitmondó ismeretlen hibát mondott. Elkezdtem aprólékosan cselekedni, a losetup is hibát mondott. Ekkor megnéztem, s kiderült, hogy a loop nevű kernel modul nincs betöltve. Manuálisan modprobe-bal betöltöttem, utána egyből működött is a mount.

Az a kérdésem, melyik alrendszernek kellett volna berántania a loop modult? Azért kérdem, mert bugreportoltam, de természetesen ki kell választani, melyik software komponens a hibás, miről küldöm a hibajelzést. Érzésből systemd-t írtam, de valójában fogalmam sincs. Valahol a systemd, udev, kernel környékén vélem a megfejtést, de fogalmam sincs, pontosan hogyan van ez.

Az oprendszer Fedora 21.

Hozzászólások

Jé, van egy olyan, hogy kmod. Ez áll a leírásában:

Description :
The kmod package provides various programs needed for automatic
loading and unloading of modules under 2.6, 3.x, and later kernels, as well
as other module management programs. Device drivers and filesystems are two
examples of loaded and unloaded modules.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

FYI:
nyos@hex:~$ cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

lp
rtc
loop max_loop=64

(egyebkent Ubuntu)

--
What's worse than finding a worm in your apple?
Finding a U2 album on your iPhone.

Ilyen file-om ugyan nincs, de van /etc/modules-load.d nevű könyvtáram, amelynek szerintem ugyanez lesz a szerepe. Beleírom egy file-ba, de úgy emlékszem, ez még néhány napja működött. Picit workaround-nak érzem statikusan berántani a modult, akkor akár kernelbe is fordíthatták volna. Gondolom, van egy mechanizmus, amelynek következtében csak akkor töltődik be a modul, ha arra valakinek - pl. a losetup - szüksége van.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

A /etc/modules-ben debian alapú rendszereken alapból betöltődik induláskor.

Picit árnyalnám a hozzászólásod. Nem az volt a bajom, hogy nem tudom betölteni a modult - bár kétségkívül az rc.local-ba gányoltam volna a modprobe loop parancsot, ha nem írják fentebb, hogy erre van külön konfigurációs file -, hanem az, hogy úgy hiszem, gondolom, sejtem, képes ez dinamikusan akkor betöltődni, amikor éppen szükség van rá. Na, ezt nem tudom, milyen mechanizmuson át működne.

Továbbá az is gyanús, hogy egy rakás modul nincs felsorolva sehol, mégis be van töltve. Esetleg ezt a dracut intézi, s már az initrd-ben managelve van?

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Természetesen automatikus betöltődésre gondoltam... asszem most egy átmeneti fázist élünk át, aminek a lényege, hogy a linux-ot unix-ból Windows-zá alakítjuk systemd/udev/hal/stb útján...

Most esetleg éppen a régi feature-ök már, az új feature-ök még nem működnek.

A 20-ban a /dev/loop-control írásakor tölti be a kernel, szóval a kérdés, hogy van-e ilyen device node a gépen alapból? És a kérdés máris az, hogy mi csinálja meg a /dev/loop-controlt :)

Update: úgy nézem, hogy ez a "miscdevice" "eszköz" tulajdona, ami egy rakás apró char device olvasztótégelye (10-es major numberrel).