Re: script bash pour mise en veille du disque usb

Page principale

Répondre à ce message
Auteur: anne.guilde@free.fr
Date:  
À: ML Guilde
Sujet: Re: script bash pour mise en veille du disque usb
Suite de tous mes essais

debian strech
mate
je suis avec Thunar 1.6.11 que je préfère à Caja 1.16.6 comme
gestionnaire de fichiers
J'ai ouvert un terminal et j'ai fait la commande # journalctl -f pour
suivre ce qui se passe avec systemd.

J'allume mon boîtier usb qui a un disque de 3 to pour mes sauvegardes de
ma debian.

1- J'utilise Thunar pour gérer le disque usb

Je fais 'eject' du disque usb dans thunar

févr. 21 11:59:45 pc-00105 udisksd[1360]: Cleaning up mount point
/media/anne/2a5429e8-d3bc-4f1f-9416-821cd1ec72b7 (device 8:33 is not
mounted)
févr. 21 11:59:45 pc-00105 udisksd[1360]: Unmounted /dev/sdc1 on behalf
of uid 1000
févr. 21 11:59:49 pc-00105 udisksd[1360]: Successfully sent SCSI command
SYNCHRONIZE CACHE to /dev/sdc
févr. 21 11:59:50 pc-00105 udisksd[1360]: Successfully sent SCSI command
START STOP UNIT to /dev/sdc
févr. 21 11:59:50 pc-00105 kernel: sd 3:0:0:0: [sdc] Synchronizing SCSI
cache
févr. 21 11:59:50 pc-00105 kernel: sd 3:0:0:0: [sdc] Synchronize
Cache(10) failed: Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
févr. 21 11:59:51 pc-00105 udisksd[1360]: Powered off /dev/sdc -
successfully wrote to sysfs path
/sys/devices/pci0000:00/0000:00:14.0/usb3/3-1/remove
févr. 21 11:59:51 pc-00105 kernel: usb 3-1: USB disconnect, device number 3

le boîtier s'éteint

J'enlève la prise usb sur le pc et je la remets.

févr. 21 12:25:01 pc-00105 kernel: usb 3-1: new SuperSpeed USB device 
number 4 using xhci_hcd
févr. 21 12:25:01 pc-00105 kernel: usb 3-1: New USB device found, 
idVendor=174c, idProduct=55aa
févr. 21 12:25:01 pc-00105 kernel: usb 3-1: New USB device strings: 
Mfr=2, Product=3, SerialNumber=1
févr. 21 12:25:01 pc-00105 kernel: usb 3-1: Product: ASM105x
févr. 21 12:25:01 pc-00105 kernel: usb 3-1: Manufacturer: ASMT
févr. 21 12:25:01 pc-00105 kernel: usb 3-1: SerialNumber: 75NDBVXBS000
févr. 21 12:25:01 pc-00105 kernel: scsi host3: uas
févr. 21 12:25:01 pc-00105 kernel: scsi 3:0:0:0: Direct-Access 
ST3000DM 008-2DM166       0    PQ: 0 ANSI: 6
févr. 21 12:25:01 pc-00105 mtp-probe[3888]: checking bus 3, device 4: 
"/sys/devices/pci0000:00/0000:00:14.0/usb3/3-1"
févr. 21 12:25:01 pc-00105 mtp-probe[3888]: bus: 3, device: 4 was not an 
MTP device
févr. 21 12:25:01 pc-00105 kernel: sd 3:0:0:0: [sdc] 5860533168 512-byte 
logical blocks: (3.00 TB/2.73 TiB)
févr. 21 12:25:01 pc-00105 kernel: sd 3:0:0:0: [sdc] 4096-byte physical 
blocks
févr. 21 12:25:01 pc-00105 kernel: sd 3:0:0:0: Attached scsi generic sg2 
type 0
févr. 21 12:25:01 pc-00105 kernel: sd 3:0:0:0: [sdc] Write Protect is off
févr. 21 12:25:01 pc-00105 kernel: sd 3:0:0:0: [sdc] Mode Sense: 43 00 00 00
févr. 21 12:25:01 pc-00105 kernel: sd 3:0:0:0: [sdc] Write cache: 
enabled, read cache: enabled, doesn't support DPO or FUA
févr. 21 12:25:01 pc-00105 kernel:  sdc: sdc1
févr. 21 12:25:01 pc-00105 kernel: sd 3:0:0:0: [sdc] Attached SCSI disk
févr. 21 12:25:02 pc-00105 kernel: EXT4-fs (sdc1): mounted filesystem 
with ordered data mode. Opts: (null)
févr. 21 12:25:02 pc-00105 udisksd[1360]: Mounted /dev/sdc1 at 
/media/anne/2a5429e8-d3bc-4f1f-9416-821cd1ec72b7 on behalf of uid 1000


