/dev/sdb* 启动后不可用 - initramfs 不加载 uas 和 usb_storage 模块

/dev/sdb* 启动后不可用 - initramfs 不加载 uas 和 usb_storage 模块

如果 initramfs 启动时已插入外部 USB 3 HDD (Seagate Backup Plus 1T),则我的 Debian 测试系统上的 Initramfs 无法自动加载必要的内核模块。如果我启动到 initramfs shell,拔出电缆并重新插入,然后设备将显示,我将能够安装它。

我在 initramfs 中不需要这个设备,但/dev/由 initramfs 创建的文件系统被传递到我确实需要它的主操作系统。我必须插拔电缆才能使设备可用。

如何设置 initramfs 来安装该设备?或者我如何告诉主操作系统遍历硬件总线并处理 initramfs 中 udev 错过的所有设备?

附加信息

当我关闭并打开设备后,会加载两个新模块:

# lsmod 
Module                  Size  Used by
uas                    24576  0
usb_storage            69632  1 uas

这些模块在 initramfs 映像中可用:

# lsinitramfs /boot/initrd.img-4.6.0-1-amd64 |grep -E '(uas|usb-storage)'
lib/modules/4.6.0-1-amd64/kernel/drivers/usb/storage/usb-storage.ko
lib/modules/4.6.0-1-amd64/kernel/drivers/usb/storage/uas.ko

unamedmesglsusb在插入设备后输出:

# uname -a
Linux pingwin 4.6.0-1-amd64 #1 SMP Debian 4.6.4-1 (2016-07-18) x86_64 GNU/Linux
# dmesg
[   53.412599] usb 2-2: new SuperSpeed USB device number 2 using xhci_hcd
[   53.429652] usb 2-2: New USB device found, idVendor=0bc2, idProduct=ab24
[   53.429659] usb 2-2: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[   53.429662] usb 2-2: Product: BUP Slim BK
[   53.429664] usb 2-2: Manufacturer: Seagate
[   53.429667] usb 2-2: SerialNumber: NA7K016V
[   53.455444] usbcore: registered new interface driver usb-storage
[   53.458787] scsi host6: uas
[   53.458962] usbcore: registered new interface driver uas
[   53.459440] scsi 6:0:0:0: Direct-Access     Seagate  BUP Slim BK      0302 PQ: 0 ANSI: 6
[   53.497569] sd 6:0:0:0: Attached scsi generic sg2 type 0
[   53.497586] sd 6:0:0:0: [sdb] Spinning up disk...
[   54.503950] ...ready
[   56.518071] sd 6:0:0:0: [sdb] 1953525167 512-byte logical blocks: (1.00 TB/932 GiB)
[   56.518077] sd 6:0:0:0: [sdb] 2048-byte physical blocks
[   56.687950] sd 6:0:0:0: [sdb] Write Protect is off
[   56.687960] sd 6:0:0:0: [sdb] Mode Sense: 4f 00 00 00
[   56.688242] sd 6:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[   56.699372]  sdb: sdb1
[   56.700399] sd 6:0:0:0: [sdb] Attached SCSI disk

# lsusb -v -d 0bc2:ab24

Bus 004 Device 002: ID 0bc2:ab24 Seagate RSS LLC 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         9
  idVendor           0x0bc2 Seagate RSS LLC
  idProduct          0xab24 
  bcdDevice            1.00
  iManufacturer           2 Seagate
  iProduct                3 BUP Slim BK
  iSerial                 1 NA7K016V
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          121
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower               36mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           4
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     98 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
        MaxStreams             32
        Data-in pipe (0x03)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
        MaxStreams             32
        Data-out pipe (0x04)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
        MaxStreams             32
        Status pipe (0x02)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               0
        Command pipe (0x01)
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength           22
  bNumDeviceCaps          2
  USB 2.0 Extension Device Capability:
    bLength                 7
    bDescriptorType        16
    bDevCapabilityType      2
    bmAttributes   0x00000002
      Link Power Management (LPM) Supported
  SuperSpeed USB Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x00
    wSpeedsSupported   0x000e
      Device can operate at Full Speed (12Mbps)
      Device can operate at High Speed (480Mbps)
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   1
      Lowest fully-functional device speed is Full Speed (12Mbps)
    bU1DevExitLat          10 micro seconds
    bU2DevExitLat        2047 micro seconds
