Comment éviter que le disque dur ne tourne au démarrage du système? (Ubuntu depuis SSD)

8

Merci à hdparm -B1 /dev/sdbmon disque dur ne tourne plus lorsqu'il est allumé au démarrage. Mais après avoir terminé les messages BIOS POST et démarré Ubuntu, le disque dur reçoit un signal sur le câble de données SATA et tourne.

Laisser le câble de données (mais toujours avec un câble d'alimentation SATA branché) permet au système de démarrer complètement à partir de mon SSD sans faire tourner le disque dur.

Qu'est-ce qui fait tourner le disque dur? Peut-être Grub2?


Edit: non, il ne semble pas que ce soit Grub2 qui fasse tourner le disque. Je viens de configurer Grub pour afficher son menu sans minuterie. Rien ne se produit jusqu'à ce que j'appuie sur l'option de démarrage standard d'Ubuntu, puis quelques secondes plus tard, le disque tourne.


Modifier dmesg | grep sdb::

[    7.080043] ata2.00: qc timeout (cmd 0xef)
[    7.080057] ata2.00: failed to IDENTIFY (SPINUP failed, err_mask=0x4)
[    9.830035] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    9.836555] ata2.00: ATA-8: SAMSUNG HD105SI, 1AJ10001, max UDMA/133
[    9.836564] ata2.00: 1953525168 sectors, multi 0: LBA48 NCQ (depth 31/32)
[    9.842364] ata2.00: configured for UDMA/133
[    9.842644] scsi 1:0:0:0: Direct-Access     ATA      SAMSUNG HD105SI  1AJ1 PQ: 0 ANSI: 5
[    9.843249] sd 1:0:0:0: [sdb] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB)
[    9.843270] sd 1:0:0:0: Attached scsi generic sg1 type 0
[    9.843487] sd 1:0:0:0: [sdb] Write Protect is off
[    9.843497] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    9.843590] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    9.844091]  sdb:
[    9.845127] scsi 2:0:0:0: CD-ROM            ATAPI    iHDS118   5      RL0C PQ: 0 ANSI: 5
[    9.851182] sr0: scsi3-mmc drive: 48x/48x cd/rw xa/form2 cdda tray
[    9.851191] Uniform CD-ROM driver Revision: 3.20
[    9.851554] sr 2:0:0:0: Attached scsi CD-ROM sr0
[    9.851802] sr 2:0:0:0: Attached scsi generic sg2 type 5
[    9.942896]  sdb1
[    9.943773] sd 1:0:0:0: [sdb] Attached SCSI disk
Oliver
la source
Qu'avez-vous sur le disque dur? Peut-être que ureadahead essaie de mettre en cache quelque chose d'insignifiant? Pourriez-vous également publier vos entrées / etc / fstab associées pour le lecteur?
M. Tibbits
Mon disque dur contient des données comme des fichiers manuels pdf, des épisodes StarTrek, ... Aucun fichier programme, aucun fichier de configuration ou autre.
Oliver
1
fstab => / dev / sdb1 / media / data ext2 noatime, user, noauto 0 2
Oliver

Réponses:

0

Je suis sûr que c'est le module du noyau pour le contrôleur qui recherche les disques qui fait tourner votre disque dur. Maintenant, si je me trompe un peu, et c'est vraiment un module pour votre disque dur, vous pouvez bloquer le chargement de ce module pendant le processus de démarrage. Consultez les listes noires sur /etc/modprobe.d/.

djeikyb
la source
Cela semble facile. Dois-je simplement ajouter une ligne "sd" dans le blacklist.conf? Qu'en est-il du SSD dont je suppose qu'il est également démarré avec le module sd?
Oliver
Eheh, évidemment, la mise sur liste noire du module sd n'est pas souhaitable. Je pense que le seul espoir serait que votre disque dur nécessite un module spécifique à son modèle. Mais il répond à la question "Qu'est-ce qui fait tourner le disque dur?".
djeikyb
1

Je pense que vous vouliez dire hdparm -snon -B1, qui demande aux disques durs compatibles APM (ce qui signifie à peu près uniquement les ordinateurs portables) de se mettre automatiquement en veille après une courte période d'inactivité. Les disques Western Digital ne semblent pas non plus accepter la -scommande de mise sous tension en veille, mais ont un cavalier à l'arrière que vous pouvez utiliser pour l'activer.

Le pilote du noyau sd (disque scsi) démarre le disque lors du premier accès, ce qui se produit lors du démarrage pour analyser la table de partition. Il redémarrera également le lecteur après la reprise de la suspension par défaut, mais vous pouvez le désactiver en écrivant 0dans /sys/block/sda/device/scsi_disk/*/manage_start_stop.

Je le fais généralement, puis je suspend manuellement les lecteurs que je ne prévois pas d'utiliser hdparm -yaprès un redémarrage.

Mon dernier bios de la carte mère ne détecterait tout simplement pas les disques qui se sont mis sous tension en veille, mais mon nouveau pont de sable Asus est apparemment assez "intelligent" pour remarquer que le disque est en veille et le démarrer.

psusi
la source
Non, je voulais dire -B1. L'option -s définit uniquement le temps de ralentissement en cas d'inactivité, comme vous l'avez décrit. Par exemple, -B255 peut régler les disques sur "un fonctionnement constant" pour empêcher la rotation, la rotation, etc. et ainsi augmenter la durée de vie du disque dur sur certains ordinateurs portables (même si vous définissez une minuterie -s, cela sera ignoré). Écrire 0 dans / sys / block / sdb / ... fonctionne comme un charme en ce qui concerne le CV de STR / S3, merci! Un disque tourné tournera à nouveau et un disque tourné sera laissé filé à la reprise. Parfait! :)
Oliver
Merde ... après un redémarrage / sys / block / sdb / ... affiche à nouveau "1". Par conséquent, la reprise de STR / S3 laisse toujours le disque dur tourner dans tous les cas.
Oliver
@Oliver: non, c'est -S, pas -s.
psusi
Oops! Désolé, vous avez raison. J'ai utilisé -S pour définir un temps de spindown. Je me souviens avoir utilisé -s ... y compris le drapeau --yes-i-know-what-i-am-do. Mais c'était après avoir utilisé -B1. L'option -s ne semble pas avoir eu d'effet supplémentaire sur mon système.
Oliver
0

Je rechercherais les journaux de sdb (1), en commençant par dmesg:

dmesg | grep /dev/sdb
Utilisateur inconnu
la source
J'ai déjà regardé dmesg, mais je ne sais pas comment interpréter les lignes (voir ci-dessus). Des idées? Merci.
Oliver
Non, je suis désolé, aucune idée. Mais je ne suis pas dans le hdd-business, alors peut-être quelqu'un d'autre ...
utilisateur inconnu
@Oliver Peut-être que publier les lignes sur paste.ubuntu.com et donner un lien pourrait aider.
nanofarad
@ObsessiveFOSS: Je pense qu'il a inséré ces lignes dans son message.
utilisateur inconnu
0

Linux vérifiera les partitions sur tous les disques durs au démarrage et lira donc la table de partition de tous les disques durs connectés. Cela seul causerait votre rotation, mais il peut y avoir des causes supplémentaires.

Pour une analyse approfondie, AFAIK les outils backend pour ureadahead construisent une liste de blocs de périphériques lus lors du démarrage. Vous pouvez utiliser ses journaux pour déterminer quels blocs de disque dur sont lus, dans un premier temps pour déterminer la cause de vos rotations.

Rêveur
la source