OpenSuse 11.2 i ext2/3/4 file sistemi

Diskusije usko vezane uz SUSE i openSUSE distribucije.

Moderator/ica: Moderatori/ce

Odgovori
stef
Postovi: 22
Pridružen/a: 07 vel 2010, 01:15

OpenSuse 11.2 i ext2/3/4 file sistemi

Post Postao/la stef »

Imam jedno zapažanje što se tiče korištenja ext file systema na OpenSusetu 11.2.
Naime, koliko vidim, postoji samo ext4.ko modul koji izgleda mounta sve ext file sisteme.

Provjera sa:

Kod: Označi sve

lsmod |grep ^ext
ako se želi videjti koji je modul aktivan trenuntno. Ja imam file sistem na ext3, a lsmod izlistava uredno ext4 modul

ili

Kod: Označi sve

modprobe -lt fs |grep ext
da se vide svi dostupni ext moduli, kod mene izlistava samo ext4.ko

Može li netko potvrditi navedeno?
stef
Postovi: 22
Pridružen/a: 07 vel 2010, 01:15

Re: OpenSuse 11.2 i ext2/3/4 file sistemi

Post Postao/la stef »

Samo za info, riješio sam ovo.

Zanimljivo, initrd određuje (hardkodirano) kojim modulom će mountati root file system prilikom boot-a.
kod mene je bio slučaj da sam imao ext3 root file system, a initrd ga je mountao s ext4 modulom ... i to najnormalnije radi s obzirom da je ext4 backward kompatibilan.

Ono što je još zanimljivije, mkinitrd čita /etc/fstab prilikom kreiranja initrd image-a, tak da ga je moguće prevariti na način da se privremeno editira file, ako treba napraviti initrd za neki drugi root file system.
Avatar
4ndY
Moderator
Postovi: 4060
Pridružen/a: 15 svi 2008, 18:05
Spol: M
OS: Fedora/KDE
Lokacija: Hamburg, DE
Kontakt:

Re: OpenSuse 11.2 i ext2/3/4 file sistemi

Post Postao/la 4ndY »

Ne znam što je tu čudno: ext4 modul je unazad kompatibilan sa svim starim i dovoljno je njega koristiti za sve extX particije, dalje, initrd ti se dinamički generira nakon instalacije, odnosno, ako promijeniš nešto što je važno u pravoj fazi bootanja moraš obnoviti initrd (najbolji ti je primjer plymouth, ali i ovaj slučaj s modulima za čitanje FS-a).

Ili te ja nešto nisam shvatio? :roll:
A neutron walks into a bar; he asks the bartender, 'How much for a beer?' The bartender looks at him, and says 'For you, no charge.'
Avatar
Grof
Site Admin
Postovi: 9954
Pridružen/a: 04 pro 2007, 08:00
Lokacija: Zagreb

Re: OpenSuse 11.2 i ext2/3/4 file sistemi

Post Postao/la Grof »

stef je napisao/la:Samo za info, riješio sam ovo.

Zanimljivo, initrd određuje (hardkodirano) kojim modulom će mountati root file system prilikom boot-a.
Valjda kernel određuje.... initrd je samo image datoteka u koju su strpani svi potrebni moduli koje kernel treba prije nego digne datotečni sustav na kojem se nalazi sam OS...
stef
Postovi: 22
Pridružen/a: 07 vel 2010, 01:15

Re: OpenSuse 11.2 i ext2/3/4 file sistemi

Post Postao/la stef »

4ndY je napisao/la:Ne znam što je tu čudno: ext4 modul je unazad kompatibilan sa svim starim i dovoljno je njega koristiti za sve extX particije, dalje, initrd ti se dinamički generira nakon instalacije, odnosno, ako promijeniš nešto što je važno u pravoj fazi bootanja moraš obnoviti initrd (najbolji ti je primjer plymouth, ali i ovaj slučaj s modulima za čitanje FS-a).

Ili te ja nešto nisam shvatio? :roll:
Pa problem je što mknitrd-u ne možeš reći da ti promijeni modul s kojim hoćeš da mounta root fs. Bar to ja nisam uspio na elagantni način putem parametara komande ili preko /etc/syscinfig/kernel datoteke. Mkinitrd uvijek čita /etc/fstab i od tud kupi s kojim će modulom mountati root fs.