Le boîtier usb s'allume et le disque tourne.

Je fais 'démonter' du disque usb dans thunar

févr. 21 12:56:46 pc-00105 udisksd[1360]: Cleaning up mount point
/media/anne/2a5429e8-d3bc-4f1f-9416-821cd1ec72b7 (device 8:33 is not
mounted)
févr. 21 12:56:46 pc-00105 udisksd[1360]: Unmounted /dev/sdc1 on behalf
of uid 1000

Je clique sur le disque usb dans thunar

févr. 21 13:17:17 pc-00105 kernel: EXT4-fs (sdc1): mounted filesystem
with ordered data mode. Opts: (null)
févr. 21 13:17:17 pc-00105 udisksd[1360]: Mounted /dev/sdc1 at
/media/anne/2a5429e8-d3bc-4f1f-9416-821cd1ec72b7 on behalf of uid 1000

Le disque usb est monté

2- Maintenant je passe en ligne de commande

J'essaie d'arrêter le disque

# udisksctl power-off -b /dev/sdc
Error powering off drive: The drive in use: Device /dev/sdc1 is mounted
(udisks-error-quark, 14)

donc tout va bien, il faut démonter le disque avant de l'arrêter

# udisksctl unmount -b /dev/sdc1
Unmounted /dev/sdc1

févr. 21 14:20:26 pc-00105 udisksd[1360]: Cleaning up mount point
/media/anne/2a5429e8-d3bc-4f1f-9416-821cd1ec72b7 (device 8:33 is not
mounted)
févr. 21 14:20:26 pc-00105 udisksd[1360]: Unmounted /dev/sdc1 on behalf
of uid 0/dev/sdc1.

Le disque usb est démonté

# udisksctl power-off -b /dev/sdc

févr. 21 15:50:21 pc-00105 udisksd[1360]: Successfully sent SCSI command
SYNCHRONIZE CACHE to /dev/sdc
févr. 21 15:50:21 pc-00105 udisksd[1360]: Successfully sent SCSI command
START STOP UNIT to /dev/sdc
févr. 21 15:50:21 pc-00105 kernel: sd 3:0:0:0: [sdc] Synchronizing SCSI
cache
févr. 21 15:50:21 pc-00105 kernel: sd 3:0:0:0: [sdc] Synchronize
Cache(10) failed: Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
févr. 21 15:50:21 pc-00105 udisksd[1360]: Powered off /dev/sdc -
successfully wrote to sysfs path
/sys/devices/pci0000:00/0000:00:14.0/usb3/3-1/remove
févr. 21 15:50:21 pc-00105 kernel: usb 3-1: USB disconnect, device number 7

J'enlève la prise usb sur le pc et je la remets.

