Catégorie : Ligne de commande

1 août 2015 /

Voici une solution simple qui permet de limiter les écritures sur votre disque SSD afin de prolonger sa durée de vie.

Pour cela, nous allons utiliser l’outil Ramlog qui crée un disque temporaire en mémoire vive, où sont stockés et mis à jour les logs. Les logs originels sont conservés dans le répertoire /var/log.hdd jusqu’à l’arrêt de ramlog où à ce moment elles prennent le chemin inverse. Donc pas de perte de logs systèmes sauf bien sûr si votre ordinateur plante.

On va également placer le paramètre « swappiness ». Ubuntu est conçu pour mettre directement en SWAP, ce qui est destiné à la RAM à partir d’un certain taux d’occupation.
Par défaut ce paramètre est réglé à 60 sur Ubuntu. Cela signifie qu’à partir de 40% d’occupation en RAM, le système part écrire dans la SWAP. On va réduire cette valeur à 90.

On va aussi changer la destination du cache de Firefox et les options de montages des disques.

Cela limitera ainsi grandement le nombre d’accès en écriture sur la carte.

Installation de ramlog sur Ubuntu

Il faut d’abord télécharger le paquet .deb:

wget http://www.tremende.com/ramlog/download/ramlog_2.0.0_all.deb

Maintenant que nous avons le  paquet ramlog_2.0.0_all.deb, il faut l’installer:

sudo dpkg -i ramlog_2.0.0_all.deb

On active Ramlog au démarrage:

sudo update-rc.d ramlog start 2 2 3 4 5 . stop 99 0 1 6 .

Il ne reste plus qu’a redémarré:

sudo reboot

Pour voir l’état de Ramlog il suffit d’utiliser la commande suivante :

/etc/init.d/ramlog status

En cas de problème la log de Ramlog peut être consulté:

more /var/log/ramlog

Pour désinstaller Ramlog :

sudo dpkg -P ramlog

Vous pouvez modifier la configuration de Ramlog en éditant le fichier /etc/default/ramlog.

 

Modification du Swappiness

On édite le fichier:

vi /etc/sysctl.conf

On recherche ensuite le paramètre « vm.swappiness=60 » suivant.

S’il n’est pas présent, ajoutez le et mettez la valeur à 10 pour indiquer au système d’écrire en SWAP à partir de 90% d’occupation de la RAM:

vm.swappiness=10

Il ne vous reste plus qu’a redémarrer votre système pour en profiter.

Vous pouvez aussi supprimer votre partition Swap soi votre machine à beaucoup de Ram ( > à 6 Go).

Pour cela, soit vous ne créer aucune partition swap lors de l’installation du système, soit vous commentez la ligne de montage du fichier swap dans le fichier /etc/fstab:

# swap was on /dev/sda5 during installation
#UUID=1f4d44e9-25bc-43f3-abe7-5a3d002b0d3a none            swap    sw              0       0 

Ne pas écrire sur le disque la date du dernier accès

Montez vos partitions avec l’ option  » noatime » en ouvrant le fichier /etc/fstab:

UUID=5afbf352-08d6-b368-3be6e4574b7c /               ext4    noatime,errors=remount-ro 0       1 

Mettre les fichiers temporaires ( ~ )en mémoire vive

Ajoutez la ligne suivante à la fin du fichier /etc/fstab pour mettre les fichiers temporaires en mémoire vive:

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0 

 

# swap was on /dev/sda5 during installation
#UUID=1f4d44e9-25bc-43f3-abe7-5a3d002b0d3a none            swap    sw              0       0 

Déplacer le cache Firefox

Tapez about:config dans firefox et puis créez une nouvelle chaîne de caractères que vous nommerez browser.cache.disk.parent_directory et saisir comme destination /tmp/firefox. Vous pouvez également si vous avez une connexion suffisamment rapide, désactiver le cache persistant en modifiant l’option browser.cache.disk.enable avec la valeur false.

 

Activer le Trimming

Vous devez d’abord vérifier que votre SSD supporte la fonction TRIM avec cette commande:

sudo hdparm -I /dev/sda

Cela va lister tous les paramètres et fonctionnalités du SSD. Dans le paragraphe « Commands/features » une ligne doit clairement indiquer le support TRIM:

/dev/sda:

