ฉันกำลังวิ่ง ราสเบอร์รี่ Pi กับ Raspbian (Linux บนพื้นฐานของ Debian Wheezy) เป็น NAS (Network Attached Storage) ที่มีฮาร์ดไดรฟ์ USB ต่ออยู่ อุปกรณ์ USB เท่านั้น .
ปัญหาที่ฉันเผชิญอยู่ก็คือฮาร์ดไดรฟ์ USB ภายนอกอยู่ที่ /dev/sda
แต่ การเปลี่ยนแปลงที่รันไทม์ของระบบปฏิบัติการตามธรรมชาติ ไปยัง /dev/sdb
โดยไม่มีเหตุผลใด ๆ จากนั้นในขณะที่ใช้มันที่ /dev/sdb
มันกระโดดกลับไป /dev/sda
. นอกจากนี้ยังเกิดขึ้นในขณะที่คัดลอกข้อมูลจำนวนมากทำให้เกิดข้อผิดพลาด I / O บางครั้งอาจใช้เวลาหลายชั่วโมง แต่ไม่เช่นนั้นจะใช้เวลาไม่กี่นาที - นี่มันน่ากลัวจริงๆ!
แน่นอนฉันพิจารณาอินเทอร์เน็ตเพื่อหาเบาะแสก่อนขอความช่วยเหลือจากที่นี่ สิ่งเดียวที่น่าสนใจที่ฉันพบคือลิงค์ต่อไปนี้: Linux: จำเส้นทางไปยังอุปกรณ์ USB - ฉันทำตามขั้นตอนที่อธิบายไว้และฉันโพสต์เอาท์พุทของคำสั่งที่นี่
คำสั่ง 1: udevadm info -q all -p $(udevadm info -q path -n /dev/sda)
เอาท์พุท 1:
P: /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/host0/target0:0:0/0:0:0:0/block/sda
N: sda
S: disk/by-id/usb-WDC_WD25_00JS-40NGB2_8DC88D250088-0:0
S: disk/by-path/platform-bcm2708_usb-usb-0:1.3:1.0-scsi-0:0:0:0
E: DEVLINKS=/dev/disk/by-id/usb-WDC_WD25_00JS-40NGB2_8DC88D250088-0:0 /dev/disk/by-path/platform-bcm2708_usb-usb-0:1.3:1.0-scsi-0:0:0:0
E: DEVNAME=/dev/sda
E: DEVPATH=/devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/host0/target0:0:0/0:0:0:0/block/sda
E: DEVTYPE=disk
E: ID_BUS=usb
E: ID_INSTANCE=0:0
E: ID_MODEL=00JS-40NGB2
E: ID_MODEL_ENC=00JS-40NGB2\x20\x20\x20\x20\x20
E: ID_MODEL_ID=2336
E: ID_PART_TABLE_TYPE=dos
E: ID_PATH=platform-bcm2708_usb-usb-0:1.3:1.0-scsi-0:0:0:0
E: ID_PATH_TAG=platform-bcm2708_usb-usb-0_1_3_1_0-scsi-0_0_0_0
E: ID_REVISION=0100
E: ID_SERIAL=WDC_WD25_00JS-40NGB2_8DC88D250088-0:0
E: ID_SERIAL_SHORT=8DC88D250088
E: ID_TYPE=disk
E: ID_USB_DRIVER=usb-storage
E: ID_USB_INTERFACES=:080650:
E: ID_USB_INTERFACE_NUM=00
E: ID_VENDOR=WDC_WD25
E: ID_VENDOR_ENC=WDC\x20WD25
E: ID_VENDOR_ID=152d
E: MAJOR=8
E: MINOR=0
E: SUBSYSTEM=block
E: UDEV_LOG=3
E: UDISKS_ATA_SMART_IS_AVAILABLE=1
E: UDISKS_PARTITION_TABLE=1
E: UDISKS_PARTITION_TABLE_COUNT=1
E: UDISKS_PARTITION_TABLE_SCHEME=mbr
E: UDISKS_PRESENTATION_NOPOLICY=0
E: USEC_INITIALIZED=7853442
คำสั่ง 2: udevadm info -q all -p $(udevadm info -q path -n /dev/sdb)
เอาท์พุท 2:
P: /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/host2/target2:0:0/2:0:0:0/block/sdb
N: sdb
S: disk/by-id/usb-WDC_WD25_00JS-40NGB2_8DC88D250088-0:0
S: disk/by-path/platform-bcm2708_usb-usb-0:1.3:1.0-scsi-0:0:0:0
E: DEVLINKS=/dev/disk/by-id/usb-WDC_WD25_00JS-40NGB2_8DC88D250088-0:0 /dev/disk/by-path/platform-bcm2708_usb-usb-0:1.3:1.0-scsi-0:0:0:0
E: DEVNAME=/dev/sdb
E: DEVPATH=/devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/host2/target2:0:0/2:0:0:0/block/sdb
E: DEVTYPE=disk
E: ID_BUS=usb
E: ID_INSTANCE=0:0
E: ID_MODEL=00JS-40NGB2
E: ID_MODEL_ENC=00JS-40NGB2\x20\x20\x20\x20\x20
E: ID_MODEL_ID=2336
E: ID_PART_TABLE_TYPE=dos
E: ID_PATH=platform-bcm2708_usb-usb-0:1.3:1.0-scsi-0:0:0:0
E: ID_PATH_TAG=platform-bcm2708_usb-usb-0_1_3_1_0-scsi-0_0_0_0
E: ID_REVISION=0100
E: ID_SERIAL=WDC_WD25_00JS-40NGB2_8DC88D250088-0:0
E: ID_SERIAL_SHORT=8DC88D250088
E: ID_TYPE=disk
E: ID_USB_DRIVER=usb-storage
E: ID_USB_INTERFACES=:080650:
E: ID_USB_INTERFACE_NUM=00
E: ID_VENDOR=WDC_WD25
E: ID_VENDOR_ENC=WDC\x20WD25
E: ID_VENDOR_ID=152d
E: MAJOR=8
E: MINOR=16
E: SUBSYSTEM=block
E: UDEV_LOG=3
E: UDISKS_ATA_SMART_IS_AVAILABLE=1
E: UDISKS_PARTITION_TABLE=1
E: UDISKS_PARTITION_TABLE_COUNT=1
E: UDISKS_PARTITION_TABLE_SCHEME=mbr
E: UDISKS_PRESENTATION_NOPOLICY=0
E: USEC_INITIALIZED=2425648913
ดังนั้นฉันจึงลองใช้เคล็ดลับและเพิ่มบรรทัด BUS=="usb", ATTR{serial}=="WDC_WD25_00JS-40NGB2_8DC88D250088-0:0", NAME="sda"
ไปที่ไฟล์ /etc/udev/rules.d/10-usb-serial
แต่น่าเสียดายที่นี่ยังไม่ได้แก้ปัญหา
ฉันไม่ทราบว่านี่เป็นสิ่งสำคัญที่ต้องพูดถึง แต่ที่เก็บข้อมูลภายนอก USB ที่ใช้ประกอบด้วยฮาร์ดไดรฟ์สองตัวขนาด 256 GB ใน JBOD กรณีควบคุม นั่นหมายความว่าดูเหมือนว่าฮาร์ดไดรฟ์หนึ่งตัวขนาด 512 GB สำหรับระบบปฏิบัติการ
และตอนนี้ฉันรอคอยที่จะได้รับความช่วยเหลือและ / หรือข้อเสนอแนะ - ขอบคุณล่วงหน้า!
DEVPATH
และ P:
เส้นแตกต่างกัน
/dev
ชื่อดิสก์ของคุณมีการเปลี่ยนแปลง?