[UBK dev] Az init szkript javítandó!

Kiss Attila attus at enterpriseforever.com
2017. Már. 13., H, 09:49:44 CET


2017-03-12 15:20 keltezéssel, Kiss Attila írta:
>
> *Tehát a grub linux sorában lévő **"rootflags=subvol=@" **nem jut 
> érvényre!*


Nézegetem ezt az egykor ragyogóan megírt ősi rendszerindító szkriptet, 
nagy bash tudással rendelkeztek az egykori alkotói. Csak a lehetőségek 
azóta már jócskán kitágultak, amikkel nem tud élni, ezért *mindenképp 
javítandó!*

Úgy látom, hogy nem veszi figyelembe a kernel parancssorában megadott 
root partíció csatolási opcióit, nemcsak a rootflags, hanem még a ro és 
rw opciók sem érvényesülhetnek*.*

A rootmount funkció a megkapott $o paraméterekkel csatolja fel a a neki 
megadott $1 eszközt a /mnt alá.
Ezt a $o paramétert kiegészíti előbb: o="noatime,nodiratime,$o", majd 
csatolja: mount -o "$o" "$1" /mnt

A case "$boot" in részben hívja meg a rootmount funkciót, melyben 
felcsatolja az UUID= után talált eszközt a /mnt alá, előtte a $o nem kap 
értéket sehol.
Ezért a leendő gyökér partíció csatolása az intramdiszkben szereplő init 
szkripttel a default értékekkel történik mindig.

     UUID=*)
         dev="/dev/disk/by-uuid/${boot#UUID=}"
         btrfs device scan
         udevadm settle
         if [ -e "$dev" ]; then
             rootmount "$dev"
         else
             raid_start
             if [ -e "$dev" ]; then
                 rootmount "$dev"
             else
                 lvm_start
                 rootmount "$dev"
             fi
         fi
         ;;

Azt, hogy ez a $boot változó mikor és hol kap értéket, még nem tudtam 
kibogozni.

Van még egy érdekes rész ebben a szkriptben.

# ugly hack for kernel 3.4.0-rc3
eval "$(tr ' ' '\n' </proc/cmdline |grep =|while read x; do echo export 
$x; done)"

Ez még számomra nagyon ködös, csak azt tudom, hogy az = jelekkel 
rendelkező részeket szűri ki, de, hogy ez mibe megy, nem tudom.

Próbaképp beírtam a futó RIA telepítményem indításakor a grup 
parancssorba egy kis kiegészítést, ami alapján el lehetne indulni.
És az eredmény:

attila at localhost:/usr/src/UHUBUILD/UB-UBK1$ cat /proc/cmdline
BOOT_IMAGE=/kernel-4.4.52-1.i386 
root=UUID=63a3497d-6f3b-4d91-9566-2236069bd718 ro rootflags=subvol=@ 
nomodeset
attila at localhost:/usr/src/UHUBUILD/UB-UBK1$

A gond az, hogy a btrfs telepítményem indításakor, mikor a sikertelen 
gyökércsatolás után visszalök az init a bash-ba, akkor még a cat parancs 
nem létezik, a szkriptbe beépíthetetlen.





--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.ubk.hu/pipermail/dev/attachments/20170313/87252421/attachment.html>


More information about the dev mailing list