Puncte:0

Script Initramfs-tools pentru montarea folderelor comprimate pe tmpfs

drapel ug

Încerc să creez o partiție de salvare mică (~800 MB spațiu de rezervă după toate celelalte partiții de sistem și de stocare) pentru un laptop cu hardware specializat care necesită module speciale de kernel și kernel, astfel încât instrumentele de salvare stoc, cum ar fi Clonezilla Live și GParted Live, nu fac. nu funcționează foarte bine. Partiția este prea mică pentru a include modulele și software-ul necesar pentru ceea ce aș dori să construiesc, așa că cea mai mare parte a sistemului trebuie să fie comprimată și încărcată în RAM în timpul execuției. În plus, prefer să am sistemul complet extras în loc să mă bazez pe dovlecei, și aș dori posibilitatea de a salva modificările făcute în sistem atât cât permite partiția. Folosind Ubuntu 20.04 ca sistem de bază, am conceput următoarea schemă în acest scop:

  1. După construirea sistemului inițial în chroot, creați și goliți folderul /RAM ca punct de montare pentru tmpfs pentru a găzdui fișierele de sistem și utilizator decomprimate în timpul rulării, mutați toate folderele de fișiere de sistem și utilizator (Acasă,usr,var,opta,etc, etc.) în /RAM și înlocuiți fiecare cu o legătură simbolică către /ram/$dir. Comprima /RAM la fel de/ram.tar.gz și lăsați punctele speciale de montare (dev, sys ,alerga ,tmp, și proc) precum și cizme singur pe rootfs. Șterge /RAM/* și scrieți rootfs pe despărțitor.
  2. La boot, după nucleu și initrd sunt încărcate, premontate rootfs, montură tmpfs pe /RAM, apoi extrageți conținutul lui /ram.tar.gz în /RAM. Acest lucru trebuie să se întâmple înainte rootfs înlocuiește initramfs ca rădăcină deoarece altfel rootfs nu pot accesa utilitățile necesare pentru montare /RAM și extrage din arhiva comprimată.
  3. montură rootfs și continuați cu boot.
  4. La oprire, faceți înapoi /ram.tar.gz la fel de /ram.tar.gz.bak apoi comprimați modificatul /RAM în /ram.tar.gz. Acest lucru poate fi realizat folosind systemd.

Evident, lucrurile pot merge prost la pasul 4 și, prin urmare, pasul 2 trebuie să includă integritatea /ram.tar.gz și încărcați copia de rezervă dacă aceasta nu reușește, dar acestea ar trebui să fie doar câteva comenzi suplimentare de inclus în initramfs-instrumente script și dincolo de scopul întrebării mele, care este:

Fără a modifica /usr/share/initramfs-tools/init, cum creez un script în /etc/initramfs-tools/scripts pentru a realiza pasul 2? Comenzile ar trebui să fie destul de ușoare ca

mount -t tmpfs -o $OPTIONS nici unul /ram
tar xvzf ram.tar.gz

Dar nu știu ce folder să includă scriptul (init? local? sus? bottom? premount?) și cum să lucrez cu PRECERERE antet în scriptul propriu-zis.

Puncte:0
drapel ug

S-a dovedit a fi destul de simplu. Crea:

/etc/initramfs-tools/scripts/local-bottom/ramfiles
#!/bin/sh

set -e

PREREQ=""

cerințe preliminare()
{
        ecou „${PREREQ}”
}

cazul „${1}” în
        cerințe preliminare)
                precerințe
                iesirea 0
                ;;
esac

mount -t tmpfs -o size=100% none ${rootmnt}/ram
tar xvzf ${rootmnt}/ram.tar.gz -C ${rootmnt}


atunci

sudo chmod +x /etc/initramfs-tools/scripts/local-bottom/ramfiles
sudo update-initramfs -u

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.