web-dev-qa-db-fra.com

Le disque dur externe n'arrête pas de s'allumer

Est-il possible d'empêcher un disque dur externe de s'éteindre? J'ai laissé le lecteur allumé toute la nuit pour un téléchargement volumineux, mais lorsque je l'ai vérifié le matin, le téléchargement a échoué avec le message unable to access the drive.

Je suis parfaitement capable de lire et d’écrire sur le disque. Les petits téléchargements sont acceptables, mais les téléchargements qui prennent plus de temps semblent échouer à cause d’une erreur d’entrée/sortie.

J'ai effectué une analyse badblocks sur le lecteur et aucune erreur n'a été détectée.


Impossible de démarrer un auto-test SMART:

enter image description here


Déconnecté puis reconnecté lecteur USB externe. Les résultats de dmesg suivent:

[  289.881673] usb 1-1.1: USB disconnect, device number 5
[  305.182474] usb 1-1.1: new high-speed USB device number 6 using ehci-pci
[  305.275807] usb 1-1.1: New USB device found, idVendor=152d, idProduct=2338
[  305.275812] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=5
[  305.275825] usb 1-1.1: Product: USB to ATA/ATAPI bridge
[  305.275828] usb 1-1.1: Manufacturer: JMicron
[  305.275830] usb 1-1.1: SerialNumber: 000001D91CA8
[  305.276594] usb-storage 1-1.1:1.0: USB Mass Storage device detected
[  305.276914] scsi Host5: usb-storage 1-1.1:1.0
[  306.275373] scsi 5:0:0:0: Direct-Access     WDC WD25 00KS-00MJB0           PQ: 0 ANSI: 5
[  306.275787] sd 5:0:0:0: Attached scsi generic sg3 type 0
[  306.276317] sd 5:0:0:0: [sdc] 488397168 512-byte logical blocks: (250 GB/233 GiB)
[  306.277429] sd 5:0:0:0: [sdc] Write Protect is off
[  306.277435] sd 5:0:0:0: [sdc] Mode Sense: 28 00 00 00
[  306.278429] sd 5:0:0:0: [sdc] No Caching mode page found
[  306.278433] sd 5:0:0:0: [sdc] Assuming drive cache: write through
[  306.288959]  sdc: sdc1 sdc2
[  306.292063] sd 5:0:0:0: [sdc] Attached SCSI disk

Sortie de 'blkid' lorsque le lecteur est en cours d'utilisation. J'ai pris cette capture d'écran en copiant des fichiers d'une valeur de 500 Mo sur le lecteur.

enter image description here


Sortie de lsblk ci-dessous:

userone@userone:~$ lsblk
NAME                    MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                       8:0    0 232.9G  0 disk  
├─sda1                    8:1    0   487M  0 part  /boot
├─sda2                    8:2    0     1K  0 part  
└─sda5                    8:5    0  59.2G  0 part  
  └─sda5_crypt          252:0    0  59.2G  0 crypt 
    ├─ubuntu--vg-root   252:1    0  43.2G  0 lvm   /
    └─ubuntu--vg-swap_1 252:2    0  15.9G  0 lvm   [SWAP]
sdb                       8:16   0 232.9G  0 disk  
├─sdb1                    8:17   0   500M  0 part  
├─sdb2                    8:18   0   232G  0 part  
└─sdb3                    8:19   0   470M  0 part  
sdc                       8:32   0 232.9G  0 disk  
├─sdc1                    8:33   0 232.4G  0 part  /media/userone/New Volume
└─sdc2                    8:34   0   470M  0 part  
sr0                      11:0    1  1024M  0 rom   
loop0                     7:0    0  86.6M  1 loop  /snap/core/4571
loop1                     7:1    0  90.3M  1 loop  /snap/coolreader3/1
loop2                     7:2    0  86.7M  1 loop  /snap/simplescreenrecorder/1
loop3                     7:3    0 236.5M  1 loop  /snap/pycharm-community/64
loop4                     7:4    0  86.9M  1 loop  /snap/core/4830
loop5                     7:5    0    85M  1 loop  /snap/simplescreenrecorder-mardy/4
loop6                     7:6    0  86.6M  1 loop  /snap/core/4650
userone@userone:~$ 
2
oshirowanen

Non seulement avec les gros téléchargements, mais aussi avec la copie de gros fichiers d'un disque dur à un disque dur externe, il y a un bogue de presque cinq ans: buntu ralentit et se bloque lors de la copie d'un fichier depuis/vers USB .

