Energie : Mise en veille HDD inutilisé Le sujet est résolu

Demande d'aide : c'est ici.
Répondre
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Bonjour,

J'ai 2 disques durs internes (SATA)

Le premier portant Win7, donc le drapeau de boot
ainsi que GRUB sur son MBR.

Debian étant installé sur le second disque ainsi que la majorité des données,
après le démarrage le premier HDD n'est donc quasiment pas utilisé (mais pourrait être sollicité).

J'avais repéré http://noflushd.sourceforge.net/ qui doit permettre une sorte de mise en veille

mais :
  • noflushd n'est pas dans les dépôts
  • je ne suis pas certain qu'il fasse vraiment ce que j'en attends (la doc n'est pas claire, pour moi)
Donc je me tourne vers vous pour trouver une solution,
le but étant de limiter bruit, conso d'énergie, usure du HDD qui resterait toujours prêt au réveil.

C'est faisable ?

Merci.
**Simple Utilisateur** -- Debian stable - XFCE
PascalHambourg
Contributeur
Contributeur
Messages : 881
Inscription : 05 août 2016, 20:25
Status : Hors-ligne

dezix a écrit : J'ai 2 disques durs internes (SATA)
Le premier portant Win7, donc le drapeau de boot
ainsi que GRUB sur son MBR.
Et je suppose que la partition racine de Debian avec /boot est sur l'autre disque ? Donc chacune des deux parties de GRUB est installée sur un disque différent ?
Cela n'a rien à voir avec le sujet mais je trouve que c'est une mauvaise idée car cela rend les deux disques dépendants l'un de l'autre et interdit le démarrage d'aucun des deux OS sans le disque de l'autre.
dezix a écrit : J'avais repéré http://noflushd.sourceforge.net/ qui doit permettre une sorte de mise en veille
La page d'accueil à l'air terriblement obsolète : référence au noyau 2.2 et 2.4, devfs (prédécesseur d'udev), dernière version semblant dater de 2004...

A ma connaissance, avec leurs réglages par défaut tous les disques se mettent automatiquement en veille plus ou moins rapidement s'ils ne sont pas sollicités.
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Salut!
PascalHambourg a écrit : 01 oct. 2017, 18:34 Et je suppose que la partition racine de Debian avec /boot est sur l'autre disque ? Donc chacune des deux parties de GRUB est installée sur un disque différent ?
Cela n'a rien à voir avec le sujet mais je trouve que c'est une mauvaise idée car cela rend les deux disques dépendants l'un de l'autre et interdit le démarrage d'aucun des deux OS sans le disque de l'autre.
Oui, tout est sur le 2d HDD.

Je ne sais pas si c'est une bonne idée,
mais j'ai aussi installé GRUB sur le MBR du second disque (en prévision) qui est formaté en GPT.

Comme le BIOS de la machine (HP DC7800 SFF) ne propose pas de choix dans l'ordre de boot des HDD,
le 1er HDD connecté sur le premier port SATA et/ou avec le drapeau de boot => c'est par là que ça boote :))

Donc dans un premier temps, comme j'ai besoin du 1er HDD => ça m'a paru viable.

Sinon, je migrerai tout sur le 2d HDD, mais ça m'ennuie un peu d'y mettre Win

Mon idée étant d'avoir Win en "dormance" sur son disk d'origine et basta!
La page d'accueil à l'air terriblement obsolète : référence au noyau 2.2 et 2.4, devfs (prédécesseur d'udev), dernière version semblant dater de 2004...

A ma connaissance, avec leurs réglages par défaut tous les disques se mettent automatiquement en veille plus ou moins rapidement s'ils ne sont pas sollicités.

noflushd
m'avait paru une option, mais à présent j'en doute.
**Simple Utilisateur** -- Debian stable - XFCE
PascalHambourg
Contributeur
Contributeur
Messages : 881
Inscription : 05 août 2016, 20:25
Status : Hors-ligne

Installer GRUB dans le MBR d'un disque en GPT risque de ne pas être suffisant pour le rendre bootable aux yeux du BIOS buggé de ce genre de machine. Il faut aussi que le drapeau d'amorçage de la partition de protection GPT soit activé. J'ai eu le même problème avec un HP dc7100.
Avec parted, cela se fait avec

Code : Tout sélectionner

parted /dev/sdX disk_set pmbr_boot on
Avec fdisk, il faut forcer l'utilisation de la table de partition DOS avec l'option "-t dos" pour pouvoir activer le drapeau d'amorçage de la partition de protection.

Pour ne pas démarrer sur le disque de Windows s'il n'est pas possible de spécifier de priorité dans le BIOS, une option consiste à désactiver l'indicateur d'amorçage dans la table de partition, mais cela rend le disque non amorçable aussi quand il est seul. Une autre option consiste à permuter le branchement SATA des deux disques. Si tout est référencé par UUID ou LABEL, cela ne devrait pas poser de problème.
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Je vais tester cela dès que possible.

Merci et bonne journée
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
Mimoza
Contributeur
Contributeur
Messages : 655
Inscription : 22 avr. 2016, 12:00
Localisation : Terre
Status : Hors-ligne

On parle bien de disque mécanique ?
Tu peux faire des essaie de mise en veille mais si ton disque démarre 10 fois pendant l'utilisation de ton PC ça me parait pas une bonne idée. Le démarrage d'un disque mécanique est stressant pour lui. Pour économiser 5w je me demande si ça en vaut la peine. Si tu veux vraiment le faire met des option «noatime» et similaire pour éviter tout accès pour des broutilles.
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

@Mimoza

Bonjour,

oui c'est un HDD mécanique qui a déjà une longue existance.

Je crois que je vais opter pour ce que propose PascalHambourg
Une autre option consiste à permuter le branchement SATA des deux disques.
comme il n'y aura pas de données d'utilisation courante sur ce disque,
les seules fois où j'y aurai accès,
seront pour récupérer des fichiers après une session sous Win (très occasionnel)

Je vais m'instruire sur l'option noatime que tu m'indiques et j'en ferai usage.

...

Peux-tu me préciser dans quel contexte tu utilises l'option ?

Car je n'ai trouvé cette option que pour mount

Code : Tout sélectionner

$ man mount
...
noatime
	Ne  pas mettre à jour les horodatages d'accès aux inœuds sur ce système de
	fichiers (accès plus rapide pour des serveurs de news par exemple).
et je ne vois pas bien le lien...

Merci pour ton conseil.

En principe, (c'est mon observation, pas une vérité debianique)
les partitions des autres systèmes
et en générale les partitons qui ne sont pas mentionnées dans fstab,
ne sont pas montées au démarrage ;
mis-à-part les disques amovibles
et encore je règle thunar-volman pour ne pas les monter à la connexion.

Donc si je n'ai pas de partition de ce HDD dans mon fstab => rien n'est monté sur le disk

J'en viens à me demander,
s'il n'y a pas dans la gestion générale des périphériques
un moyen de mettre en veille/sommeil certains périphériques internes ?
comme cela se fait pour une imprimante ou un écran ?

Cela dépasse mon champ de compétence actuel,
mais je serai étonné,
si cela n'est pas déjà prévu par nos Grand-Maîtres
omniscients au centre infini de la spirale cosmique.
Image
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

=> Je crois avoir trouvé quelque-chose d'intéressant dans :
https://www.generation-nt.com/reponses/ ... 59259.html

inclure cette ligne dans la crontab de root :

Code : Tout sélectionner

@reboot hdparm -S6 /dev/sdb 2>&1 # pour 30 secondes

En lisant la ManPage de crontab :

Code : Tout sélectionner

$ man crontab... 

SYNOPSIS
       crontab [ -u utilisateur ] fichier
       crontab [ -u utilisateur ] [ -i ] { -e | -l | -r }

DESCRIPTION
...
Chaque utilisateur dispose  de  sa  propre crontab, 
et  bien que celles-ci se trouvent dans /var/spool/cron/crontabs,
elles ne sont pas conçues pour être modifiées directement.
/var/spool/cron/crontabs est vide

Confirmé par :

Code : Tout sélectionner

root@dc7800:~# crontab -u root -l
		no crontab for root

Code : Tout sélectionner

....

Si aucun de ces deux fichiers n'existe, alors, selon  la  configuration du site, 
soit seul le superutilisateur a le droit d'utiliser cette commande, 
soit tous les utilisateurs le peuvent.
C'est mon cas.

Code : Tout sélectionner

Remarquez  qu'un  appel  à su(8) peut induire crontab en erreur. 
Ainsi, si vous avez effectué un su(8), 
vous  devriez  toujours utiliser l'option -u par précaution.

La première forme de cette commande sert à installer une nouvelle crontab, 
en utilisant le fichier indiqué, ou l'entrée standard si le nom de fichier est « - ».


Donc — corrigez-moi si nécessaire — je devrais passer les commandes suivantes :

Code : Tout sélectionner

$ su

# crontab -u root -

# crontab -u root -e
J'ai vérifié $VISUAL et $EDITOR n'ont pas de valeur définie
et
/ust/bin/editor ouvre nano (ça me va)


Donc je n'aurais plus qu'à coller cette ligne:

Code : Tout sélectionner

@reboot hdparm -S6 /dev/sdb 2>&1 # pour 30 secondes
en assumant que j'ai interverti les câbles SATA sur la carte mère
et que les lettres des disk sont maintenant :

* sda pour le disk Linux
* sdb pour le disk Win (à ne pas activer)

Merci de bien vouloir me le confirmer 3x
avant que je ne fasse la boulette ! :003:
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
Mimoza
Contributeur
Contributeur
Messages : 655
Inscription : 22 avr. 2016, 12:00
Localisation : Terre
Status : Hors-ligne

Cette commande est surtout utilisé lorsque tu as un disque SSD. Ça évite des écriture trop régulière, ça évite que le système enregistre le timestamp de chaque accès au fichier. Ça serait dommage de redémarrer le disque a chaque fois qu'un fichier, qui est peut être en mémoire, est accédé.
Il y a le «nodirtime» mais il me semble que le «noatime» l'inclus maintenant.
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Ce que je ne comprends pas bien,

les partitions de ce HDD n'e faisant pas partie du système actif,
il n'y a pas de raison d'y accéder ou d'en modifier les metadatas associés comme l'horodatage
il ne doivent même pas être montés
**Simple Utilisateur** -- Debian stable - XFCE
PascalHambourg
Contributeur
Contributeur
Messages : 881
Inscription : 05 août 2016, 20:25
Status : Hors-ligne

Tu as parfaitement compris.
Une fois n'est pas coutume, ce sont les interventions de Mimoza qui sont à côté de la plaque.
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Merci

svp,

la ligne pour le crontab de root

Code : Tout sélectionner

@reboot hdparm -S6 /dev/sdb 2>&1 # pour 30 secondes
est-elle fiable et adaptée à la situation

je ne me réfère pas à la partie : hdparm -S6 /dev/sdb

mais à ce qui l'entoure
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Par ailleurs,

serait-il fondé de rajouter dans : /etc/hdparm.conf

Code : Tout sélectionner

/dev/sdb {
 spindown_time = 120
}
pour remettre le HDD au repos après s'en être servi ?
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Code : Tout sélectionner

@reboot hdparm -S6 /dev/sdb 2>&1 # pour 30 secondes

@reboot => fixe l'exécution au moment du démarrage, je m'en doutais mais l'exactitude est confirmée

voir -> https://doc.ubuntu-fr.org/cron pour info à propos de cron

Reste : 2>&1 dont je n'ai vraiment pas idée du rôle :120:
**Simple Utilisateur** -- Debian stable - XFCE
PascalHambourg
Contributeur
Contributeur
Messages : 881
Inscription : 05 août 2016, 20:25
Status : Hors-ligne

2>&1 redirige la sortie d'erreur vers la sortie standard. Il me semble que cron envoie l'éventuel contenu de l'une des deux par mail au propriétaire du cronjob, mais je ne me rappelle pas les détails.
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

J'ai activé le drapeau de boot du disque GPT
avec :

Code : Tout sélectionner

# parted /dev/sdb disk_set pmbr_boot on

Ensuite, j'ai éteint le PC et interverti les connecteurs SATA des 2 HDD sur la carte mère.

À ce stade, je prévoyais devoir ré-installer GRUB depuis un Live-CD,
pensant que la numérotation des disques (grub) serait à présent erronée.

J'ai tout-de-même tenté le redémarrage
et surprise => le menu GRUB était là !

J'ai choisi l'OS par défaut Sparky/Debian-testing (celui-même qui avait installé grub sur le MBR du HDD en GPT - ex sdb)


=> ça boote et on est bien sur le disque GPT sans rien toucher à GRUB >> pas de problème

Les autres OS (sur les 2 HDD) bootent aussi (dont Win7)

=> c'est merveilleux !


La seule ombre au tableau :

j'ai voulu actualiser GRUB (pour être bien sur que tout allait être au point)

et là il y a un soucis : GRUB refuse de s'installer

Code : Tout sélectionner

sudo os-prober

/dev/sda1:Debian GNU/Linux 9 (stretch):Debian:linux
/dev/sdb1:Windows 7:Windows:chain
/dev/sdb7:SparkyLinux (5):Sparky:linux
/dev/sdb8:Debian GNU/Linux 8 (jessie):Debian1:linux

Code : Tout sélectionner

sudo update-grub
	Création du fichier de configuration GRUB…
	Found background image: /usr/share/images/desktop-base/desktop-grub.png
	Found background image: /opt/artwork/sparky-grub.png
	Image Linux trouvée : /boot/vmlinuz-4.12.0-2-amd64
	Image mémoire initiale trouvée : /boot/initrd.img-4.12.0-2-amd64
	Debian GNU/Linux 9 (stretch) trouvé sur /dev/sda1
	Windows 7 trouvé sur /dev/sdb1
	SparkyLinux (5) trouvé sur /dev/sdb7
	Debian GNU/Linux 8 (jessie) trouvé sur /dev/sdb8
	fait

Code : Tout sélectionner

sudo grub-install /dev/sda
	Installation pour la plate-forme i386-pc.
	grub-install : 
	attention : 
	cette étiquette de partition GPT ne contient pas de partition d'amorçage BIOS ;
	l'embarquage ne sera pas possible.
	grub-install : 
	attention : L'embarquage est impossible.
	GRUB ne peut être installé sur cette configuration qu'en utilisant les listes de blocs.
	Cependant, les listes de blocs ne sont PAS fiables et leur utilisation est déconseillée..
	grub-install : erreur : refus de continuer avec les listes de blocs.


J'ai vérifié l'activation de l'indicateur

Code : Tout sélectionner

sudo parted

GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) print                                                            
Model: ATA WDC WD10EZRZ-00H (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: pmbr_boot

Number  Start   End     Size    File system     Name  Flags
 1      1049MB  37,7GB  36,7GB  ext4
 2      37,7GB  48,2GB  10,5GB  ext4
 3      48,2GB  53,5GB  5243MB  linux-swap(v1)
 4      53,5GB  90,2GB  36,7GB  ext4
 5      90,2GB  101GB   10,5GB  ext4
 6      101GB   625GB   524GB   ext4            Docs
Disk Flags: pmbr_boot est bien indiqué :017:


Là, je vais avoir besoin d'un autre petit coup de pousse car GRUB n'est pas mon ami :010:
**Simple Utilisateur** -- Debian stable - XFCE
PascalHambourg
Contributeur
Contributeur
Messages : 881
Inscription : 05 août 2016, 20:25
Status : Hors-ligne

dezix a écrit : À ce stade, je prévoyais devoir ré-installer GRUB depuis un Live-CD,
pensant que la numérotation des disques (grub) serait à présent erronée.
GRUB ne se fie pas uniquement à la numérotation des disques, qui peut changer effectivement. Il peut aussi utiliser les UUID de systèmes de fichiers pour trouver la localisation du noyau. D'autre part, quand il est installé sur le même disque que la partition qui contient /boot/grub, il n'enregistre pas le numéro du disque et cherche la partition sur le disque à partir duquel il a été lancé.
dezix a écrit :GRUB refuse de s'installer
Normal, par défaut grub-install refuse d'installer GRUB si "l'embarquage" (embedding) de la core image n'est pas possible. Or comme indiqué dans le message d'erreur, l'embarquage sur un disque au format GPT requiert la présence d'une partition spéciale de type "BIOS boot" (drapeau bios_grub dans la terminologie de parted) non formatée. Mais il n'y en a pas sur ton disque.

Lors de l'installation, grub-install a été exécuté avec l'option --force qui supprime cette contrainte (mais pas l'avertissement). Le non embarquage rend GRUB moins fiable car plus vulnérable au déplacement des blocs de fichiers par le système de fichiers. C'est pourquoi il est recommandé de créer une petite partition BIOS boot. GRUB a besoin de moins de 100 ko pour cette partition, mais quand on a la place comme toi on peut mettre 1 Mo pour que le partitionneur ne râle pas en disant que la partition n'est pas alignée.
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

@PascalHambourg => MERCI !
Grâce à tes explications un coin de la nébuleuse GRUB vient de s'éclaircir :023:

Donc je récapitule pour ceux qui liront ...
C'est pourquoi il est recommandé de créer une petite partition BIOS boot.
GRUB a besoin de moins de 100 ko pour cette partition, mais quand on a la place comme toi on peut mettre 1 Mo pour que le partitionneur ne râle pas en disant que la partition n'est pas alignée.

Ça tombe à point !...

car sans savoir très précisément de quoi il retournait, j'avais lu à ce propos...

J'ai donc réservé un espace non-alloué d'1Go au début du disque

En suivant aussi les indications de : https://doc.ubuntu-fr.org/gpt#creer_une ... _bios-boot

* Point de montage : <aucun>
* Taille : 1 Mo
* Système de fichiers : aucun (non formaté)
* Autre : doit être située en début d'un disque partitionné en GPT, et doit posséder un drapeau bios_grub



En utilisant GParted
  • j'ai sélectionné l'espace non-alloué réservé au début du disque (avant sda1)
  • Nouvelle partition
    • Taille 1Mio (il reste un espace de 1Mio devant qu'il n'est pas possible de réduire à zéro)
    • Partition primaire
    • Système de fichiers : non formaté
    • les autres champs restent vides
→ Appliquer

Une fois la partition (sda7) créée clic droit dessus >> Gérer les drapeaux >> ☑ bios_grub
→ Fermer

Dans la fenêtre principale, j'ai bien en première position :

/dev/sda7 avec : type = inconnu ; taille = 1Mio ; drapeau = bios_grub


=> il ne reste plus qu'à refaire l'installation de GRUB

Code : Tout sélectionner

$ cd /boot/grub
se placer sur le bon répertoire

Code : Tout sélectionner

$ sudo cp grub.cfg grub.cfg.bk
(sauvegarde de la config actuelle)
 

Code : Tout sélectionner

$ sudo update-grub
Création du fichier de configuration GRUB…
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found background image: /opt/artwork/sparky-grub.png
Image Linux trouvée : /boot/vmlinuz-4.12.0-2-amd64
Image mémoire initiale trouvée : /boot/initrd.img-4.12.0-2-amd64
Debian GNU/Linux 9 (stretch) trouvé sur /dev/sda1
Windows 7 trouvé sur /dev/sdb1
SparkyLinux (5) trouvé sur /dev/sdb7
Debian GNU/Linux 8 (jessie) trouvé sur /dev/sdb8
fait
Généré un nouveau fichier de configuration de grub : grub.cfg

Code : Tout sélectionner

$ sudo grub-install /dev/sda
Installation pour la plate-forme i386-pc.
Installation terminée, sans erreur.
re-installer grub sur le bon disque pour appliquer la configuration de grub.cfg


⇒ Reboot... Grub fonctionne !
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4980
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Résolu ?
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

@lol
Salut,

Pas encore, le but c'est l'édition de crontab et la config de hdparm

... on y arrive, maintenant que tout est correctement mis en place :003:
**Simple Utilisateur** -- Debian stable - XFCE
Répondre