Жесткий диск 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