How to use bash functions

When you have a complex task to be done in bash, often using bash function will save you time reusing the same part of code.
In this tutorial, you can see how to use bash functions.

You can define a bash function in two ways:

function_name() {
#function code
}

If you use the function keyword you can omit the () parentheses:

function function_name {
#function code
}

After you have defined the function, you can call it writing its name:

function_name() {
#function code
}
function_name

If you want to pass arguments to the function you can just add it after the function call:

function_add() {
TOTAL_NUMBER=$(($1+$2))
}

function_add 5 3
echo “Total number is: $TOTAL_NUMBER”

this code will write:
Total number is: 8

In the upper code we used a global variable, you can also use the echo from a function to return a variable from the function:

function_add() {
TOTAL_NUMBER=$(($1+$2))
echo $TOTAL_NUMBER
}

FINAL_NUMBER=$(function_add 5 3)
echo “Total number is: $FINAL_NUMBER”

If you have any questions or improvements leave a comment !

Pubblicato in Uncategorized | Contrassegnato , , | Lascia un commento

How to repeat a command n times in Bash

Here a simple tutorial on how to repeat a command n times in Bash:

for i in {1..5}
do
echo “Command number:$i”
done
This example will print this output:

Command number: 1
Command number: 2
Command number: 3
Command number: 4
Command number: 5

we can write it as a single line too:
for i in {1..5}; do echo "Command number: $i"; done

If we need a condition-based expressions, we can use this approach as well:

for ((i=1;i<6;i++)); do echo "Command number: $i"; done

The same can be done using the while loop:

i=1
while [[ $i -le 5 ]]; do
echo "Command number: $i"
let ++i;
done

And we can write the above in the one line format too:
i=1; while [[ $i -le 5 ]]; do echo “Command number: $i”; let ++i; done

Pubblicato in Uncategorized | Contrassegnato , , | Lascia un commento

Come lanciare script personalizzati con il menu del pulsante destro di caja

Per creare uno script ed eseguirlo dal menu del pulsante destro di caja basta creare uno script bash e metterlo in :
/home/user/.config/caja/scripts/
Dove al posto di user va messo il proprio utente.
Poi si deve rendere lo script eseguibile con sudo chmod +x nomescript.sh

Un esempio di script molto utile è questo sotto che comprime la cartella selezionata e poi la cancella tenendo solo la cartella compressa.
Usatelo a vostro rischio e pericolo.


prefix="file://"
string=$(echo $CAJA_SCRIPT_SELECTED_URIS | tr "%20" " " )  #replace %20 with double space
string=$(echo $string | tr "  " " " )  #replace double space with single space
#echo  "$string" >> a
file_path=$(echo "$string" | grep -oP "^$prefix\K.*")  #remove file:// from filename
current_file=$(basename "$file_path")  #get the name after the last slash
#echo  "$file_path" >> a
#echo  "$current_path" >> a
zip -r -j "$current_file" "$current_file" && rm -rf "$current_file"  #compress the file and delete the original

Metodo testato con debian 9 con Mate e gestore file Caja.

Pubblicato in guide, linux | Lascia un commento

Comprimere tutte le cartelle presenti in una directory usando rar su Linux

Per comprimere tutte le cartelle presenti nel percorso attuale (solo le cartelle) :
Aprire un terminale bash, spostarsi nel percorso desiderato con cd, poi dare:


for dir in */
do
base=$(basename "$dir")
rar a "${base}" "$dir"
echo $base >> "log"
rm -rf "$base"
done

Premiere invio
Ogni cartella verrà sostituita da un rar con lo stesso nome e lo stesso contenuto della cartella.
Provate prima con delle cartelle di prova..

Pubblicato in guide, linux, note, Uncategorized | Contrassegnato , , | Lascia un commento

Open Network Object System(O.N.O.S)