Device Status:     0x000c
  (Bus Powered)
  U1 Enabled
  U2 Enabled

udevadminitramfs 和工作系统上的输出(它们几乎相同,唯一的区别在于statiodone_cntioerr_cntiorequest_cnturbnum

# udevadm info -a -p /sys/block/sdb on initramfs


Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host6/target6:0:0/6:0:0:0/block/sdb':
    KERNEL=="sdb"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{alignment_offset}=="0"
    ATTR{badblocks}==""
    ATTR{capability}=="50"
    ATTR{discard_alignment}=="0"
    ATTR{events}==""
    ATTR{events_async}==""
    ATTR{events_poll_msecs}=="-1"
    ATTR{ext_range}=="256"
    ATTR{inflight}=="       0        0"
    ATTR{range}=="16"
    ATTR{removable}=="0"
    ATTR{ro}=="0"
    ATTR{size}=="1953525167"
    ATTR{stat}=="      72        0     4254      232        0        0        0        0        0      136      232"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host6/target6:0:0/6:0:0:0':
    KERNELS=="6:0:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS=="sd"
    ATTRS{device_blocked}=="0"
    ATTRS{device_busy}=="0"
    ATTRS{dh_state}=="detached"
    ATTRS{eh_timeout}=="10"
    ATTRS{evt_capacity_change_reported}=="0"
    ATTRS{evt_inquiry_change_reported}=="0"
    ATTRS{evt_lun_change_reported}=="0"
    ATTRS{evt_media_change}=="0"
    ATTRS{evt_mode_parameter_change_reported}=="0"
    ATTRS{evt_soft_threshold_reached}=="0"
    ATTRS{inquiry}==""
    ATTRS{iocounterbits}=="32"
    ATTRS{iodone_cnt}=="0x7a"
    ATTRS{ioerr_cnt}=="0x8"
    ATTRS{iorequest_cnt}=="0x7a"
    ATTRS{model}=="BUP Slim BK     "
    ATTRS{queue_depth}=="30"
    ATTRS{queue_type}=="simple"
    ATTRS{rev}=="0302"
    ATTRS{scsi_level}=="7"
    ATTRS{state}=="running"
    ATTRS{timeout}=="30"
    ATTRS{type}=="0"
    ATTRS{vendor}=="Seagate "
    ATTRS{vpd_pg80}==""
    ATTRS{vpd_pg83}==""
    ATTRS{wwid}=="naa.5000000000000001"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host6/target6:0:0':
    KERNELS=="target6:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host6':
    KERNELS=="host6"
    SUBSYSTEMS=="scsi"
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0':
    KERNELS=="4-2:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="uas"
    ATTRS{authorized}=="1"
    ATTRS{bAlternateSetting}==" 1"
    ATTRS{bInterfaceClass}=="08"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bInterfaceProtocol}=="62"
    ATTRS{bInterfaceSubClass}=="06"
    ATTRS{bNumEndpoints}=="04"
    ATTRS{supports_autosuspend}=="0"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb4/4-2':
    KERNELS=="4-2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="9"
    ATTRS{bMaxPower}=="144mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0100"
    ATTRS{bmAttributes}=="80"
    ATTRS{busnum}=="4"
    ATTRS{configuration}==""
    ATTRS{devnum}=="2"
    ATTRS{devpath}=="2"
    ATTRS{idProduct}=="ab24"
    ATTRS{idVendor}=="0bc2"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Seagate"
    ATTRS{maxchild}=="0"
    ATTRS{product}=="BUP Slim BK"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="removable"
    ATTRS{serial}=="NA7K016V"
    ATTRS{speed}=="5000"
    ATTRS{urbnum}=="371"
    ATTRS{version}==" 3.00"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb4':
    KERNELS=="usb4"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{authorized_default}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceProtocol}=="03"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="9"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0406"
    ATTRS{bmAttributes}=="e0"
    ATTRS{busnum}=="4"
    ATTRS{configuration}==""
    ATTRS{devnum}=="1"
    ATTRS{devpath}=="0"
    ATTRS{idProduct}=="0003"
    ATTRS{idVendor}=="1d6b"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Linux 4.6.0-1-amd64 xhci-hcd"
    ATTRS{maxchild}=="4"
    ATTRS{product}=="xHCI Host Controller"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{serial}=="0000:00:14.0"
    ATTRS{speed}=="5000"
    ATTRS{urbnum}=="47"
    ATTRS{version}==" 3.00"

  looking at parent device '/devices/pci0000:00/0000:00:14.0':
    KERNELS=="0000:00:14.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="xhci_hcd"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x0c0330"
    ATTRS{consistent_dma_mask_bits}=="64"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0x1e31"
    ATTRS{dma_mask_bits}=="64"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="1"
    ATTRS{irq}=="29"
    ATTRS{local_cpulist}=="0-3"
    ATTRS{local_cpus}=="0f"
    ATTRS{msi_bus}=="1"
    ATTRS{numa_node}=="-1"
    ATTRS{subsystem_device}=="0x1949"
    ATTRS{subsystem_vendor}=="0x103c"
    ATTRS{vendor}=="0x8086"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
