Grazie dei link edyday!!!!
proseguo da
qui e posto la parte di codice che sto sviluppando.
Ancora scheletro ma gia' qualcosa
Versione 0.1
Codice: Seleziona tutto
#!/bin/bash
#riferimenti ext2/3
#http://e2fsprogs.sourceforge.net/ext2intro.html
#http://e2fsprogs.sourceforge.net/extensions-ext23/
#http://tldp.org/HOWTO/Filesystems-HOWTO-6.html
#http://www.science.unitn.it/~fiorella/guidelinux/tlk/node95.html
#http://www.xs4all.nl/~carlo17/howto/undelete_ext3.html
#http://www.nongnu.org/ext2-doc/ext2.html#DEF-INODES
#http://ext2.sourceforge.net/2005-ols/paper-html/
#http://uranus.chrysocome.net/explore2fs/es2fs.htm
#http://ext2.sourceforge.net/2005-ols/paper-html/node3.html
#http://lxr.linux.no/#linux+v2.6.29/Documentation/filesystems/ext2.txt
#https://ext4.wiki.kernel.org/index.php/Publications
#info:
# ordinare per inode dovrebbe aiutare... con i tempi di seek, provare...
# ricordarsi di montare il fs veloce con "noatime","async" e "data" (vedi il manuale)
echo "elenco files in ordine di apertura (open)"
sudo ureadahead --dump --sort=open | grep '^/' | grep -v created |cut --delimiter="(" -f 1 | while read iname
do
[[ -f "$iname" ]] && (( total += `du -b "$iname" | cut -f 1`)) && echo -ne "\r$total";
#[[ -f "$iname" ]] && (( tot += `stat --printf=%s "$iname"` )) && echo -ne "\r$tot";
# calcolo i frammenti con filefrag
#echo Processo: "$iname" `basename "$iname"` `dirname "$iname"` "$somma"
done && echo
#Pseudo Codice per spostare i files ed eventualmente TORNARE INDIETRO!!!:
#cp -a <nomefile> /dirdestinazione
#per tornare indietro
#echo cp -a /dirdestinazione/basename dirname > reverse.sh
#rm <nomefile>
#ln <nomefile> ....
questo e' il metodo per testare i tempi
Codice: Seleziona tutto
sudo /sbin/ureadahead --debug
/var/lib/ureadahead/pack: created mer, 26 mag 2010 09:48:28 +0000 for hdd 7:0
53 inode groups, 3867 files, 3169 blocks (91924 kB)
Read pack: 0.048s
Preload ext2fs inodes: 2.428s
ureadahead:/home/fra/.local/share/gvfs-metadata/home-77b2d91b.log: Nessun file o directory
Open files: 1.861s
Readahead: 5.677s
vediamo che ci vogliono 2,5 secondi per gli inodes, 2 secondi per aprire i files e 6 secondi per la lettura.
Totale circa 10 secondi a sistema scarico. Che e' quello mostrato da readahead. Sono circa 90MB
Questa e' la parte per creare la partizione apposita... (io ho tutto su filesystem montato via loop quindi va riadattata)
Passi da seguire:
1) creare una partizione di 128MB o piu' e aggiungerla
dd if=/dev/zero of=/host/ubuntu/disks/avvio.disk bs=128M count=1 (non uso il seek per allocare subito tutto lo spazio)
mkfs -V -t ext3 /host/ubuntu/disks/avvio.disk
2) montarla per copiarci dentro i files
mkdir /tmp/avviotmp
sudo mount -o loop /host/ubuntu/disks/avvio.disk /tmp/avviotmp
per fstab:
sudo mkdir /avvioveloce
e aggiunta questa riga in /etc/fstab:
/host/ubuntu/disks/avvio.disk /avvioveloce ext3 loop,errors=remount-ro,user_xattr 0 1
3) fare l'elenco dei file
Questa parte e' quella che sto sviluppando sopra!!!!
Aggiorno ogni tanto , se volete sviluppare pezzi ben venga!!!!