févr. 21 15:53:08 pc-00105 kernel: usb 3-1: new SuperSpeed USB device 
number 8 using xhci_hcd
févr. 21 15:53:08 pc-00105 kernel: usb 3-1: New USB device found, 
idVendor=174c, idProduct=55aa
févr. 21 15:53:08 pc-00105 kernel: usb 3-1: New USB device strings: 
Mfr=2, Product=3, SerialNumber=1
févr. 21 15:53:08 pc-00105 kernel: usb 3-1: Product: ASM105x
févr. 21 15:53:08 pc-00105 kernel: usb 3-1: Manufacturer: ASMT
févr. 21 15:53:08 pc-00105 kernel: usb 3-1: SerialNumber: 75NDBVXBS000
févr. 21 15:53:08 pc-00105 mtp-probe[4755]: checking bus 3, device 8: 
"/sys/devices/pci0000:00/0000:00:14.0/usb3/3-1"
févr. 21 15:53:08 pc-00105 kernel: scsi host3: uas
févr. 21 15:53:08 pc-00105 kernel: scsi 3:0:0:0: Direct-Access 
ST3000DM 008-2DM166       0    PQ: 0 ANSI: 6
févr. 21 15:53:08 pc-00105 mtp-probe[4755]: bus: 3, device: 8 was not an 
MTP device
févr. 21 15:53:09 pc-00105 kernel: sd 3:0:0:0: Attached scsi generic sg2 
type 0
févr. 21 15:53:09 pc-00105 kernel: sd 3:0:0:0: [sdc] 5860533168 512-byte 
logical blocks: (3.00 TB/2.73 TiB)
févr. 21 15:53:09 pc-00105 kernel: sd 3:0:0:0: [sdc] 4096-byte physical 
blocks
févr. 21 15:53:09 pc-00105 kernel: sd 3:0:0:0: [sdc] Write Protect is off
févr. 21 15:53:09 pc-00105 kernel: sd 3:0:0:0: [sdc] Mode Sense: 43 00 00 00
févr. 21 15:53:09 pc-00105 kernel: sd 3:0:0:0: [sdc] Write cache: 
enabled, read cache: enabled, doesn't support DPO or FUA
févr. 21 15:53:09 pc-00105 kernel:  sdc: sdc1
févr. 21 15:53:09 pc-00105 kernel: sd 3:0:0:0: [sdc] Attached SCSI disk
févr. 21 15:53:09 pc-00105 kernel: EXT4-fs (sdc1): mounted filesystem 
with ordered data mode. Opts: (null)
févr. 21 15:53:09 pc-00105 udisksd[1360]: Mounted /dev/sdc1 at 
/media/anne/2a5429e8-d3bc-4f1f-9416-821cd1ec72b7 on behalf of uid 1000


Le boîtier usb s'allume et le disque tourne.
Le disque est monté.

Je démonte le disque

# udisksctl unmount -b /dev/sdc1
Unmounted /dev/sdc1.

févr. 21 15:57:24 pc-00105 udisksd[1360]: Cleaning up mount point
/media/anne/2a5429e8-d3bc-4f1f-9416-821cd1ec72b7 (device 8:33 is not
mounted)
févr. 21 15:57:25 pc-00105 udisksd[1360]: Unmounted /dev/sdc1 on behalf
of uid 0

Je remonte le disque

# udisksctl mount -b /dev/sdc1
Mounted /dev/sdc1 at /media/root/2a5429e8-d3bc-4f1f-9416-821cd1ec72b7.

févr. 21 16:12:50 pc-00105 kenel: EXT4-fs (sdc1): mounted filesystem
with ordered data mode. Opts: (null)
févr. 21 16:12:50 pc-00105 udisksd[1360]: Mounted /dev/sdc1 at
/media/root/2a5429e8-d3bc-4f1f-9416-821cd1ec72b7 on behalf of uid 0

je démonte le disque

# udisksctl unmount -b /dev/sdc1
Unmounted /dev/sdc1.

févr. 21 16:18:24 pc-00105 udisksd[1360]: Cleaning up mount point
/media/root/2a5429e8-d3bc-4f1f-9416-821cd1ec72b7 (device 8:33 is not
mounted)
févr. 21 16:18:24 pc-00105 udisksd[1360]: Unmounted /dev/sdc1 on behalf
of uid 0

Maintenant au lieu d'arrêter le disque je veux juste le suspendre
J'ai besoin de l'id du bus usb

# UUID="2a5429e8-d3bc-4f1f-9416-821cd1ec72b7"; \
> DEV_NAME=$(blkid -U "$UUID"); \
> echo "DEV_NAME : $DEV_NAME"; \
> DEV_NAME1="/dev/$(basename $(dirname $(readlink

/sys/class/block/$(basename $DEV_NAME))))"; \
> DEVICE1=$(udevadm info --query=path --name=${DEV_NAME1}

--attribute-walk | \
> egrep "looking at parent device" | head -1 | \
> sed -e "s/.*looking at parent device