Questo progetto si chiama O.N.O.S. ed è un sistema domotico.
Grazie ad O.N.O.S. è possibile controllare qualsiasi dispositivo elettrico da internet con un solo click.
Il sistema è semplice ed intuitivo infatti si può iniziare ad utilizzarlo entro 5 minuti dall’estrazione dalla scatola.
L’utente deve solamente collegare la presa della corrente all’ OnosCenter (il cervello principale dell’impianto) ed O.N.O.S. farà il resto!
Lo scopo del progetto e’ di permettere a chiunque (anche privo di esperienza elettrica ed informatica) di poter configurare e realizzare la propria casa domotica senza dover chiamare l’elettricista , senza dover rompere e ricablare la casa e sopratutto senza bisogno di investire un capitale!
O.N.O.S. è modulare quindi l’utente può acquistare inizialmente solo l’OnosCenter (che consente di comandare già da subito una presa della corrente) e prendere poi successivamente solo i componenti aggiuntivi che desidera ,configurando così la propria casa su misura.
La differenza tra O.N.O.S e gli altri sistemi domotici è che non richiede l’uso di cavi ne di collegamenti radio in quanto la comunicazione tra le varie apparecchiature avviene tramite i cavi della corrente elettrica già presenti nell’edificio (questa tecnologia prende il nome di onde convogliate , http://it.wikipedia.org/wiki/Powerline).
Per utilizzare O.N.O.S. non è richiesta l’installazione di nessun software e di nessuna app , in quanto il sistema fornisce una pagina web che qualunque dispositivo dotato di browser potrà visualizzare (tablet, telefoni, pc ,ebook reader …)
Il sistema funziona anche localmente quindi senza l’uso di internet si potrà usufruirne collegandosi alla rete locale, cosa che i sistemi basati su cloud non permettono.

Altro grande vantaggio rispetto alla concorrenza è che l’interfaccia è completamente personalizzabile , sia nella grafica sia nella suddivisione degli ambienti.
E’ possibile modificare il colore e la forma dei pulsanti che controllano gli apparecchi elettrici (è persino possibile utilizzare immagini).
La suddivisione degli ambienti è facilmente impostabile dall’utente che con pochi click potrà nominare le proprie utenze e
suddividerle nelle proprie stanze.

Funzionamento:
Il computer principale (chiamato anche OnosCenter) comunica con i nodi (che sono i dispositivi O.N.O.S ai quali l’utente collegherà i propri elettrodomestici ) tramite onde convogliate.
Quando l’utente si collega al sito di O.N.O.S , l’OnosCenter crea la pagina web da visualizzare in base allo stato dei vari nodi (acceso , spento …) , premendo su un pulsante l’utente può cambiare lo stato del nodo associato al pulsante , a questo punto il pulsante cambia colore e scritta per confermare l’avvenuta azione.
Se un nodo fosse spento o irraggiungibile il relativo pulsante indicherà con il colore grigio che l’operazione è in attesa.
Questo garantisce all’utente la conoscenza dello stato effettivo degli elettrodomestici comandati.

Tra i tipi di nodi in vendità saranno disponibili :

Prese intelligenti :
Collegando il proprio elettrodomestico ad una di queste prese sarà possibile accenderlo e spegnerlo da remoto

Portalampada intelligenti :
Inserendo questi dispositivi tra il proprio portalampada e la propria lampadina si potrà controllarla da remoto

Barriere infrarosso :
Posizionando queste barriere vicino alle porte si potrà sapere se all’interno della stanza ci sono persone e spegnere le luci se non ci sono.

Sensore igrometrico :
Per misurare l’umidità del terreno e irrigare di conseguenza la zona controllata

Sensori di temperatura:
Tramite questi sensori si potrà sapere le temperature di ciascun ambiente e condizionarlo di conseguenza

Esempi particolari di utilizzo:

Antifurto:
Con O.N.O.S. sarà possibile la realizzazione di un antifurto affidabile ed economico

Distributore di cibo automatico di pollai ed altri animali :
Con O.N.O.S. sarà facilmente automatizzabile la distribuzione degli animali sia domestici che non.
Sarà inoltre possibile tramite webcam controllarne visivamente lo stato.

Controllo di presenza negli ostelli/baite/agriturismi/resort : tramite barriera infrarossi O.N.O.S. permette di controllare se ci sono persone nella stanza in modo da poter effettuare le pulizie solo quando i clienti non sono presenti, inoltre può far risparmiare sul costo della corrente elettrica disattivando tutti gli apparecchi elettrici della stanza quando è vuota.

Controllo del livello di acqua nei campi:
Avendo diverse pompe nei pozzi si potrà controllare il livello dell’acqua ed alimentarle in base ad una soglia.
Questo senza dover passare altri cavi oltre a quelli già esistenti delle pompe stesse.

Controllo luce ed umidità di una serra:
Grazie a sensori di temperatura e di umidità O.N.O.S. può essere facilmente utilizzato per l’automatizzazione di una serra , illuminando ed innaffiando le piante in base ad orari e sensori.

Controllo della casa per anziani :
Avendo l’interfaccia altamente personalizzabile O.N.O.S. si predispone egregiamente per l’uso da parte degli anziani in quanto è possibilile fare interfaccie con pulsanti enormi facilmente leggibili.
Grazie ad O.N.O.S. l’anziano avrà il controllo della casa senza alzarsi dalla poltrona .

Ecco il video dimostrativo:

Note tecniche (utili solo per gli sviluppatori):

O.N.O.S. è rilasciato sotto licenza opensource , questo per favorirne lo sviluppo e dare la possibilità agli utenti di migliorarlo ulteriormente.

Il software è completamente gratuito e puo essere eseguito su qualsiasi dispositivo abbia python quindi qualsiasi pc con linux tra cui anche il raspberry pi ed il beaglebone (persino su alcuni router con openwrt è possibile eseguirlo!)

Non è richiesta alcuna installazione , basta semplicemente scaricare il programma ed eseguirlo con python

Speriamo di permettere a sempre più persone di ‘giocare’ con l’internet of things per questo motivo il progetto è stato rilasciato sotto la licenza opensource GNU General Public License 3 che ne permette l’uso gratuito.

O.N.O.S. è stato sviluppato usando prevalentemente le librerie build in di python quindi non richiede l’installazione di nessuna libreria aggiuntiva.
I nodi O.N.O.S. sono basati su arduino quindi volendo si possono autocostruire e quindi adattare facilmente alle proprie esigenze.

Se avete delle domande, suggerimenti o opinioni da esprimere lasciate un commento

https://sourceforge.net/projects/onos/

This project name is O.N.O.S wich stand for Open Network Object System and is an home automation system .
Using O.N.O.S. is possible to control any electric device with a single click.
The system is simple and user frendly in fact you can start using it within 5 minutes after removal from the box
(out of the box concept).
The user only has to insert the power plug to the ‘OnosCenter’ (the main brain of the system) and O.N.O.S. will make all the remaing work (no configuration required).
The mission of this project is to make users (also without computer and electrical knowledge) able to install and customize their own home automation system .
Without the need to call electricians, broke the walls and rewire the house and especially without spending a pile of money.

O.N.O.S. is modular so the user can start buying only the OnosCenter (wich allow to controll one power socket) and then he can buy only the modules needed.

The main difference between O.N.O.S and the other automation systems is that it doesn’t require using new wires or radio signals
because all the data transmission travels through the power line wires (powerline technology
http://en.wikipedia.org/wiki/Power-line_communication).
In order to use O.N.O.S. you don’t have to install any software or application since the system serves a webpage wich any device having a browser will be able to displays. (phones , tablets ,pcs ebook readers and so on)

The system works also locally so without using internet you could just connect to your local network ! this feature is not avaible in the cloud based automation systems.

Another big advantage in comparison to other systems is the fully customizable interface both in the graphics and in the zones division.
Is possible to modify the colour and the shape of the buttons that control the electrical appliances( is also possible to use pictures).
The zones division is easily configurable and within few clicks the user can renames and subdivides the electrical devices in each room.

Watch the demo videos :

Working :
The main pc also called OnosCenter communicates through the powerline to the other nodes (wich are the O.N.O.S devices to whom the user will connect the electrical appliances) .
When the user goes to the O.N.O.S. the OnosCenter will create a webpage based on the nodes status (turned on , off ..), pressing on a button the user will be able to change the node status associated with the button.
Then the button will change text and colour in order to confirm the successful operation.
If a node was shut down or unreachable the button will show this with a gray colour , so the user will know that the transaction is pending.
This ensures the user will always know the true status of the appliances controlled.

Technical notes (useful only to developers):

O.N.O.S. is released under open source license, this to enhance its development and to enable users to improve it further.

The software is completely free and can be run on any device wich has python so any pc with linux including the raspberry pi and BeagleBone will be fine (even on some routers with openwrt you can run it!)

No installation required, you just download the program and run it with python.

We hope to allow more people to ‘play’ with the internet of things for this reason the project was licensed under the open source GNU General Public License 3, which allows free use.

O.N.O.S. was developed using mainly build-in python libraries therefore does not require the installation of any additional libraries.

The O.N.O.S. nodes are Arduino based , you can build them yourself and so easily adapt the system to your needs.

If you have some question or suggestions please leave me a comment!

https://sourceforge.net/projects/onos/

Pubblicato in Projects | 3 commenti

Problemi di stabilità e di avvio con linux su amd1090t

Avendo installato Debian Wheezy 7.3 sul mio pc un amd phenom2 x6 1090t montato su asrock 890gx extreme 3 avevo notato che all’avvio 1 volta ogni 10 il pc si bloccava dicendo rcu_sched detected stalls on CPUs/tasks:
Non riuscivo a capire proprio a cosa fosse dovuto il problema.
Inoltre alcune volte il pc si bloccava ed ero costretto a riavviare da pulsante.
Alla fine ho scoperto che tra i pacchetti debian è presente un driver chiamato amd64-microcode che fornisce i driver necessari
ai processori amd !!!
Installato quel pacchetto non ho più riscontrato problemi .
Quindi per installare il pacchetto aprite un terminale e digitate:


sudo apt-get update

sudo apt-get install amd64-microcode


Inoltre conviene mettere nella blacklist il modulo seguente se si utilizz una scheda video ati ma non si usa l’audio attraverso hdmi.
sudo nano /etc/modprobe.d/user-blacklist.conf
inserire nel file che dovrebbe essere vuoto questo:
blacklist snd_hda_codec_hdmi

Spero di esservi stato di aiuto , se è così perfavore lasciatemi un commento.

Pubblicato in linux, linux | Contrassegnato , , , , | 1 commento

Note personali

Qualche comando da terminale utile per linux:

comando grep x trovare tutti i file che contengono all’interno una stringa , partendo dalla cartella locale ricorsivamente

grep -r “define string_to_find” “.”

per fare la copia compressa:

spostarsi nella cartella da copiare

cd /media/partizione_da_copiare/

sudo tar -cvpzf /destinazione/backup.tar.gz *

per decomprimere:

sudo tar -xvpzf /path/to/backup.tar.gz -C /media/whatever --numeric-owner

—————————————————————————————————————————

Estrarre tutti i files da cartelle in modo ricorsivo:

find /src/dir -type f -exec mv --backup=numbered -t /dst/dir {} +

The command will find all regular files under /src/dir (including all subdirectories) and move them to the /dst/dir by use of the command mv. Just replace the directories by yours. Files with the same names will be renamed automatically.

Selecting files to move

If you want to move just MP3 files, add -iname “*.mp3” option to the find command after -type f.

———————————————————————————————————————–

Copiare sistemi linux:

montare le 2 partizioni da un sistema a parte ,live cd ad esempio

sudo cp -rfa -v /media/disk1/* /media/disk2/

esempio:

sudo cp -rfa -v /media/9b3153ba-a4df-4408-b6ac-197893ac8b22/* /media/b4a375f0-3cae-41ec-a130-fd9fa5207b07/home/

—————————————————————————————————————————–
Formattare partizioni o penne usb:

sudo mkfs.ext4 -O ^has_journal /dev/sdx1
sudo mkfs.ext3 -O ^has_journal /dev/sdx1
sudo mkfs.ext2 -t /dev/sdx1

—————————————————————————————————————————–
Per vedere gli id delle partizioni dare:
sudo blkid
—————————————————————————————————————————–

Per vedere lo stato di tutte le partizioni montate dare:

df -h
—————————————————————————————————————————–

Per vedere i messaggi del bus dare:

tail -f /var/log/messages

—————————————————————————————————————————–
Per vedere tutti i files e le cartelle con i permessi in una directory dare:
ls -lrt
—————————————————————————————————————————–
Per montare una iso :
sudo mount -o loop disk1.iso /mnt/disk

—————————————————————————————————————————–
Per montare cartella condivisa samba:


sudo mkdir /media/server

sudo chmod -R 777 /media/server

sudo chown -R marco /media/server

Poi aprire /etc/fstab e aggiungere:

//ipserver/server /media/server cifs username=miousername,password=miapassword,noauto,user,defaults,rw,noatime 0 0

la condivisione sul server (/etc/samba/smb.conf) si deve chiamare “server”

—————————————————————————————————————————–
comprimere cartella:

tar -c cartella/ | pbzip2 -c -k -v > myfile.tar.bz2

oppure per usare 2 gb di ram:
tar -c cartella/ | pbzip2 -c -k -v -m2000 > myfile.tar.bz2

estrarre:
pbzip2 -dc -v myfile.tar.bz2 | tar x

—————————————————————————————————————————–
Programmi da installare:
sudo apt-get update
sudo apt-get install -y vlc mplayer2 comix transmission mencoder ffmpeg arduino chromium-browser gdebi gdebi-core

—————————————————————————————————————————–
Cache in ram

sudo nano /etc/rc.local

Right above “exit 0″ we’ll add the commands that need to run each time at startup:

mkdir /tmp/ram
mkdir /tmp/ram/cache
chmod 777 /tmp/ram
chmod 777 /tmp/ram/cache

nano /etc/fstab

aggiungi:

none /tmp tmpfs defaults,rw,noatime 0 0

sudo nano /etc/fstab

al file

For Chromium:

rm -rf /home/marco/.cache/chromium

ln -s /tmp/ram /home/marco/.cache/chromium

For Mozilla Firefox:

The cache for Firefox can be found inside your Firefox profile (which includes a big random string in it). As long as you only have one Firefox profile you can do this:

cd ~/.mozilla/firefox/*default

rm -rf Cache

ln -s /tmp/ram/cache Cache
—————————————————————————————————————————–

creare nuovo utente:
sudo useradd newuser
sudo passwd newuser
sudo mkdir /home/newuser
sudo chown newuser:users /home/newuser

—————————————————————————————————————————–
lanciare un comando da un altro utente essendo root:

su

/bin/su – newuser -c ” mkdir prova”
—————————————————————————————————————————–
Eseguire script allo spegnimento:

sudo chmod a+x /etc/init.d/smonta.sh

cd /etc/init.d/

sudo update-rc.d smonta.sh start 20 0 6
—————————————————————————————————————————–

—————————————————————————————————————————–

—————————————————————————————————————————–

—————————————————————————————————————————–

—————————————————————————————————————————–

—————————————————————————————————————————–

—————————————————————————————————————————–

Pubblicato in note | Lascia un commento

Come caricare tutto il sistema linux in ram e velocizzare al massimo il pc!

Ciao a tutti in questo articolo vedremo come caricare tutto il sistema operativo linux in ram
per poter ottenere un pc con una velocità incredibile.
Attenzione :
Consiglio vivamente di fare un back up del vostro sistema prima di provare la guida.
Non mi assumo nessuna responsabilità per la perdita dei vostri dati.

Necessario :
–Almeno 8 Gb di ram

–Un sistema operativo debian based , io ho provato su debian 7.02 e debian 6.06
dovrebbe funzionare anche su Ubuntu e altre distro derivanti da debian.

–Medie conoscenze del teminale linux

Vantaggi:
Alla fine della guida avrete il sistema più veloce che abbiate mai visto !!!
Più veloce di qualsiasi sistema installato su ssd !
Inoltre creeremo una voce del grub che permetterà di caricare il sistema su ram o su hard disk.
Quando sceglierete di avviare su ram tutti i cambiamenti fatti al sistema in questa modalità saranno
dimenticati una volta riavviato.
Questo significa che potrete installare programmi , provare comandi da terminale
ed altre cose simili senza aver paura di corrompere il vostro sistema!!!

Svantaggi:
L’avvio potrebbe richiedere anche 10 minuti a seconda di che hard disk avete e di quanto spazio
occupa il vostro sistema linux.
Durante l’avvio vedrete uno schermo nero con un cursore bianco lampeggiante.
Al riavvio perdete tutti i dati e i cambiamenti che non avete salvato su hard disk
si può evitare questo problema in vari modi che spiegherò più avanti.

Perchè mai mi è venuto in mente di caricare tutto il sistema sulla ram?
Perchè dopo aver comprato ed assemblato i vari pezzi del mio pc questo riusultava non essere
veloce come desideravo .
Il mio pc è così composto :
Amd Phenom 2 X6 Black Edition
Scheda madre asrock 890GX Extreme3
16 GB G.SKILL DDR3 1600
da poco ho aggiunto una Ati 7970xfx Ghost Edition

Dopo aver installato Mint Debian Edition avevo un sistema mediamente veloce
tuttavia avevo composto il pc nella speranza che fosse meglio di “mediamente veloce”.
Quindi decisi di provare a capire cosa mi rallentasse il pc in quel modo e alla fine pensai
che probabilmente era dovuto agli hard disk lenti che avevo.
Trovai quindi un post interessante:
http://reboot.pro/topic/14547-linux-load-your-root-partition-to-ram-and-boot-it/

Decisi di provare a seguire la guida .
La prima volta non sembrava essere partito e riavviai
poi capii invece che per copiare tutto il sistema da un hard disk alla ram ci avrebbe messo molto tempo
decisi di spettare con schermo nero sul display per vedere se dopo un pò di tempo sarebbe partito.
Dopo circa 12 minuti il display mi mostrò la schermata di linux e una volta provato il sistema rimasi
molto stupito, era una scheggia!!! era istantaneo!!!
premevo per avviare un qualsiasi programma e appena lasciato il click quello era già a schermo!
Stupendo!

Decisi quindi di fare questa guida.

Perchè mettere sulla ram tutto il sistema operativo velocizza così tanto il pc?
perchè la parte del pc più lenta è l’unica parte meccanica del pc ed è l’hard disk!!!
ogni volta che voi aprite un programma quello viene letto dall’hard disk
anche il più veloce degli hard disk è un collo di bottiglia per gli attuali pc .
Eliminando la lettura e scrittura sull’hard disk si elimina un tempo di attesa lunghissimo!
La ram è molto più veloce di un qualsiasi hard disk la ddr3 va da 6400 MB/s a 12800 MB/s
a seconda del modello mentre un hard disk allo stato solido va da 250 a 600 MB/s
Un hard disk a rotazione invece va da 50 a 150MB/s.
Ora vedete che la velocità della ram DDR3 più lenta è come minimo 42 volte più veloce del più
veloce degli hard disk a rotazione.
Il vostro pc non andrà 42 volte più veloce ma sicuramente la differenza si vedrà
vale davvero la pena il lavoro per ottenerla.

Iniziamo con la guida:

Io sono partito da una versione di debian 7.2 installato da netcd e sulla quale ho installato
il minimo indispensabile e Mate.

Aprite un terminale

scrivete la seguente riga per fare un back up del file fstab :
sudo cp /etc/fstab /etc/fstab.bak
Ora aprite con il vostro editor di testo preferito come amministratori il file :
sudo pluma /etc/fstab oppure sudo gedit /etc/fstab oppure sudo nano /etc/fstab
Cercate la riga dove è presente la partizione di root /

la mia era scritta così:
UUID=b4a375f0-3cae-41ec-a130-fd9fa5207b07 / ext4 noatime,errors=remount-ro 0 0
Assicuratevi che sulla vostra vecchia riga della root sia disabilitato il fsck quindi che ci siano i 2 zeri
come alla fine della mia riga di esempio , se così non fosse sostituire i numeri presenti con 2 zeri
dopodichè riavviare il pc.
Riaprire il file come prima e proseguire.

A questo punto sostituite la riga della root con :
none / tmpfs defaults,noatime,nodiratime,discard 0 0
Salvate e chiudete il file.

Spostatevi dando nel terminale :
cd /usr/share/initramfs-tools/scripts/
Fate una copia del file local con:
sudo cp local local.bak
Aprite il file con il vostro editor di testo come amministratore:
sudo pluma local oppure sudo gedit local oppure sudo nano local
Cercate un pezzo simile a questo:
# FIXME This has no error checking
# Mount root
if [ "${FSTYPE}" != "unknown" ]; then
mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} ${rootmnt}
else
mount ${roflag} ${ROOTFLAGS} ${ROOT} ${rootmnt}
fi[ "$quiet" != "y" ] && log_begin_msg "Running /scripts/local-bottom"
run_scripts /scripts/local-bottom
[ "$quiet" != "y" ] && log_end_msg}

In particolare dovreste trovare la riga # Mount root che vi dice che siete nel punto giusto.
Sostituite le righe con le seguenti:
# FIXME This has no error checking
# Mount root
mkdir /ramboottmp
mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} /ramboottmp
mount -t tmpfs -o size=100% none ${rootmnt}
cd ${rootmnt}
cp -rfa /ramboottmp/* ${rootmnt}
umount /ramboottmp
[ "$quiet" != "y" ] && log_begin_msg "Running /scripts/local-bottom"
run_scripts /scripts/local-bottom
[ "$quiet" != "y" ] && log_end_msg
}

A seconda della versione di linux che avete potrebbero cambiare delle righe ma non dovrebbero
differire di molto.

Salvate e chiudete l’editor.

Ora date nel terminale :
sudo mkinitramfs -o /boot/initrd.img-ramboot
Potrebbe darvi due warning ma è normale
A questo punto ripristinate il vecchio local con:
sudo cp -f local.bak local
Aprite il file /boot/grub/grub.cfg con editor di testo come amministratori:
sudo pluma /boot/grub/grub.cfg oppure sudo gedit /boot/grub/grub.cfg
Trovate il primo pezzo di codice che assomigli al mio:
menuentry 'Debian GNU/Linux, con Linux 3.2.0-4-amd64' --class debian --class gnu-linux --class gnu --class os {
load_video
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd2,msdos1)'
search --no-floppy --fs-uuid --set=root b4a375f0-3cae-41ec-a130-fd9fa5207b07
echo 'Caricamento Linux 3.2.0-4-amd64...'
linux /boot/vmlinuz-3.2.0-4-amd64 root=UUID=b4a375f0-3cae-41ec-a130-fd9fa5207b07 ro quiet
echo 'Caricamento ramdisk iniziale...'
initrd /boot/initrd.img-3.2.0-4-amd64
}

Copiatelo e incollatelo appena più in alto modificandolo poi come segue:

In menuentry aggiungete una scritta che vi faccia sapere che è la voce che carica in ram in sistema:
io ho aggiunto RAM!!! (state attenti a non farla troppo lunga o potrebbe essere un problema)
Poi nella riga dove è scritto :
initrd /boot/qualcosa
sostituite qualcosa con:
initrd.img-ramboot
Il mio menuentry risulta essere questo:
menuentry 'Debian GNU/Linux,Linux3.2.0-4-amd64 RAM!!!' --class debian --class gnu-linux --class gnu --class os {
load_video
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd2,msdos1)'
search --no-floppy --fs-uuid --set=root b4a375f0-3cae-41ec-a130-fd9fa5207b07
echo 'Caricamento Linux 3.2.0-4-amd64...'
linux /boot/vmlinuz-3.2.0-4-amd64 root=UUID=b4a375f0-3cae-41ec-a130-fd9fa5207b07 ro quiet
echo 'Caricamento ramdisk iniziale...'
initrd /boot/initrd.img-ramboot
}

In patica abbiamo creato un’alta voce del grub uguale ma che invece di partire con :
initrd /boot/initrd.img-3.2.0-4-amd64

parte con
initrd /boot/initrd.img-ramboot

E quindi carica in ram il sistema.

A questo punto salvate e chiudete il file .

Riavviate ed ora dovreste avere nel grub 2 voci simili una delle quali ha RAM!!! nella scritta .

Scegliete quella e dopo 10-15 minuti il vostro sistema sarà partito su ram ed avrete una velocità di
risposta estremamente veloce!

Riavviando e selezionando la voce che non fa partire il sistema in ram potrete avere il vecchio
sistema,tutte le modifiche applicate a questo sistema saranno copiate poi nel sistema in ram.

Io ho la cartella home praticamente vuota e il mio sistema occupa 3,7 Gb quindi a me
basterebbero 6 Gb di ram per far girare il tutto
Perchè 4 Gb li uso per tutti i files di sistema e 2 Gb di ram li uso come ram.
Con 8 gb di ram si dovrebbero far girare quasi tutti i sistemi operativi debian.

Consiglio di non tenere nulla nella home a parte i file di configurazione dei programmi e di salvare
tutti i files di uso comune in una partizione secondaria come faccio io.

Per velocizzare il boot da 15 minuti ad un minuto io uso un hard disk alllo stato solido
che in questo modo riduce di molto il tempo che il pc impiega a caricare il sistema da disco a ram.

Ho scoperto inoltre da poco che funziona la sospensione in ram ed è perfetta perchè in questo
modo il pc lascia alimentata solamente la ram , che così mantiene i dati!
Così in 20 secondi sono di nuovo operativo ed ho tutti i programmi aperti prima della sospensione.

Se avete domande suggerimenti correzioni oppure l’articolo vi è piaciuto commentate!

Condividete l’articolo per migliorare le prestazioni dei pc e aumentare la diffusione di linux!

Pubblicato in guide, linux | 16 commenti