/dev/sdb* not available after boot - initramfs does not load uas and usb_storage modules
Solution 1
OK, this is a wild guess and a workaround (rather than a proper understanding of the issue) but it should work.
Make a udev
rules file, say, /etc/udev/rules.d/z30-seagate-disk.rules
and add the following rule:
ATTRS{manufacturer}=="Seagate", ATTRS{product}=="BUP Slim BK", SYMLINK+="seagate"
This should force udev
to make a second pass and add the disk as /dev/seagate
block device. You will also need to add that file to the FILES
variable in /etc/mkinitcpio.conf
so it gets into the initramfs
. (And run mkinitcpio -p linux
to rebuild the initramfs
)
Disclaimer: Tested on Arch, not on Debian, and not using USB 3.0.
Another workaround would be to force uas
(USB SCSI) to be always loaded by the kernel. Add to a file say /etc/modules-load.d/seagate-disk.conf
the module name:
uas
usb_storage
usbcore
scsi_mod
usb_common
In theory only uas
is needed, but I cannot replicate you issue therefore I'd try brute forcing everything that is needed to manage a USB HDD. Again, add that file to FILES
in /etc/mkinitcpio.conf
.
This will force the kernel to have uas
always loaded. Maybe while udev
is running though the buses it falsely assumes the the USB hubs/buses are not loaded with anything since the kernel has no USB modules loaded.
Solution 2
Edit /etc/modules
and add a line containing uas
.
Then run update-initramfs
(e.g. update-initramfs -u -k $(uname -r)
to update the initramfs for the currently running kernel. or -k all
for all installed kernels).
Modules listed in /etc/modules
are loaded automatically regardless of whether udev
or anything else detects that they are needed.
This is also useful if you need or want to force a specific order for modules to be loaded, so that module foo
will always be loaded before module bar
(unless, of course, an earlier loaded module depends on bar
).
As with any modules loaded by modprobe
, you can set load time options in a file in /etc/modprobe.d/
.
e.g. I have spl
and zfs
listed in /etc/modules
, and /etc/modprobe.d/zfs.conf
contains:
# use minimum 4GB and maxmum of 8GB RAM for ZFS ARC
options zfs zfs_arc_min=4294967296 zfs_arc_max=8589934592
If you want to know what load-time options a module knows, use modinfo [module] | grep parm
. Module uas
has none.
Related videos on Youtube
Mirek Długosz
Updated on September 18, 2022Comments
-
Mirek Długosz over 1 year
Initramfs on my Debian testing system is not able automatically load necessary kernel modules for external USB 3 HDD (Seagate Backup Plus 1T) if it was already plugged in when initramfs started. If I boot into initramfs shell, plug cable out and plug it back in, then device will show up and I will be able to mount it.
I don't need this device in initramfs, but
/dev/
filesystem created by initramfs is passed to main OS, where I do need it. I have to plug cable out and in to make device usable.How do I setup initramfs to settle this device? Or how do I tell main OS to walk through hardware buses and handle all devices that udev in initramfs missed?
Additional information
After I plug device off and on, two new modules are loaded:
# lsmod Module Size Used by uas 24576 0 usb_storage 69632 1 uas
These modules are available in initramfs image:
# 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
andlsusb
output after plugging device in:# 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
output on initramfs and working system (they are pretty much the same, the only differences are instat
,iodone_cnt
,ioerr_cnt
,iorequest_cnt
andurbnum
):# 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"
It doesn't matter if I plug disk into USB 3 or USB 2 port on computer.
USB2 devices plugged in before initramfs initialization are correctly recognized and settled. I don't have any other USB 3 device to verify if it would be affected as well. However, I could try with this disk on my friend's computer (with Ubuntu 16.04) - it was settled and available in
/dev/
after boot.It doesn't matter if I generate initramfs by initramfs-tools or by dracut.
How can I ensure that
/dev/sdb*
related to this HDD is available in fully-booted system even if cable was plugged in before boot?-
Mirek Długosz almost 8 years@grochmal Yes,
/etc/udev/udev.conf
exists in initramfs, but it's as good as none. Added to question. I have also addedudevadm info
output from initramfs (after plug out and in) and booted system, although they are pretty much the same.
-
-
Mirek Długosz almost 8 yearsUnfortunately, it did not work. Neither
/dev/seagate
nor/dev/sdb*
was available in initramfs or booted system. I could findz30-seagate-disk.rules
file in/lib/udev/rules.d/
in initramfs shell, so it was configured properly. -
grochmal almost 8 years@MirosławZalewski - hmm... I bet on some small inconsistency between
uas
andudev
. I added another possible hack into the answer to get around it, not tested through. -
Mirek Długosz almost 8 yearsThanks for a tip. However, it did not help. I managed to force-load module and it shows as loaded when I do
lsmod
in initramfs. But disk still does not show in/dev/
... -
grochmal almost 8 years@MirosławZalewski - I figured out I do have a machine running kernel 4.6 (Arch not Debian though) and I do have a Seagate HDD too. I tried to replicate your problem on that setup but without success, my disk appears in
/dev
if I connect it to the machine before booting it. The only big difference on my machine is that allusb
andscsi
modules are loaded when the machine boots. As a last resort I'd try brute forcing all modules that are needed to operate a USB HDD to be loaded at boot. It is worth a try. -
Mirek Długosz almost 8 yearsAs closing comment: right now this issue is mostly settled, that is external HDD is recognized about 9 out of 10 boots. It seems that reboots have higher chance of leaving disk in unrecognized state. I am hesitant to say that this is hardware problem (for reasons that I can't elaborate in comment), but I think that I have exhausted all software means of solving this. My drive did not work in the past and it seems to work now. I am going to accept your answer as it was most helpful; however I don't consider this issue truly solved yet.
-
grochmal almost 8 years@MirosławZalewski - If that helps your spirits I, personally, consider Seagate a pretty poor hardware producer. Had more than one disk controller on their disks die on me (and I do not use massive amounts of disks).