# udevadm info -a -p /sys/block/sdb on booted system

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host6/target6:0:0/6:0:0:0/block/sdb':
    KERNEL=="sdb"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{alignment_offset}=="0"
    ATTR{badblocks}==""
    ATTR{capability}=="50"
    ATTR{discard_alignment}=="0"
    ATTR{events}==""
    ATTR{events_async}==""
    ATTR{events_poll_msecs}=="-1"
    ATTR{ext_range}=="256"
    ATTR{inflight}=="       0        0"
    ATTR{range}=="16"
    ATTR{removable}=="0"
    ATTR{ro}=="0"
    ATTR{size}=="1953525167"
    ATTR{stat}=="      72        0     4254      328        0        0        0        0        0      272      328"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host6/target6:0:0/6:0:0:0':
    KERNELS=="6:0:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS=="sd"
    ATTRS{device_blocked}=="0"
    ATTRS{device_busy}=="0"
    ATTRS{dh_state}=="detached"
    ATTRS{eh_timeout}=="10"
    ATTRS{evt_capacity_change_reported}=="0"
    ATTRS{evt_inquiry_change_reported}=="0"
    ATTRS{evt_lun_change_reported}=="0"
    ATTRS{evt_media_change}=="0"
    ATTRS{evt_mode_parameter_change_reported}=="0"
    ATTRS{evt_soft_threshold_reached}=="0"
    ATTRS{inquiry}==""
    ATTRS{iocounterbits}=="32"
    ATTRS{iodone_cnt}=="0xd1"
    ATTRS{ioerr_cnt}=="0x48"
    ATTRS{iorequest_cnt}=="0xd1"
    ATTRS{model}=="BUP Slim BK     "
    ATTRS{queue_depth}=="30"
    ATTRS{queue_type}=="simple"
    ATTRS{rev}=="0302"
    ATTRS{scsi_level}=="7"
    ATTRS{state}=="running"
    ATTRS{timeout}=="30"
    ATTRS{type}=="0"
    ATTRS{vendor}=="Seagate "
    ATTRS{vpd_pg80}==""
    ATTRS{vpd_pg83}==""
    ATTRS{wwid}=="naa.5000000000000001"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host6/target6:0:0':
    KERNELS=="target6:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0/host6':
    KERNELS=="host6"
    SUBSYSTEMS=="scsi"
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb4/4-2/4-2:1.0':
    KERNELS=="4-2:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="uas"
    ATTRS{authorized}=="1"
    ATTRS{bAlternateSetting}==" 1"
    ATTRS{bInterfaceClass}=="08"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bInterfaceProtocol}=="62"
    ATTRS{bInterfaceSubClass}=="06"
    ATTRS{bNumEndpoints}=="04"
    ATTRS{supports_autosuspend}=="0"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb4/4-2':
    KERNELS=="4-2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="9"
    ATTRS{bMaxPower}=="144mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0100"
    ATTRS{bmAttributes}=="80"
    ATTRS{busnum}=="4"
    ATTRS{configuration}==""
    ATTRS{devnum}=="2"
    ATTRS{devpath}=="2"
    ATTRS{idProduct}=="ab24"
    ATTRS{idVendor}=="0bc2"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Seagate"
    ATTRS{maxchild}=="0"
    ATTRS{product}=="BUP Slim BK"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="removable"
    ATTRS{serial}=="NA7K016V"
    ATTRS{speed}=="5000"
    ATTRS{urbnum}=="592"
    ATTRS{version}==" 3.00"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb4':
    KERNELS=="usb4"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{authorized_default}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceProtocol}=="03"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="9"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0406"
    ATTRS{bmAttributes}=="e0"
    ATTRS{busnum}=="4"
    ATTRS{configuration}==""
    ATTRS{devnum}=="1"
    ATTRS{devpath}=="0"
    ATTRS{idProduct}=="0003"
    ATTRS{idVendor}=="1d6b"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Linux 4.6.0-1-amd64 xhci-hcd"
    ATTRS{maxchild}=="4"
    ATTRS{product}=="xHCI Host Controller"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{serial}=="0000:00:14.0"
    ATTRS{speed}=="5000"
    ATTRS{urbnum}=="47"
    ATTRS{version}==" 3.00"

  looking at parent device '/devices/pci0000:00/0000:00:14.0':
    KERNELS=="0000:00:14.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="xhci_hcd"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x0c0330"
    ATTRS{consistent_dma_mask_bits}=="64"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0x1e31"
    ATTRS{dma_mask_bits}=="64"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="1"
    ATTRS{irq}=="29"
    ATTRS{local_cpulist}=="0-3"
    ATTRS{local_cpus}=="0f"
    ATTRS{msi_bus}=="1"
    ATTRS{numa_node}=="-1"
    ATTRS{subsystem_device}=="0x1949"
    ATTRS{subsystem_vendor}=="0x103c"
    ATTRS{vendor}=="0x8086"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