@grof
U initrd-u su moduli (*.ko fajlovi) i init skripte koje loadaju te module. Problem su skripte, odnosno ono što piše u njima. Najmanji je problem dodati novi modul u initrd ;).
Avatar
Grof
Site Admin
Postovi: 9954
Pridružen/a: 04 pro 2007, 08:00
Lokacija: Zagreb

Re: OpenSuse 11.2 i ext2/3/4 file sistemi

Post Postao/la Grof »

Možda se u njemu i nalaze skripte koje se pozivaju nakon što kernel pozove init(), ali initrdje datotečni susav (FS), te kao takav služi kao kontejner, a ne kao izvršni dio sustava.

Primjerice, kada nisam mogao podići hard diskove na jednom Macu, morao sam ručno dodati nedostajući kernel modul u kernel tree, te ga preko depmod prijaviti u modprobe listu. Nakon toga mkinitrd komanda uredno postavi taj modul u initrd image, od kuda ga kernel uzima.
stef
Postovi: 22
Pridružen/a: 07 vel 2010, 01:15

Re: OpenSuse 11.2 i ext2/3/4 file sistemi

Post Postao/la stef »

Vrlo je lako provjeriti što se nalazi u initrd image-u, to je gzipana cpio arhiva:

Kod: Označi sve

drwxr-xr-x 2 root root  4096 Apr 23 21:44 bin
drwxr-xr-x 2 root root  4096 Apr 23 21:44 boot
-rw-r--r-- 1 root root 95418 Apr 23 21:44 bootsplash
drwxr-xr-x 2 root root  4096 Apr 23 21:44 config
drwxr-xr-x 2 root root  4096 Apr 23 21:44 dev
drwxr-xr-x 6 root root  4096 Apr 23 21:44 etc
-rwxr-xr-x 1 root root  2054 Apr 23 21:44 init
drwxr-xr-x 4 root root  4096 Apr 23 21:44 lib
drwxr-xr-x 2 root root  4096 Apr 23 21:44 lib64
-rw-r--r-- 1 root root    77 Apr 23 21:44 mkinitrd.config
drwxr-xr-x 2 root root  4096 Apr 23 21:44 proc
drwxr-xr-x 2 root root  4096 Apr 23 21:44 root
-rw-r--r-- 1 root root  3869 Apr 23 21:44 run_all.sh
drwxr-xr-x 2 root root  4096 Apr 23 21:44 sbin
drwxr-xr-x 2 root root  4096 Apr 23 21:44 sys
drwsrwxrwx 2 root root  4096 Apr 23 21:44 tmp
drwxr-xr-x 4 root root  4096 Apr 23 21:44 usr
drwxr-xr-x 5 root root  4096 Apr 23 21:44 var
Na sredini ispisa je init skripta koju spominjem.

Prilikom startanja računala, boot loader učitava u memoriju intrd file system iz initrd image-a, a zatim učitava kernel koji mounta taj file system. Initrd fs je kompletni mali file system i sadrži osnovne utility-e (shell, insmod ...) te svoju init skriptu koja loada module potrebne za mountanje pravih file systema. Znači, init skripta unutar initrd fs-a kontrolira loadanje modula i mountanje pravih file systema. Tek nakon toga kernel može pokrenuti pravi "sistemski" init.

Ja npr. mogu dodati Reiser u initrd, ali to ne znači da će taj modul mountati root fs, ako u init-u (onom od initrd fs-a) tako ne piše. Problem je da ja ne znam kako reći mkinitrdu da promijeni driver/modul koji mounta root file system. Mogu privremeno promijeniti /etc/fstab i onda pokrenuti mkinitrd.

A zašto mi to uopće treba?
Zato što sam kreirao Xen guesta na ext4 file sistemu, i onda ga pokušao kasnije otpakirati na Resier ili ext3. Naravno da nisam mogao pokrenuti sustav na Reiseru, iako je modul postojao u initrd image-u. Init od initrd fs-a je forsirao ext4.
ext3 sam pokrenuo, ali je lsmod izlistivao ext4 driver.
Odgovori