<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>