Жесткий диск USB не отображается в /dev/

Я использую Ubuntu 14.01 на BeagleBone Black с LXDE. У меня есть жесткий диск USB, который автоматически монтируется (в LXDE появляется приглашение, и я должен ввести свой пароль), если я подключаю его после загрузки компьютера. Я также могу увидеть жесткий диск USB под /dev/, Но если у меня подключен жесткий диск USB при загрузке компьютера, то я не вижу жесткий диск под /dev/, Любые предложения, что я могу сделать, чтобы решить эту проблему?

Это выход из lsusb когда жесткий диск USB подключен во время загрузки

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Это вывод только sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL (Я пропустил /dev/[sh]d поскольку жесткий диск USB недоступен в /dev/) когда жесткий диск USB подключен во время загрузки

NAME         FSTYPE   SIZE MOUNTPOINT  LABEL
mmcblk0boot0            1M             
mmcblk0boot1            1M             
mmcblk0               1.8G             
├─mmcblk0p1  vfat       1M /boot/uboot boot
└─mmcblk0p2  ext4     1.8G /           rootfs

Это выход из lsusb когда жесткий диск UBS подключен после загрузки

Bus 001 Device 002: ID 152d:2338 JMicron Technology Corp. / JMicron USA Technology Corp. JM20337 Hi-Speed USB to SATA & PATA Combo Bridge
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Это выход из sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL /dev/sda когда жесткий диск UBS подключается после загрузки и "автоматически монтируется" через LXDE (появляется сообщение, и я должен ввести свой пароль)

NAME   FSTYPE   SIZE MOUNTPOINT  LABEL
sda           931.5G                                                    
└─sda1 ext4   931.5G /media/mikael/b4c5600d-f0e0-4bc9-83e4-caf6db38258e

Это выход из dmesg только после подключения жесткого диска USB после загрузки

[  347.032628] usb usb1: usb wakeup-resume
[  347.032735] usb usb1: usb auto-resume
[  347.032758] hub 1-0:1.0: hub_resume
[  347.032857] hub 1-0:1.0: port 1: status 0101 change 0001
[  347.135340] hub 1-0:1.0: state 7 ports 1 chg 0002 evt 0000
[  347.135410] hub 1-0:1.0: port 1, status 0101, change 0000, 12 Mb/s
[  347.240770] usb 1-1: new high-speed USB device number 2 using musb-hdrc
[  347.360705] usb 1-1: default language 0x0409
[  347.361123] usb 1-1: udev 2, busnum 1, minor = 1
[  347.361204] usb 1-1: New USB device found, idVendor=152d, idProduct=2338
[  347.361218] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=5
[  347.361229] usb 1-1: Product: USB to ATA/ATAPI bridge
[  347.361239] usb 1-1: Manufacturer: JMicron
[  347.361249] usb 1-1: SerialNumber: 1208891D9014
[  347.365968] usb 1-1: usb_probe_device
[  347.365997] usb 1-1: configuration #1 chosen from 1 choice
[  347.366360] usb 1-1: adding 1-1:1.0 (config #1, interface 0)
[  347.368713] usb-storage 1-1:1.0: usb_probe_interface
[  347.368747] usb-storage 1-1:1.0: usb_probe_interface - got id
[  347.380506] scsi0 : usb-storage 1-1:1.0
[  347.382266] hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
[  347.382323] hub 1-0:1.0: port 1 enable change, status 00000503
[  350.375785] scsi 0:0:0:0: Direct-Access     ST1000LM 024 HN-M101MBB        PQ: 0 ANSI: 2 CCS
[  350.442820] sd 0:0:0:0: [sda] 244190646 4096-byte logical blocks: (1.00 TB/931 GiB)
[  350.443523] sd 0:0:0:0: [sda] Write Protect is off
[  350.443545] sd 0:0:0:0: [sda] Mode Sense: 28 00 00 00
[  350.444583] sd 0:0:0:0: [sda] No Caching mode page present
[  350.450573] sd 0:0:0:0: [sda] Assuming drive cache: write through
[  350.470712] sd 0:0:0:0: [sda] 244190646 4096-byte logical blocks: (1.00 TB/931 GiB)
[  350.474565] sd 0:0:0:0: [sda] No Caching mode page present
[  350.481187] sd 0:0:0:0: [sda] Assuming drive cache: write through
[  350.547808]  sda: sda1
[  350.550022] sd 0:0:0:0: [sda] 244190646 4096-byte logical blocks: (1.00 TB/931 GiB)
[  350.550965] sd 0:0:0:0: [sda] No Caching mode page present
[  350.557204] sd 0:0:0:0: [sda] Assuming drive cache: write through
[  350.563590] sd 0:0:0:0: [sda] Attached SCSI disk
[  368.429266] EXT4-fs (sda1): recovery complete
[  368.429980] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)

1 ответ

Одним из способов решения этой проблемы является запуск udev для повторного сканирования устройств. Вот пример команды и выдержка из соответствующего вывода. (-v для многословия)

Если вы изменили какое-либо из правил udev, вы должны начать с:

sudo udevadm control --reload-rules

sudo udevadm trigger -v

/sys/devices/pci0000:00/0000:00:1d.0/usb2
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-0:1.0
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/host6
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/host6/scsi_host/host6
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/host6/target6:0:0
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/host6/target6:0:0/6:0:0:0
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/host6/target6:0:0/6:0:0:0/block/sdd
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/host6/target6:0:0/6:0:0:0/block/sdd/sdd1
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/host6/target6:0:0/6:0:0:0/block/sdd/sdd2
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/host6/target6:0:0/6:0:0:0/bsg/6:0:0:0
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/host6/target6:0:0/6:0:0:0/scsi_device/6:0:0:0
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/host6/target6:0:0/6:0:0:0/scsi_disk/6:0:0:0
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/host6/target6:0:0/6:0:0:0/scsi_generic/sg4
/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0

Обратите внимание, что ваш фактический вывод намного превысит это, поскольку udev будет сканировать все в /sys/devices/

Примечание: согласно моим тестам (смотреть вывод udevadm monitor), sudo необходимо. Если вы ее пропустите, ошибок не будет, но ничего не произойдет.

Примечание: тесты проводились в основном в режиме ожидания, и никаких побочных эффектов обнаружено не было. Я не проверял этот подход в системе под большой нагрузкой. Полное раскрытие, поскольку в прошлом я видел странные результаты в системах с большой нагрузкой.

Вы можете сузить эффекты для конкретного устройства, используя --attr-match=переключатель.

Чтобы получить атрибуты, которые вы можете использовать для вашего конкретного устройства, выполните команду command udevadm info -q all -n /dev/sXY где /dev/sXY это ваше блочное устройство. мой был /dev/sdd,

Еще один более целенаправленный подход заключается в echo change | sudo tee /sys/block/sdd/sdd1/uevent (где sdd - ваш диск, а sdd1 - ваш раздел).

Положительной стороной этого подхода является точное нацеливание устройства. Отрицательной стороной является то, что вы должны знать, на какое устройство вы ориентируетесь.

Источники:

https://unix.stackexchange.com/questions/39370/how-to-reload-udev-rules-without-reboot

https://unix.stackexchange.com/questions/124817/udev-how-do-i-find-out-which-subsystem-a-device-belongs-to

Другие вопросы по тегам