# /etc/udev/udev.conf (the same on booted system and in initramfs)
# see udev.conf(5) for details
#
# udevd is started in the initramfs, so when this file is modified the
# initramfs should be rebuilt.

#udev_log="info"

将磁盘插入计算机上的 USB 3 或 USB 2 端口并不重要。

在 initramfs 初始化之前插入的 USB2 设备可以被正确识别和设置。我没有任何其他 USB 3 设备来验证它是否也会受到影响。不过,我可以在我朋友的计算机(使用 Ubuntu 16.04)上尝试使用此磁盘 - 它已解决并可在/dev/启动后使用。

我是通过 initramfs-tools 还是通过 dracut 生成 initramfs 并不重要。

/dev/sdb*即使在启动前插入电缆,如何确保与此 HDD 相关的内容在完全启动的系统中可用?

答案1

好吧,这是一个疯狂的猜测和解决方法(而不是对问题的正确理解),但它应该有效。

例如,创建一个udev规则文件,/etc/udev/rules.d/z30-seagate-disk.rules并添加以下规则:

ATTRS{manufacturer}=="Seagate", ATTRS{product}=="BUP Slim BK", SYMLINK+="seagate"

这应该强制udev进行第二次传递并将磁盘添加为/dev/seagate块设备。您还需要将该文件添加到FILES变量中,/etc/mkinitcpio.conf以便它进入initramfs. (并运行mkinitcpio -p linux重建initramfs

免责声明:在 Arch 上测试,未在 Debian 上测试,且未使用 USB 3.0。


另一种解决方法是强制uas(USB SCSI) 始终由内核加载。添加到文件中并说出/etc/modules-load.d/seagate-disk.conf模块名称:

uas
usb_storage
usbcore
scsi_mod
usb_common

理论上只uas需要,但我无法复制您的问题,因此我会尝试暴力破解管理 USB HDD 所需的一切。再次将该文件添加到FILESin 中/etc/mkinitcpio.conf

这将强制内核uas始终加载。也许在udev通过总线运行时,它错误地假设 USB 集线器/总线没有加载任何东西,因为内核没有加载 USB 模块。

答案2

编辑/etc/modules并添加包含uas.

然后运行update-initramfs(例如,更新当前运行的内核或所有已安装内核的update-initramfs -u -k $(uname -r)initramfs )。-k all

/etc/modules无论是否udev或其他任何东西检测到需要它们,列出的模块都会自动加载。

如果您需要或想要强制加载模块的特定顺序,这也很有用,以便该模块foo始终在模块之前加载bar(当然,除非较早加载的模块依赖于bar)。

与加载的任何模块一样modprobe,您可以在 中的文件中设置加载时间选项/etc/modprobe.d/

例如,我已经在 中列出了spl和,并且包含:zfs/etc/modules/etc/modprobe.d/zfs.conf

# use minimum 4GB and maxmum of 8GB RAM for ZFS ARC
options zfs zfs_arc_min=4294967296 zfs_arc_max=8589934592

如果您想知道模块知道哪些加载时选项,请使用modinfo [module] | grep parm.模块uas没有。

相关内容