<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">2017-03-12 15:20 keltezéssel, Kiss
Attila írta:<br>
<blockquote
cite="mid:50e96fa7-5e38-47f0-031b-184222ab30da@enterpriseforever.com"
type="cite"><br>
<b>Tehát a grub linux sorában lévő </b><b>"rootflags=subvol=@"
</b><b>nem jut érvényre!</b></blockquote>
<br>
<br>
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 <b>mindenképp javítandó!</b><br>
<br>
Ú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<b>.</b><br>
<br>
A rootmount funkció a megkapott $o paraméterekkel csatolja fel a a
neki megadott $1 eszközt a /mnt alá.<br>
Ezt a $o paramétert kiegészíti előbb: <font size="-1">o="noatime,nodiratime,$o"</font>,
majd csatolja: <font size="-1">mount -o "$o" "$1" /mnt</font><br>
<br>
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.<br>
Ezért a leendő gyökér partíció csatolása az intramdiszkben
szereplő init szkripttel a default értékekkel történik mindig.<br>
<br>
<font size="-1"> UUID=*)<br>
dev="/dev/disk/by-uuid/${boot#UUID=}"<br>
btrfs device scan<br>
udevadm settle<br>
if [ -e "$dev" ]; then<br>
rootmount "$dev"<br>
else<br>
raid_start<br>
if [ -e "$dev" ]; then<br>
rootmount "$dev"<br>
else<br>
lvm_start<br>
rootmount "$dev"<br>
fi<br>
fi<br>
;;</font><br>
<br>
Azt, hogy ez a $boot változó mikor és hol kap értéket, még nem
tudtam kibogozni.<br>
<br>
Van még egy érdekes rész ebben a szkriptben.<br>
<br>
<font size="-1"># ugly hack for kernel 3.4.0-rc3<br>
eval "$(tr ' ' '\n' </proc/cmdline |grep =|while read x; do
echo export $x; done)"<br>
</font><br>
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.<br>
<br>
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.<br>
És az eredmény:<br>
<br>
<font size="-1">attila@localhost:/usr/src/UHUBUILD/UB-UBK1$ cat
/proc/cmdline<br>
BOOT_IMAGE=/kernel-4.4.52-1.i386
root=UUID=63a3497d-6f3b-4d91-9566-2236069bd718 ro
rootflags=subvol=@ nomodeset<br>
attila@localhost:/usr/src/UHUBUILD/UB-UBK1$ <br>
</font><br>
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.<br>
<br>
</div>
<br>
<br>
<br>
</body>
</html>