Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
utilisateurs:felixp:brouillon_ssd [Le 30/09/2013, 21:49] FelixP |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ==== Trim ==== | ||
- | Voir le [[#vocabulaire_de_la_technologie_ssd]].\\ | ||
- | Vous pouvez vérifier le support du Trim par votre SSD par : | ||
- | <code bash>sudo hdparm -I /dev/sda | grep TRIM</code> | ||
- | où vous remplacez /dev/sda par l'identifiant de votre disque.\\ | ||
- | (Une sortie vide indique que le Trim n'est **PAS** supporté par votre SSD.) | ||
- | Sinon, une ligne doit clairement indiquer le support du Trim.\\ | ||
- | |||
- | Il existe plusieurs mécanismes de Trim des disques SSD : | ||
- | |||
- | === Trim à la volée === | ||
- | De loin la solution la plus facile et la plus souple.\\ | ||
- | Il suffit de rajouter l'option ''discard'' dans les lignes correspondant aux partitions en ext4sur le SSD dans le fichier /etc/fstab : | ||
- | <code bash> sudo gedit /etc/fstab</code> | ||
- | Et : | ||
- | <file> | ||
- | # /dev/sda1 | ||
- | UUID=f0d9c48e-00c4-4225-ab21-1c5a42194bc8 / ext4 noatime,errors=remount-ro 0 1 | ||
- | </file> | ||
- | devient | ||
- | <file> | ||
- | # /dev/sda1 | ||
- | UUID=f0d9c48e-00c4-4225-ab21-1c5a42194bc8 / ext4 noatime,discard,errors=remount-ro 0 1 | ||
- | </file> | ||
- | Dès le prochain démarrage, le Trim sera activé, de façon entièrement transparente. | ||
- | |||
- | |||
- | <note tip>Il semble qu'une meilleure méthode, plus véloce lors d'effacement de nombreux petits fichiers soit de lancer un script une fois par jour pour le trim (fstrim+tâche cron). Voir ici (en anglais...) : http://www.webupd8.org/2013/01/enable-trim-on-ssd-solid-state-drives.html \\ FIXME : Je ne suis pas convaincu… Du tout.</note> | ||
- | |||
- | === Trim en manuel === | ||
- | Cette méthode n'est nécessaire que dans le cas d'une partition principale en ext3 **ou** d'un noyau inférieur à 2.6.33. | ||
- | Il est conseillé d'effectuer un trim manuel environ une fois par mois pour une utilisation normale du SSD.\\ | ||
- | On ne peut pas lancer un TRIM en manuel sur une partition utilisée. Il faudra donc démarrer sur un live-usb ou un disque dur externe.\\ | ||
- | |||
- | Nous allons utiliser le script **wiper.sh** qui est distribué avec le paquet **hdparm**. Il faut au minimum une version v9.28 ou plus élevée de hdparm. On peut vérifier la version dans un terminal :<code bash>hdparm -V</code> | ||
- | Il est fortement conseillé d'utiliser les sources les plus récentes de hdparm (pour moins de risques d'incompatibilité…) ; ce qui implique de télécharger et recompiler les sources du paquet hdparm. Vous serez guidés : | ||
- | * Télécharger la [[http://sourceforge.net/projects/hdparm/files/latest/download|dernière version de hdparm]] | ||
- | * Décompressez l'archive et copiez le dossier dans la clé usb du Live-usb au premier niveau | ||
- | * Démarrez sur le Live-usb, sans installer Ubuntu. | ||
- | * Ouvrez un terminal | ||
- | * Allez dans dossier contenant hdparm (Normalement, ''/cdrom/hdparm-9.xx'')en lançant : ''cd /cdrom/hdparm-9.*'' | ||
- | * Lancez, l'une après l'autre, les commandes : <code bash>make \\ sudo make install</code> | ||
- | * Allez dans le dossier ''wiper'' : ''cd wiper'' | ||
- | * Démarrez une simulation de Trim sur votre partition : <code bash>sudo ./wiper.sh /dev/sda1</code> | ||
- | * Si la simulation se passe bien, vous pouvez lancer réellement le Trim en lançant : <code bash>sudo ./wiper.sh --commit /dev/sda1</code> | ||
- | |||
- | Si tout se passe bien, vous devriez pouvoir redémarrer sur votre SSD. \\ | ||
- | Il faut malheureusement recompiler et réinstaller hdparm à chaque démarrage sur la clé USB (à moins d'avoir un Live-usb persistant). | ||
- | |||
- | → [[:hdparm|Plus d'informations sur l'utilisation de « hdparm »]] | ||
- | |||
- | === Trim d'un volume NTFS === | ||
- | |||
- | Un des avantages de la méthode hdparm/wiper.sh décrite ci-dessus est que l'on peut effectuer le trim d'un volume NTFS. Ce qui est très utile dans le cas d'un système à double démarrage Linux/Windows avec une version XP ou Vista installée dans le volume NTFS (Windows 7 prend en charge le TRIM à la volée en standard). | ||
- | C'est plus facile à faire sur un volume NTFS, car il n'y a pas besoin d'utiliser un Live-usb pour libérer la partition Linux. Il suffit que le volume NTFS soit hors ligne (non monté). | ||
- | |||
- | Il est quand même conseillé de télécharger, recompiler et installer la dernière version des sources **hdparm** dans votre volume **/** et elle sera ensuite disponible de façon permanente. | ||
- | |||
- | Procédure : | ||
- | * télécharger et compiler la dernière version des sources hdparm, puis installer | ||
- | * faire une sauvegarde ou un clone de votre partition NTFS - on ne sait jamais... | ||
- | * dans un terminal, aller dans le dossier qui contient hdparm, puis dans le sous-dossier wiper | ||
- | * vérifier que votre partition NTFS est bien démontée et repérer le No de partition | ||
- | * faire une simulation de TRIM sur la partition NTFS (dans cet exemple elle se trouve sur sda3)<code>sudo ./wiper.sh /dev/sda3</code> | ||
- | * si tout se passe bien, effectuer le TRIM pour de vrai en rajoutant ''%%--commit%%''<code>sudo ./wiper.sh /dev/sda3 --commit</code> | ||
- | |||
- | Modification faite le 24/12/2011 | ||
- | La version 3.3 de Wiper fournie avec HDPARM-9.37 réserve une surprise possible pour certains formats NTFS . Explication dans le source lignes 657 et 358 | ||
- | ## This is where we finally discover whether the filesystem actually | ||
- | ## supports --fallocate or not. Some folks will be disappointed here. | ||
- | qui survient lorsque la partition n'a pas été démontée correctement. | ||
- | |||
- | |||
- | |||
- | === L'effacement sécurisé === | ||
- | |||
- | C'est une autre méthode brutale d'optimisation qui s'adresse principalement aux utilisateurs qui ne voudraient pas utiliser la méthode de TRIM manuel, ou bien qui auraient des difficultés à recompiler les sources hdparm, ou encore dont le disque SSD ne supporterait pas la commande TRIM. | ||
- | Le but est d'utiliser la commande ATA Secure-Erase qui déclenche un effacement complet du disque par écriture de 00h dans tous les octets de sa surface (donc pour un disque SSD la remise à zéro effective de toutes les cellules flash). | ||
- | |||
- | * Avantages : plus simple que le TRIM en manuel, le disque SSD se retrouve comme à sa sortie d'usine. | ||
- | * Inconvénients : clonage préalable du disque indispensable, moins efficace que le TRIM, probable manipulation hardware requise | ||
- | |||
- | <note important> | ||
- | Un préalable indispensable est le clonage du disque **en entier** avant l'effacement. Avec la commande Secure Erase on perd absolument toutes les données, les partitions, le MBR et la table des partitions ! Le clonage a pour but de créer une image exacte (snapshot) de l'état du disque, secteur par secteur - que l'on pourra ensuite restaurer après l'effacement. Le meilleur programme pour faire cela est l'excellent [[:Clonezilla]] développé par la Communauté Libre. | ||
- | </note> | ||
- | |||
- | * Remarque : Il est à craindre que le fait de restaurer une image exacte va tout remettre comme avant. Et donc annuler l'effet de la remise à zero. | ||
- | |||
- | <note important>Une manipulation du disque lui-même sera probablement requise. En effet, pratiquement tous les BIOS récents mettent le HD en mode "**frozen**" au démarrage (pour des raisons de sécurité). Dans ce mode on ne peut pas exécuter la commande secure-erase. Dans ce cas, il faudra retirer le disque à chaud puis le réinsérer dans l'interface SATA. - ça s'appelle le Hot-Plug et l'interface SATA le permet, **mais pas l'IDE** (risque de **destruction** du disque SSD). Au moment où l'interface SATA reconnaît qu'un nouveau disque a été inséré, par défaut il ne le bloque pas en mode "frozen" contrairement à l'initialisation par le BIOS</note> | ||
- | |||
- | Procédure : | ||
- | * effectuer un clonage du disque SSD en mode disk-device vers image (pour clonezilla) | ||
- | * redémarrer sur une clé Live-usb Ubuntu ou un cd d'installation Ubuntu (récents) afin que le disque SSD soit libéré | ||
- | * dans un terminal vérifier si le disque SSD cible est en mode **frozen** ou **not frozen**<code>sudo hdparm -I /dev/sda</code>(la mention se trouve dans le dernier paragraphe **Security**) - si déjà en mode "non gelé", sauter les 2 lignes suivantes | ||
- | * si le disque est en mode **frozen** (probable), il faut le retirer physiquement de l'interface, attendre quelques secondes, puis le réinsérer | ||
- | * vérifier à nouveau dans les paramètres "Security" comme indiqué ci-dessus que le disque est cette fois bien en mode **not frozen** | ||
- | * dans le terminal, taper les 2 commandes qui vont déclencher l'effacement (//note// : cas où le disque SSD se trouve en sda)<code>sudo hdparm --security-set-pass NULL /dev/sda | ||
- | sudo hdparm --security-erase NULL /dev/sda</code>l'exécution en soi ne doit prendre que quelques secondes pour un disque SSD | ||
- | * restaurer l'image-disque clonée au début | ||
- | * C'est fini ! | ||