CF / Pendrive barát Linux megoldások

Fórumok

Debian Woody-t telepítettem egy CF kártyára amit szeretnék megóvni a ciklikus írásoktól.
Ezügyben túrtam a netet, hupot és a következőkre jutottam:

  • superblockba nem írjon mountolási időbélyeget (ext2-re formázva)
    # tune2fs -c 0 -i 0 /dev/hda1
  • fstabban noatime opció
  • # ln -s /etc/mtab /proc/mounts # Mindig frissíti
  • tmpfs használata a /var/log, /var/run, /var/run/dhcp*, /tmp mappákra
    Ehhez fstab bővítés:
    tempfs          /tmp            tmpfs   nodev,nosuid,mode=1777           0 0
    tmpfs           /var/log        tmpfs   defaults,size=25m       0       0
    tmpfs           /var/lib/dhcp   tmpfs   defaults,size=5m        0       0
    tmpfs           /var/run        tmpfs   defaults,size=10m       0       0
    tmpfs           /dev            tmpfs   defaults,size=10m       0       0

    Minden leállításkor ki kell menteni a log mappa tartalmát amit indításkor visszatölthetünk.
    /etc/init.d/umountfs fájlban vhol az elejére még az umount parancsok elé beszúrva:

    echo "Logok kimentese..."
    rsync -va --delete /var/log/ /mnt/backup/log/

    /etc/init.d/mountall.sh fájl végére, az exit 0 elé:

    echo "Logok visszatoltese..."
    rsync -va /mnt/backup/log/ /var/log/
  • Ha saját scriptünkben szeretnénk tmpfs-t alkalmazni:
    # mkdir -p /mnt/tmp
    # mount -t tmpfs -o size=20m tmpfs /mnt/tmp # Nem foglalja le rögtön a 20Mb-t, viszont csak addig terjeszkedhet.

Egy df -h kimenet:


eTC-2300:/# df -h
Filesystem            Size  Used Avail Use% Mounted on
rootfs                942M  707M  187M  80% /  
/dev/root             942M  707M  187M  80% /  
/dev/hda1             114M   11M  103M  10% /boot
tempfs                 58M     0   57M   0% /tmp
tmpfs                  25M  3.5M   21M  14% /var/log
tmpfs                 5.0M  4.0k  4.9M   1% /var/lib/dhcp
tmpfs                  10M   24k  9.9M   1% /var/run

A kissé fura df kimenet az mtab symlinkeléstől van.

Sajnos még van pár fájl ami minden indításkor módosul:
# find /etc/ -cmin -60
/etc/network/ifstate
/etc/adjtime
/etc/motd
/etc/ioctl.save
/etc/resolv.conf

/var/lib/urandom/random-seed

Ezekkel lehet valamit kezdeni azon kivül, hogy szintén tmpfs-be teszem a /etc-t, /var/libet?

A másik a /dev: # find /dev/ -cmin -60
Számtalan tty fájl jön létre, mely ha minden igaz nem tmpfs-ben van (2.4-es kernel, woodyban még udev csomag sincs).
/dev-et is tmpsfs-be kellene tegyem? Na de mikor töltöm vissza?

Mit lehetne javítani rajta? Kinek milyen ötlete van a fentiekkel kapcsolatban?

Köszönöm:)

Hozzászólások

live-initramfs, live-helper, aufs (unionfs), SquashFS. Na ezek azok a kulcsszavak amik érdekesek lehetnek számodra.

update: http://www.cflinux.hu/ :)

c

Nem egyszerűbb DOM modult venni - már csak a sebessége miatt is?
Mekkora CF kártyát használsz? 4GB? 2000 Ft? :)
Ha jól tudom, ha ezek befosnak, csak írni nem lehet rájuk.
Nem könnyű elérni a 100-300k vagy mennyi írást, elég okosak ezek már (vagy csak az ssd ír okosan?)

+1, kételkedek benne, hogy a befektetett munka megtérül-e. Ráadásul amikor a rendszerbe ezeket belehackeled, mindig veszítesz valamit, frissítések nem fognak menni, vagy munka közben nem fognak elmentődni amit szeretnél. A mai pendriveok már elég sokat bírnak, lehet hagyni alapbeállításon mindent. Max. logolást/flusholás alapértelmezett gyakoriságát venném lejjebb.