'\(\/devices\/.*\)\/.*\/host.*/\1/g"); \
> DEV_BUS_ID=${DEVICE1##*/}; \
> echo "Found device $DEVICE1 associated to $DEV_NAME1; USB bus id is

$DEV_BUS_ID"
DEV_NAME : /dev/sdc1
Found device /devices/pci0000:00/0000:00:14.0/usb3/3-1 associated to
/dev/sdc; USB bus id is 3-1

L'id du bus usb : 3-1

Je suspends le disque avec
Avant de faire la commande suivante, il faut s’assurer que le disque est
démonté.

# echo -n 3-1 > /sys/bus/usb/drivers/usb/unbind

févr. 21 17:24:09 pc-00105 kernel: sd 3:0:0:0: [sdc] Synchronizing SCSI
cache
févr. 21 17:24:09 pc-00105 kernel: sd 3:0:0:0: [sdc] Synchronize
Cache(10) failed: Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK

# ls -al /dev/sd*
brw-rw---- 1 root disk 8, 0 févr. 20 23:49 /dev/sda
brw-rw---- 1 root disk 8, 1 févr. 20 23:49 /dev/sda1
brw-rw---- 1 root disk 8, 2 févr. 21 17:29 /dev/sda2
brw-rw---- 1 root disk 8, 3 févr. 20 23:49 /dev/sda3
brw-rw---- 1 root disk 8, 5 févr. 20 23:49 /dev/sda5
brw-rw---- 1 root disk 8, 16 févr. 20 23:49 /dev/sdb
brw-rw---- 1 root disk 8, 17 févr. 20 23:49 /dev/sdb1
brw-rw---- 1 root disk 8, 18 févr. 20 23:49 /dev/sdb2

# fdisk -l /dev/sdc
fdisk: impossible d'ouvrir /dev/sdc: Aucun fichier ou dossier de ce type

Plus de disque /dev/sdc

Le disque usb n’apparaît plus dans thunar.

Le disque ne tourne plus et la lumière bleu du boîtier s'éteint au bout
d'environ 5 mn.

Je remets le disque en route

# echo -n 3-1 > /sys/bus/usb/drivers/usb/bind

févr. 21 17:48:04 pc-00105 kernel: scsi host3: uas
févr. 21 17:48:04 pc-00105 kernel: scsi 3:0:0:0: Direct-Access 
ST3000DM 008-2DM166       0    PQ: 0 ANSI: 6
févr. 21 17:48:04 pc-00105 kernel: sd 3:0:0:0: Attached scsi generic sg2 
type 0
févr. 21 17:48:04 pc-00105 kernel: sd 3:0:0:0: [sdc] 5860533168 512-byte 
logical blocks: (3.00 TB/2.73 TiB)
févr. 21 17:48:04 pc-00105 kernel: sd 3:0:0:0: [sdc] 4096-byte physical 
blocks
févr. 21 17:48:04 pc-00105 kernel: sd 3:0:0:0: [sdc] Write Protect is off
févr. 21 17:48:04 pc-00105 kernel: sd 3:0:0:0: [sdc] Mode Sense: 43 00 00 00
févr. 21 17:48:04 pc-00105 kernel: sd 3:0:0:0: [sdc] Write cache: 
enabled, read cache: enabled, doesn't support DPO or FUA
févr. 21 17:48:10 pc-00105 kernel:  sdc: sdc1
févr. 21 17:48:10 pc-00105 kernel: sd 3:0:0:0: [sdc] Attached SCSI disk
févr. 21 17:48:11 pc-00105 kernel: EXT4-fs (sdc1): mounted filesystem 
with ordered data mode. Opts: (null)
févr. 21 17:48:11 pc-00105 udisksd[1360]: Mounted /dev/sdc1 at 
/media/anne/2a5429e8-d3bc-4f1f-9416-821cd1ec72b7 on behalf of uid 1000


Le disque tourne et la lumière bleu du boîtier est allumé.
Le disque usb apparaît dans thunar.

On m'a posé la question
Comment remettre le disque usb en route après le 'udisksctl power-off'?

Pour moi, sans une petite main, je ne vois pas de possibilité.

Si vous voyez des choses qui vous semble bizarre...
Tous conseils sont les bienvenues

Anne