Kérdés:
Futtassa a Raspbian-ot RAM-ban
Mark
2019-08-18 23:17:39 UTC
view on stackexchange narkive permalink

A Raspberry Pi első verziója óta a Raspbian testreszabott verzióját használom a rootf-ok írásvédett csatlakoztatásához. Alapvetően a RAM-ban létrehoztam szimplainkat a / var könyvtárakhoz, így az alkalmazások már nem jelentkeznek be az sd-kártyára.

Mivel az RPi4 rengeteg RAM-mal rendelkezik, szeretnék megpróbálni betölteni a teljes rootf-eket a RAM-ban, a teljesítmény mérése és az ilyen testreszabás elkerülése érdekében. Ezután képesnek kell lennem teljesen leválasztani a partíciót, anélkül, hogy az os-ra bármilyen hatással lennék.

Egy válasz:
Alistair Buxton
2019-08-20 00:19:07 UTC
view on stackexchange narkive permalink

A rövid válasz: ez lehetséges, de nincs egyszerű beállítás, amelyet megváltoztatna, és csak működik. Nagyon sok erőfeszítést igényel.

Ezt közvetlenül nem lehet megtenni, mert az ext4 nem érvényes formátum a kezdeti ramdisk számára. Indítás előtt konvertálnia kell a fájlrendszert. Csatlakoztassa a Raspbian gyökérpartíciót egy másik Linux rendszerre, majd hozzon létre egy CPIO archívumot a rajta található összes fájlról. Az Ubuntu 18.04-en ezt végrehajtó parancs nagyjából így néz ki:

  proot -0 -q qemu-arm -w / -r / mnt / root sh -c "cd / && find * -xdev -not \ (\ -path host-rootfs -prune \ -path run -prune \ -path proc -prune \ -path sys -prune \ -path boot -prune \ \) | cpio --create -H newc " | xz -C crc32 -9 > initramfs  

Ezután az eredményül kapott archívumot az SD-kártya / boot partíciójába helyezi, és initramf-ként adja meg a config.txt fájlban.

Ennek potenciális teljesítményelőnyei nagyok. A rendszerindítás hosszabb időt vesz igénybe, mert a teljes fájlrendszer RAM-ba másolása és kicsomagolása hosszú időt vesz igénybe, de ha ez megtörtént, a rendszer körülbelül 3 másodperc alatt elindul, és nagyon reagál.

Az alapértelmezett Raspbian konvertálása azonban egyszerűen nem valószínű, hogy még egy 4 GB RAM-mal is működik. A dekompressziós lépéshez hozzávetőlegesen kétszer annyi RAM szükséges, mint az initramfs-nál, és ha túllépi, hogy a rendszer nincs beállítva RAM-ból való futtatásra, és valószínűleg ideiglenes fájlok és naplók miatt elfogy.

A fájlrendszert egyáltalán nem is módosíthatja. Ha módosítani akar egy fájlt, akkor az initramfs fájlt át kell építenie egy másik rendszerre.

Ennek a legjobb módja egy teljesen testreszabott Raspbian kép készítése a csomagokból. Az alaprendszer méretét 50 MB-ig csökkentheti, majd csak a szükséges dolgokat adhatja hozzá.

Ehhez készítettem egy eszközt, amelyet a következő címen talál: https: / /github.com/ali1234/rpi-ramdisk

Az eszköz képes olyan Raspbian ramdiskek felépítésére, amelyek akár Pi Zero-n is futtathatók, 256 MB RAM-mal, és amelyek PXE-n vagy rpiboot-on keresztül is betölthetők. Sajnos ezt nem úgy tervezték, hogy könnyen használható legyen, ezért ha valóban teljes ramdisk-et akarsz használni, akkor sokkal több kutatást kell elvégezned, mivel rengeteg részlet van, amelyeket az egyértelműség kedvéért kihagytam. Ez a válasz egyébként több oldalas lett volna ...

Vegye figyelembe azt is, hogy még nem fejeztem be a Pi 4 támogatásának hozzáadását, bár legalább indítania kellene.

Köszönöm a teljes választ. Egyébként a testre szabott Rasbian rootf-ek mérete alig haladja meg az 1 GB-ot. De megértem, hogy alkalmazásomra nem érdemes ilyen munkát végezni.


Ezt a kérdést és választ automatikusan lefordították angol nyelvről.Az eredeti tartalom elérhető a stackexchange oldalon, amelyet köszönünk az cc by-sa 4.0 licencért, amely alatt terjesztik.
Loading...