--
The Net is indeed vast and infinite...
http://gablog.eu

A befektetett munka kérdésében igazad van. Ezért nem is szivesen hackelném agyon az adott disztribúciót. Vagy ha CF-re szánt rendszert használok, akkor a programok addolása lehet problémás.
Ezért választottam a Woody-t. Viszonylag sok program elérhető hozzá, egymással jól működnek a libek.
Perpill a fent említett mappák ill. a végén felsorolt fájlokat egy ramdiskes mappába áthelyeztem majd visszasymlinkeltem. A ramdisket minden bootnál feltöltöm, utána eldobom a változásokat, mert nem érdekesek.

Így jelenleg csak a dev-ben változik pár fájl. Abból is lecsíptem a nagyrészét, mert minden bootnál chmodot kapott (szerintem feleslegesen).

Ha azt a maradék 3-4 fájlt is megoldom a devben, akkor gyakorlatilag irásmentes lesz bootolás és működés közben.

-1.
Tudom a CF != SD, de a legtobb SD kartya csak az elso x szektorra implemental rendes wearleveling -et. Feltetelezik, hogy FAT lesz a kartyan es ezert a kartya eleje tobbet lesz hasznalva.

Szoval eros ketsegeim vannak a CF kartyak "okossagat" illetoen. De ha a CF meg oke is, a pendrive -ok zome tutira erintett a fenti problema altal (nem teszteltem).

Amugy DD -vel eleg egyszeru kiprobalni. Ha tobbszoros iras eseten a kartya utolso szektorai gyorsabbak mind az elsok, akkor keves mas magyarazatot tudok elkepzelni, mint a wearleveling -beli kulonbseget.

SD, CF szabvany szerint van bennuk irasterites, varhatoan 'smartmedia'
Ez nem tul sok, nem tul jo, de van.
pndrive-ben nem kell lennie irasteritesnek. Szerintem van, mert nem gyartanak ketfele csipet egyet SD-be egyet pendrive-ba ;)

egy lowend pendrive-val teszteltem, 10 millio irasnal en untam meg (az utolso 32k) abban ott a vegen is volt irasterites.

ilyen CF kartyara linux dolgot probaltunk, ha bootolaskent ir ra, az elenyeszo (mikor bootolsz te 50 ezerszer?) a periodikus irast kellene elminimalni.

A sebesség nem lényeges szempont, a CF-fel egy buszon lévő EmbedDisk (ahogy a CF is) 3-4 megával megy. Nekem elég:)
Néztem DOM modult, 256mb 5kHUF körül van. Akár még jó is lehet, de akkor sem merném ott hagyni, hogy irjon kedve szerint:)
Neten több helyen olvastam, hogy cf/pendrive-on működő gépeken 1 év alatt bizonytalanok lettek az eszközök.

Ha elszáll a rendszer vmi miatt (v csak nem válaszol), akkor bukod a logokat, ahonnan kiderítheted, mi a baj.

CF-re tervezek egy kis LFS-t rakni (<16MB), én jelenleg UBIFS-ben gondolkozom, majd megosztom a tapasztalataimat :)
Szerk.: Mégtöbbet utánaolvasva hülyeséget írtam, mert legtöbb flash-memóriakártyában, csakúgy, mint a pendrievokban, van beépített vezérlő, ami (úgy-ahogy) végzi a wear-levellinget, hibaellenőrzést, stb.
Ezért a fájlrendszer nem tudja elérni a fizikai blokkokat, szóval lehetséges pl YAFFS-t használni rajta, csak nincs sok értelme. De például SmarMedia/XD-kártyákon működne.

a dolog iranya jo, a modszer jo, a kitartas udvozolendo, es addig ne add fel, amig nem kapsz mukodo rendszert readonly mountolt root eseten. El lehet erni.

a /var/run/dhcp ... gyanus, csak nem te is home servert fabrikalsz egy ciposdobozbol es harom rajzszegbol? Ha eljutsz oda, hogy van benne 3 darab 1.5T diszk is (a csaladi fotoalbumnak termeszetesen) akkor van masik otletem is a bootolasra.