Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: beer 13 Září 2012, 09:41:22
-
Aktuálně mám speciální oddíl pro dočasné soubory, kde nemám žurnálování a čas posledního přístupu.
Aby se tam vešlo například celé dvouvrstvé dvd, jeho velikost mám přesahující 10 GB.
Protože chci ze svého systému se 4 GB ram dosáhnout maximum a ram mám nevyužitou, tak jsem si nastavil v /etc/fstab, že oddíl /tmp ze samotného oddílu přejmenuji na /tmp2 a /tmp jako takové bude v ram (tmpfs), po překročení velikosti poloviny ram aby z tmpfs přeteklo do /tmp2.
tmp mám tedy nyní v /etc/fstab takto:
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0,
tmp2 je namountováno v /etc/fstab klasicky přes UUID, jak jsem měl původní tmp, jen jsem přepsal na tmp2, vytvořil přes mkdir /tmp2 a nastavil práva takto: chmod 1777 /tmp2.
Co ale nevím, je jestli se musí to spojení přes mount --bind /tmp2 /tmp spouštět ručně například v /etc/rc.local, nebo to stačí udělat pouze jednou, či zdali je to možné nějak zapsat do /etc/fstab, aby se dle uvedeného souboru realizovalo automaticky...
-
Něco je zde:
http://docs.1h.com/Bind_mounts
http://www.linuxexpres.cz/praxe/vyuzitie-tmp-adresara-v-ram
nicméně bohužel není z žádného článku zřejmé, jestli přežije procedura mount --bind restart, nebo ne, jestli je možné zapsat do /etc/fstab a jak.
Šlo by to takto?
/tmp2 /tmp none defaults,noatime,mode=1777,bind 0 0
-
$source $mout_point none bind 0 0
^^ viz man mount a man fstab
-
$source $mout_point none bind 0 0
^^ viz man mount a man fstab
Díky, takže předpokládám, že tak, jak jsem to zapsal, by fungovalo, nicméně ty parametry noatime, defaults a mode=1777 jsou tedy v tomto případě nadbytečné, protože už jsou určeny na samostatném řádku pro /tmp.
To by tedy stačilo takto:
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
UUID=XXXXXXXX /tmp2 ext2 noatime,defaults 0 0
/tmp2 /tmp none bind 0 0
Možná to ale komplikuji, možná by to stačilo celé zjednodušit takto, složka /tmp2 by pak postrádala smysl:
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
UUID=XXXXXXXX /tmp ext2 noatime,default,bind 0 0
edit, funguje jen toto:
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
UUID=XXXXXXXX /tmp2 ext2 noatime,defaults 0 0
/tmp2 /tmp none bind 0 0
-
Nebo možná by to šlo i takto, tím bych vypnul přeskočení do swapu při zaplněné ram, ale otázka, co by se stalo po překročení 2 GB? Zapisovalo by to do ext2, jak zamýšlím?
none /tmp ramfs defaults,noatime,mode=1777,size=2048M 0 0
UUID=XXXXXXXX /tmp ext2 noatime,defaults,bind 0 0
edit: toto nefunguje
-
ne .. opravdu ne .. precti si prosim prvni dva odstavce z mount(8)
-
A až někdy naražíš na další problémy, mrkni na volby nosuid a exec.
-
A až někdy naražíš na další problémy, mrkni na volby nosuid a exec.
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
UUID=XXXXXXXX /tmp2 ext2 noatime,defaults 0 0
/tmp2 /tmp none bind 0 0
Takto to celkem fungovalo, nosuid a exec jsem dávat nemusel. Nicméně, možná má ntz pravdu s tou volbou bind, že to není funkční a že to nedělá, to co jsem zamýšlel. Je možné, že mi to /tmp ukousne polovičku ram, ale systém zároveň ukládal i na ext2, takže ve výsledku ram je blokovaná pro tmp zbytečně, když se použije diskový oddíl, nevím, jak to aktuálně ověřit. Ale vzhledem k tomu, že to i swapovalo, sice málo, ale přece, tak to nebylo žádné terno.
Prozatím jsem to vyřešil tak, že jsem ponechal jen:
tmpfs /tmp tmpfs defaults,noatime,mode=1777,size=1024M 0 0
na bind a na /tmp2 jsem se vykašlal. Pokud bude nějaký problém s vypalovacími programy, tak dočasně namountuji /tmp2 do /tmp s volbou bind.