ATA device, with non-removable media
Model Number:       OCZ-VERTEX4
Serial Number:      OCZ-695030Z008038154
Firmware Revision:  1.5
Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.6, SATA Rev 3.0
Standards:
Supported: 9 8 7 6
Likely used: 9
Configuration:
Logical        max    current
cylinders    16383    0
heads        16    0
sectors/track    63    0
--
LBA    user addressable sectors:  250069680
LBA48  user addressable sectors:  250069680
Logical  Sector size:                   512 bytes
Physical Sector size:                   512 bytes
Logical Sector-0 offset:                  0 bytes
device size with M = 1024*1024:      122104 MBytes
device size with M = 1000*1000:      128035 MBytes (128 GB)
cache/buffer size  = unknown
Nominal Media Rotation Rate: Solid State Device
Capabilities:
LBA, IORDY(can be disabled)
Queue depth: 32
Standby timer values: spec'd by Standard, no device specific minimum
R/W multiple sector transfer: Max = 16    Current = 16
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
Enabled    Supported:
*    SMART feature set
Security Mode feature set
*    Power Management feature set
*    Write cache
*    Host Protected Area feature set
*    WRITE_BUFFER command
*    READ_BUFFER command
*    NOP cmd
*    DOWNLOAD_MICROCODE
*    48-bit Address feature set
*    Mandatory FLUSH_CACHE
*    General Purpose Logging feature set
*    WRITE_{DMA|MULTIPLE}_FUA_EXT
*    64-bit World wide name
*    Write-Read-Verify feature set
*    WRITE_UNCORRECTABLE_EXT command
*    Gen1 signaling speed (1.5Gb/s)
*    Gen2 signaling speed (3.0Gb/s)
*    Gen3 signaling speed (6.0Gb/s)
*    Native Command Queueing (NCQ)
Non-Zero buffer offsets in DMA Setup FIS
*    DMA Setup Auto-Activate optimization
*    In-order data delivery
*    DOWNLOAD MICROCODE DMA command
*    WRITE BUFFER DMA command
*    READ BUFFER DMA command
       *    Data Set Management TRIM supported (limit 16 blocks)
Security:
Master password revision code = 65534
supported
not    enabled
not    locked
not    frozen
not    expired: security count
not    supported: enhanced erase
20min for SECURITY ERASE UNIT. 400min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 5e83a9749d61c923
NAA        : 5
IEEE OUI    : e83a97
Unique ID    : 49d61c923
Checksum: correct 

 

Si le SSD supporte le Trimming, Il suffit d’éditer le fichier /etc/fstab et de rajouter l’option discard sur les volumes en ext4:

# / was on /dev/sda1 during installation
UUID=5afbf352-08d6-b368-3be6e4574b7c /               ext4    noatime,discard,errors=remount-ro 0       1 
30 juillet 2015 /

On commence par lister les disques détectés:

fdisk -l

Pour partitionner votre disque en ligne de commande, on utilise la commande fdisk suivie du nom du disque sur lequel vous voulez installer Linux, par exemple:

fdisk /dev/sda.

tapez m, afin d’accéder à la liste de toutes les commandes possibles.

fdisk3

On choisi les options à appliquer en entrant des lettres, généralement des initiales de ce pour quoi c’est programmé.

Les principales commandes de fdisk sont donc :

a   bascule le drapeau d'amorce
b   éditer l'étiquette BSD du disque
c   basculer le drapeau de compatibilité DOS
d   supprimer la partition
l   lister les types de partitions connues
m   afficher ce menu
n   ajouter une nouvelle partition de type linux native (ext2fs) par défaut.
o   créer une nouvelle table vide de partitions DOS
p   afficher la table de partitions
q   quitter sans enregistrer les changements
s   créer une nouvelle étiquette vide pour disque de type Sun
t   modifier l'identifiant de système de fichiers d'une partition (83 linux native, 82 linux swap).
u   modifier les unités d'affichage/saisie
v   vérifier la table de partitions
w   écrire la table sur le disque et quitter
x   fonctions avancées (pour experts seulement)

Rappel: rappelez-vous que le nombre de partitions dites primaires est limité à 4. Donc, si vous souhaitez définir plus de 4 partitions sur le même disque, l’une de ces 4 partitions primaires doit être définie comme étendue.

Pour regarder les partitions que nous avons sur notre disque, on tape  « p » dans la console :

fdisk2

On vas supprimer maintenant la partition  /dev/sdb1 comme cela :

fdisk4

Nous allons créer une partition primaire sur la totalité de l’espace:

fdisk5

Fdisk nous demande le type de partition ( » p  » pour primaire et  » e  » pour étendue):

fdisk6

Taper Entrer pour validez la valeur par defaut.

Pour sauvegarder et quitter l’utilitaire et créer la table des partitions sur le disque il suffit d’utiliser la lettre w :

fdisk7

Pour avoir une prise en compte des partitions créés sans avoir à redémarrer:

partx -v -a /dev/sdb

Si cela ne fonctionne pas, redémarrez votre machine….

Il ne vous reste plus qu’à créer le système de fichiers pour les partitions créés grâce à une commande de type mke2fs (ext2), mkreiserfs (ReiserFS), mkfs.ext4 (ext4).

Pour formater sa partition en ext3:

mkfs.ext3 -b 4096 /dev/sdb1

Pour formater sa partition en ext4:

mkfs.ext4 -b 4096 /dev/sdb1

Pour une partition swap:

