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

Mir*_*osz 5 boot usb debian initramfs

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

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

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

附加信息

在我关闭和打开设备后,加载了两个新模块:

# lsmod 
Module                  Size  Used by
uas                    24576  0
usb_storage            69632  1 uas
Run Code Online (Sandbox Code Playgroud)

这些模块在 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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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==""
Run Code Online (Sandbox Code Playgroud)
# 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==""
Run Code Online (Sandbox Code Playgroud)
# /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"
Run Code Online (Sandbox Code Playgroud)

我将磁盘插入计算机上的 USB 3 或 USB 2 端口都没有关系。

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

我是通过 initramfs-tools 还是 dracut 生成 initramfs 都没有关系。

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

gro*_*mal 3

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

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

ATTRS{manufacturer}=="Seagate", ATTRS{product}=="BUP Slim BK", SYMLINK+="seagate"
Run Code Online (Sandbox Code Playgroud)

这应该强制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
Run Code Online (Sandbox Code Playgroud)

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

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