Bläddra i källkod

Fixed disk listing issue with newer kernel / udev versions

/dev/disks/by-path apparently no longer contains ATA disks, since
they do not possess an ID_PATH udev attribute. /dev/disks/by-id
is used instead, although it has entries fo non-physical disks.
Maxim Kammerer 12 år sedan
förälder
incheckning
b63bce1b29
3 ändrade filer med 6 tillägg och 6 borttagningar
  1. 4 4
      src/etc/init.d/spindown
  2. 1 1
      src/etc/laptop-mode/laptop-mode.conf
  3. 1 1
      src/usr/local/sbin/bug-report

+ 4 - 4
src/etc/init.d/spindown

@@ -19,14 +19,14 @@ start() {
     fi
 
     # Put ATA/SCSI drives into quiet mode
-    # /dev/disk/by-path should contain only physical devices
+    # /dev/disk/by-path does not cover all physical devices (some lack ID_PATH)
     # NOTE: hdparm -M and -y do not wake up disks from standby
-    if [ -e /dev/disk/by-path ]; then
+    if [ -e /dev/disk/by-id ]; then
         ebegin Enabling drive acoustic and standby modes
         eindent
 
-        devs=`find /dev/disk/by-path ! -name '*-part[0-9]*' -xtype b \
-                                     -exec readlink -f {} \;`
+        devs=`find /dev/disk/by-id ! -name '*-part[0-9]*' -xtype b \
+                                   -exec readlink -f {} \; | sort -u`
         for dev in ${devs}; do
             if hdparm -q -M 128 "${dev}" 2>/dev/null; then
                 einfo "Quiet mode:   ${dev}"

+ 1 - 1
src/etc/laptop-mode/laptop-mode.conf

@@ -40,7 +40,7 @@ DISABLE_LAPTOP_MODE_ON_CRITICAL_BATTERY_LEVEL=1
 # For spinning down your hard drives, laptop mode will remount file systems and
 # adjust hard drive spindown timeouts.
 # (copied from /etc/init.d/spindown)
-HD=`find /dev/disk/by-path ! -name '*-part[0-9]*' ! -lname '*/vd*' -xtype b -exec readlink -f {} \;`
+HD=`find /dev/disk/by-id ! -name '*-part[0-9]*' ! -lname '*/vd*' ! -lname '*/dm-*' -xtype b -exec readlink -f {} \; | sort -u`
 
 # Use hdparm for /dev/sd*, not sdparm
 ASSUME_SCSI_IS_SATA=1

+ 1 - 1
src/usr/local/sbin/bug-report

@@ -75,7 +75,7 @@ cp /proc/mounts                        10-mnt
 cp /var/run/auto.media                 10-autos
 
 
-for dev in `find /dev/disk/by-path ! -name '*-part[0-9]*' -xtype b -exec readlink -f {} \;`; do
+for dev in `find /dev/disk/by-id ! -name '*-part[0-9]*' -xtype b -exec readlink -f {} \; | sort -u`; do
     hdparm -iI   "${dev}"            > 11-ide-`basename "${dev}"`
     # NOTE: may hang on USB key
     # sdparm -a    "${dev}"            > 11-scsi-`basename "${dev}"`