/ dev / sdb * não disponível após a inicialização - o initramfs não carrega os módulos uas e usb_storage

4

O Initramfs no meu sistema de testes Debian não é capaz de carregar automaticamente módulos de kernel necessários para HDD USB 3 externo (Seagate Backup Plus 1T) se já estiver conectado quando o initramfs foi iniciado. Se eu inicializar no shell initramfs, conecte o cabo e conecte-o novamente, então o dispositivo aparecerá e eu poderei montá-lo.

Eu não preciso deste dispositivo no initramfs, mas /dev/ filesystem criado pelo initramfs é passado para o sistema operacional principal, onde eu preciso dele. Eu tenho que ligar e desligar o cabo para tornar o dispositivo utilizável.

Como faço para configurar o initramfs para instalar este dispositivo? Ou como dizer ao sistema operacional principal para percorrer os barramentos de hardware e lidar com todos os dispositivos que o udev no initramfs perdeu?

Informações adicionais

Depois de ligar e desligar o dispositivo, dois novos módulos são carregados:

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

Estes módulos estão disponíveis na imagem 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

uname , dmesg e lsusb output após o dispositivo de conexão:

# 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

udevadm de saída no initramfs e no sistema de trabalho (eles são praticamente os mesmos, as únicas diferenças estão em stat , iodone_cnt , ioerr_cnt , iorequest_cnt e urbnum ):

# 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"

Não importa se eu conecto o disco à porta USB 3 ou USB 2 no computador.

Os dispositivos USB2 conectados antes da inicialização do initramfs são reconhecidos e resolvidos corretamente. Eu não tenho nenhum outro dispositivo USB 3 para verificar se ele também seria afetado. No entanto, eu poderia tentar com este disco no computador do meu amigo (com o Ubuntu 16.04) - foi resolvido e disponível em /dev/ após o boot.

Não importa se eu gero o initramfs pelo initramfs-tools ou pelo dracut.

Como posso garantir que /dev/sdb* relacionado a este HDD esteja disponível no sistema totalmente inicializado, mesmo se o cabo estivesse conectado antes da inicialização?

    
por Mirosław Zalewski 31.07.2016 / 21:25

2 respostas

2

OK, este é um palpite e uma solução alternativa (em vez de uma compreensão adequada do problema), mas deve funcionar.

Crie um arquivo de regras udev , digamos, /etc/udev/rules.d/z30-seagate-disk.rules e adicione a seguinte regra:

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

Isso deve forçar o udev a fazer uma segunda passagem e adicionar o disco como /dev/seagate block device. Você também precisará adicionar esse arquivo à variável FILES em /etc/mkinitcpio.conf para que ele entre no initramfs . (E execute mkinitcpio -p linux para reconstruir o initramfs )

Disclaimer: Testado no Arch, não no Debian, e não usando o USB 3.0.

Outra solução seria forçar o uas (USB SCSI) a ser sempre carregado pelo kernel. Adicione a um arquivo o nome /etc/modules-load.d/seagate-disk.conf do nome do módulo:

uas
usb_storage
usbcore
scsi_mod
usb_common

Em teoria, apenas uas é necessário, mas não posso replicar o problema, portanto, tentaria usar o brute forçando tudo que é necessário para gerenciar um HDD USB. Novamente, adicione esse arquivo a FILES in /etc/mkinitcpio.conf .

Isso forçará o kernel a ter uas sempre carregado. Talvez enquanto udev estiver rodando através dos barramentos, isso supõe erroneamente que os hubs / barramentos USB não estão carregados com nada, já que o kernel não possui módulos USB carregados.

    
por 01.08.2016 / 00:17
2

Edite /etc/modules e adicione uma linha contendo uas .

Em seguida, execute update-initramfs (por exemplo, update-initramfs -u -k $(uname -r) para atualizar o initramfs para o kernel em execução no momento. ou -k all para todos os kernels instalados).

Os módulos listados em /etc/modules são carregados automaticamente, independentemente de udev ou qualquer outra coisa detectar que são necessários.

Isso também é útil se você precisa ou quer forçar uma ordem específica para os módulos serem carregados, de modo que o módulo foo sempre será carregado antes do módulo bar (a menos, é claro, que um módulo carregado anteriormente dependa bar ).

Como em qualquer módulo carregado por modprobe , você pode definir opções de tempo de carregamento em um arquivo em /etc/modprobe.d/ .

por exemplo. Eu tenho spl e zfs listado em /etc/modules e /etc/modprobe.d/zfs.conf contém:

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

Se você quiser saber quais opções de tempo de carregamento um módulo conhece, use modinfo [module] | grep parm . Módulo uas não tem nenhum.

    
por 03.08.2016 / 09:35