mkswap /dev/sdb5

Il ne vous restera plus qu’à créer un point de montage, du genre mkdir /media/starmate, puis monter la partition dans ce répertoire, par exemple mount /dev/sdb1 /media/starmate.

29 juillet 2015 /

L’OS du Raspberry Pi fonctionnant sur une carte SD (ou micro SD), voici une solution simple qui permet de limiter les écritures afin de prolonger la durée de vie de votre carte SD.

Pour cela, nous allons utiliser l’outil Ramlog qui crée un disque temporaire en mémoire vive, où sont stockés et mis à jour les logs. Les logs originels sont conservés dans le répertoire /var/log.hdd jusqu’à l’arrêt de ramlog où à ce moment elles prennent le chemin inverse. Donc pas de perte de logs systèmes sauf bien sûr si votre ordinateur plante. Cela limite ainsi grandement le nombre d’accès en écriture sur la carte.

Pour installer Ramlog sur le Raspberry Pi :

sudo apt-get install rsync
sudo apt-get install lsof
wget http://www.tremende.com/ramlog/download/ramlog_2.0.0_all.deb
sudo dpkg -i ramlog_2.0.0_all.deb

Ensuite, editez le fichier suivant :

sudo vi /etc/init.d/ramlog

Et ajoutez ces 2 lignes suivantes dans la section #BEGIN INIT INFO (oui, avec les #):

# X-Start-Before: rsyslog
# X-Stop-After: rsyslog


Puis, éditez le fichier suivant :

sudo vi /etc/init.d/rsyslog

Ajoutez y ramlog aux 2 lignes suivantes pour qu’il ce lance au démarrage et qu’il arrête lors du démontage:
# Required-Start: $remote_fs $time ramlog
# Required-Stop: umountnfs $time ramlog

Pour activer le script au démarrage :

sudo insserv

Redemarrez le Rapsberry 2 fois:

sudo reboot

Une fois redémarré, regardez le fichier /var/log/ramlog pour vérifier que tout se passe bien :

sudo cat /var/log/ramlog

Le plus souvent, les messages d’erreur ont besoin que vous arrêtiez d’autres démons (Cups, Samba etc…) avant de lancer Ramlog.

Pour régler ce problème, on peut indiquer dans les fichiers de configuration des programmes concernés, que Ramlog doit être lancé avant qu’ils ne commencent à écrire dans les logs.

Pour Samba:

sudo vi /etc/init.d/samba

Ajoutez ramlog à la fin des 2 lignes suivantes :
# Required-Start: $network $local_fs $remote_fs ramlog
# Required-Stop: $network $local_fs $remote_fs ramlog

Pour Cups :

sudo vi /etc/init.d/cups

Ajoutez ramlog à la fin de ces 2 lignes :
# Required-Start: $syslog $remote_fs ramlog
# Required-Stop: $syslog $remote_fs ramlog

Refaites un  insserv puis redémarrez :

sudo insserv
sudo reboot

Vous avez maintenant un Ramlog opérationnel.

28 juillet 2015 /

Pour lister les partitions existantes:

parted -l

Pour créer une partition, voici la marche à suivre sur /dev/sda:

parted /dev/sda

sda correspond au disque que l’on souhaite partitionner.

Cela nous faite rentrer dans le programme parted, l’invite de commande change.

Nous allons maintenant créer le label de la partition, ici GPT:
(parted) mklabel gpt

Ensuite nous plaçons type l’unité par default à TB (GB pour Giga):
(parted) unit TB

Pour créer une partition sur le disque entier:
(parted) mkpart primary 0 0

ou pour une partition de 300 Giga:
(parted) mkpart primary 0.00TB 300.00TB

Pour afficher les partitions:
(parted) print

Pour enregistrer et quitter:
(parted) quit

Pour avoir une prise en compte des partitions créés sans avoir à redémarrer:

partx -v -a /dev/sdb

Vous pouvez maintenant utiliser mkfs.ext3 ou mkfs.ext4 pour formater la partition:

mkfs.ext3 /dev/sdb1

ou

mkfs.ext4 /dev/sdb1

27 juillet 2015 /

Cette commande utilise urandom pour générer un mot de passe de 30 caractères utilisant tous les caractères de l’alphabet (minuscule et majuscule) plus les chiffres:

echo `< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c30`

Cette commande utilise urandom pour générer un mot de passe de 30 caractères utilisant tous les caractères de l’alphabet (minuscule et majuscule) , les chiffres ainsi que les caractères spéciaux  !@#$%^&*()_ :

echo `< /dev/urandom tr -dc '12345!@#$%^&*()_A-Z-a-z-0-9' | head -c30`

Cette commande utilise la date en seconde, avec laquelle on calcule sont SHA256 que l’on transforme en base 64 et l’on affiche que les 32 premiers caractères:

date +%s | sha256sum | base64 | head -c 32 ; echo