La solution proposée par de nombreux utilisateurs consiste à vérifier votre cache d’écriture arrière:

$ cat /proc/vmstat | egrep "dirty|writeback"
nr_dirty 15
nr_writeback 0
nr_writeback_temp 0
nr_dirty_threshold 261131
nr_dirty_background_threshold 130406

La réponse acceptée (avec 66 votes positifs) ici: stackexchange.com - Pourquoi mon ordinateur se fige-t-il lorsque je copie un fichier sur une clé USB?

suggère d'utiliser:

echo $((16*1024*1024)) > /proc/sys/vm/dirty_background_bytes
echo $((48*1024*1024)) > /proc/sys/vm/dirty_bytes

La réponse acceptée consiste à utiliser une valeur mathématique indirecte pour définir 16 Mio pour les octets d'arrière-plan modifiés et 48 Mio pour les octets modifiés.

Cependant, à partir du premier lien (rapport de bogue), le commentaire n ° 83 recommande une valeur plus agressive de 200 Mo pour les octets modifiés. Pour rendre les paramètres permanents, éditez /etc/sysctl.conf et ajoutez cette ligne:

vm.dirty_bytes = 200000000

Ensuite, exécutez systctl -p ou redémarrez.

Le premier lien contient de nombreuses autres suggestions et vous devrez peut-être en essayer d’autres si cette solution commune ne fonctionne pas.

BTW sale ne veut rien dire de néfaste. Cela signifie que les données conservées dans RAM attendent d'être écrites sur le disque. Ainsi, pendant le téléchargement, les informations sont conservées dans RAM et ne sont pas écrites sur votre disque dur externe. L'inactivité pourrait être la raison pour laquelle elle s'éteint.

Aussi, comme je l'ai mentionné dans les commentaires, blkid ne révèle rien dans Ubuntu 18.04 mais lsblk révèle tout, y compris les lecteurs externes.

3
WinEunuuchs2Unix

Obtenez le nom du périphérique avec blkid ou vérifiez dmesg pour connaître le périphérique connecté. Ensuite, désactivez la gestion de l'alimentation avec hdparm.

# get device name
$ Sudo blkid
/dev/sda1: UUID="..." UUID_SUB="..." TYPE="somefs" PARTUUID="..."
/dev/sdb1: UUID="..." UUID_SUB="..." TYPE="someotherfs" PARTUUID="..."

$ Sudo dmesg
...
[  305.276914] scsi Host5: usb-storage 1-1.1:1.0
[  306.275373] scsi 5:0:0:0: Direct-Access     WDC WD25 00KS-00MJB0           PQ: 0 ANSI: 5
[  306.275787] sd 5:0:0:0: Attached scsi generic sg3 type 0
[  306.276317] sd 5:0:0:0: [sdc] 488397168 512-byte logical blocks: (250 GB/233 GiB)
[  306.277429] sd 5:0:0:0: [sdc] Write Protect is off
...

Comme vous pouvez le voir à la sortie des commandes, votre disque USB est enregistré en tant que /dev/sdc . Donc, désactivez la gestion de l'alimentation pour ce périphérique.

# disable power management
$ Sudo hdparm -B 255 /dev/sdc

Voir hdparm ArchWiki pour plus de détails.

Mise à jour: Ajoutez Sudo aux commandes, car les privilèges de super utilisateur sont requis.

4
Simon Sudler

Pour moi, la combinaison des deux réponses précédentes a fonctionné. J'ai exécuté "/ sbin/hdparm -B 255/dev/sdc" dans cronjob toutes les minutes.

# Edit the crontab as root user (it will open the crontab with your favorite editor)
$ Sudo crontab -e

# add the following line, save and close the editor
* * * * * /sbin/hdparm -B 255 /dev/sdc >/dev/null 2>&1
0
pintergabor

Une autre idée: si le fournisseur du périphérique USB ne prend pas en charge la désactivation de la gestion de l’alimentation, vous pouvez le maintenir en vie avec un travail cron.

Créez une tâche cron pour l'utilisateur root, qui crée un fichier toutes les minutes, synchronise le système de fichiers et le supprime ensuite.

# Edit the crontab as root user (it will open the crontab with your favorite editor)
$ Sudo crontab -e

# add the following line, save and close the editor
* * * * * touch /media/userone/New\ Volume/keepalive; sync; rm -f /media/userone/New\ Volume/keepalive

Cela devrait maintenir le périphérique USB en marche

0
Simon Sudler