标签: scsi

防止 USB 外部硬盘驱动器休眠

有谁知道是否有一种优雅的方法可以告诉外部 USB 驱动器在一段时间不活动后不要减速?我见过基于 cron 的解决方案每分钟写入一个文件,但没有任何东西散发出unixey 优雅的气息。必须有一个 hdparm 或 scsi 命令,我可以向驱动器发出(通过 OpenBSD 中的 sd 驱动程序访问 USB 驱动器)来告诉它不要休眠。恐怕这可能是机箱控制器内置的一个功能,因此除了将驱动器从机箱中取出并直接放入机器之外,没有太多可以改变它,但我想我会问,在关闭的机会。

理想情况下,我正在寻找 OpenBSD 解决方案,但我知道还有其他解决方案存在同样的问题,因此将考虑任何解决方案作为答案。

drivers openbsd scsi hard-disk block-device

16
推荐指数
5
解决办法
4万
查看次数

为什么 Linux 对非 SCSI 设备使用 SCSI 驱动程序?

看看块设备命令喜欢什么lsblkblkid返回什么,似乎linux HDD支持SCSI驱动程序而不管设备的类型,就像一个USB闪存驱动程序,在lsblk命令中显示如下:

...
    sdb               8:16   1    30G  0 disk 
    ??sdb1            8:17   1    30G  0 part /run/media/user/HP v224w
...
Run Code Online (Sandbox Code Playgroud)

为什么 sdb 和 sda 驱动程序被称为 SCSI 驱动程序?这个术语有什么关系Small Computer System Interface

linux scsi usb-drive block-device

14
推荐指数
1
解决办法
2477
查看次数

为什么我的 SATA 设备显示在 /proc/scsi/scsi 下?

我的系统上有 3 个 SATA 设备。它们显示在 下/proc/scsi/scsi,尽管它们不是 SCSI 设备。为什么我的 SATA 设备显示在 SCSI 目录下?

$ cat /proc/scsi/scsi 
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: WDC WD2500AAJS-6 Rev: 01.0
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: TSSTcorp Model: CDDVDW TS-H653Z  Rev: 4303
  Type:   CD-ROM                           ANSI  SCSI revision: 05
Host: scsi4 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: ST3320620AS      Rev: 3.AA
  Type:   Direct-Access                    ANSI  SCSI revision: …
Run Code Online (Sandbox Code Playgroud)

linux sata scsi devices

12
推荐指数
1
解决办法
6793
查看次数

mptscsih: ioc0: task abort: SUCCESS (rv=2002) 导致 30 秒冻结

我的软件 RAID6 的 I/O 经常冻结大约 30 秒,之后一切都恢复正常。

冻结结束后,将其放入系统日志:

Mar 14 18:43:57 server kernel: [35649.816060] sd 5:0:23:0: [sdy] CDB: Read(10): 28 00 6c 52 68 58 00 04 00 00
Mar 14 18:43:58 server kernel: [35651.149020] mptbase: ioc0: LogInfo(0x31140000): Originator={PL}, Code={IO Executed}, SubCode(0x0000) cb_idx mptscsih_io_done
Mar 14 18:43:58 server kernel: [35651.151962] mptscsih: ioc0: task abort: SUCCESS (rv=2002) (sc=ffff8807b02dfe80)
Mar 14 18:43:58 server kernel: [35651.151967] mptscsih: ioc0: attempting task abort! (sc=ffff88002a7f30c0)
Mar 14 18:43:58 server kernel: [35651.151972] sd 5:0:23:0: [sdy] CDB: Read(10): …
Run Code Online (Sandbox Code Playgroud)

drivers scsi timeout linux-kernel

12
推荐指数
2
解决办法
3万
查看次数

如何将原始数据写入 USB 设备

我正在尝试将原始数据写入连接到我的计算机的 USB 设备。我正在使用 Kali Linux,我找到了正确的文件路径: "/dev/usb/003/013" 。但是,当我尝试向其中写入数据时,出现错误。

root@kali:~/usb# printf "test" > /dev/bus/usb/003/013
bash: printf: write error: Invalid argument
Run Code Online (Sandbox Code Playgroud)

我也试过用猫:

root@kali:~/usb# cat test > /dev/bus/usb/003/013 
cat: write error: Invalid argument
Run Code Online (Sandbox Code Playgroud)

在前一种情况下,文件“test”确实存在并且其中包含数据。似乎系统无法写入文件描述符,即使它在那里。

经过研究,我得出的结论是,您要么:

A. 需要一个可以与设备连接的 USB 驱动程序。

B. 使用 SCSI Pass Through 将数据直接写入设备上的端点。

我是 USB 编程的新手,虽然我很想尝试,但我以前从未编写过驱动程序。任何建议或帮助将不胜感激。

是否可以像我最初尝试的那样将原始数据写入设备?如果没有,你能解释一些可供我使用的选项吗?

drivers usb scsi kali-linux

11
推荐指数
1
解决办法
2万
查看次数

从 SCSI 磁带读取时“无法分配内存”

我正在试验一些旧的 SCSI 磁带驱动器,我已经成功地将一些数据写入磁带,但我正在努力尝试再次读取它。

# tar tvf /dev/st0
tar: /dev/st0: Cannot read: Cannot allocate memory
tar: At beginning of tape, quitting now
tar: Error is not recoverable: exiting now

# dd if=/dev/st0 of=test
dd: error reading '/dev/st0': Cannot allocate memory
0+0 records in
0+0 records out
0 bytes copied, 3.20155 s, 0.0 kB/s
Run Code Online (Sandbox Code Playgroud)

在这些命令之后,dmesg说:

st 10:0:3:0: [st0] Block limits 1 - 16777215 bytes.
st 10:0:3:0: [st0] Failed to read 65536 byte block with 512 byte transfer.
st 10:0:3:0: [st0] …
Run Code Online (Sandbox Code Playgroud)

tar dd scsi tape

11
推荐指数
1
解决办法
4605
查看次数

如何在不重新启动的情况下检测连接的新硬盘?

我有一个小问题。我有一个在 RHEL 6.7 (VM) 上运行的实时系统,并且有 VMware 6.5(不是由我们组管理的)。问题是,另一组试图扩展 VM 上现有磁盘的容量。之后,我像往常一样运行了一个扫描命令来检测新磁盘echo "- - -" > /sys/class/scsi_host/host0/scan,但什么也没发生。他们在 sdb 磁盘上添加了 40G,应该是 100G,我看到它在 VM 上发生了变化,但在 Linux 中没有发生变化。那么问题出在哪里呢?正如我所说,这是一个实时系统,所以我不想重新启动它。

这是系统:

# df -h /dev/mapper/itsmvg-bmclv
                       59G   47G  9.1G  84% /opt/bmc

# lsblk sdb                          8:16   0   60G  0 disk  ??itsmvg-bmclv (dm-2)      253:2    0   60G  0 lvm  /opt/bmc

# vgs   VG       #PV #LV #SN Attr   VSize  VFree    itsmvg     1   1   0 wz--n- 59.94g     0 

# pwd   /sys/class/scsi_host

# ll lrwxrwxrwx 1 root root 0 Nov 13 16:18 host0 …
Run Code Online (Sandbox Code Playgroud)

linux rhel vmware scsi disk

11
推荐指数
3
解决办法
8万
查看次数

在 Linux 下查找 scsi 设备 ID?

如何在 Linux 下列出 scsi 设备 ID?

linux scsi

9
推荐指数
3
解决办法
8万
查看次数

“echo 1 > /sys/block/sdX/device/delete” 在除预定列表之外的所有磁盘上

我有一个需要删除的 scsi 磁盘列表。该列表最多被认为是随机的,并且会不时更改。我想删除除我创建的预定义列表之外的所有内容。现在让我们假设我只想保留:

/dev/sda
/dev/sdb
Run Code Online (Sandbox Code Playgroud)

我需要执行的命令是:

"echo 1 > /sys/block/sdX/device/delete"
Run Code Online (Sandbox Code Playgroud)

其中 X 是要移除的设备。

我不擅长 bash 脚本,所以我真的不知道从哪里开始。

回顾一下,这样我就不会因为不清楚而被 DV。

除了预定的列表之外,我需要为系统上的每个 sdX 设备“echo 1 > /sys/block/sdX/device/delete”。

编辑:在下面的答案之后,这就是我决定使用的。“LocalDisks.txt”应该包含像“/dev/sda”这样的行

#!/bin/bash
exclude=$(cut -d/ -f3 LocalDisks.txt)

for sysfile in /sys/block/sd* ; do

dev=$(basename $sysfile)
del=$sysfile/device/delete

if [[ $exclude == *$dev* ]] ; then
    echo "Device $dev excluded"

elif [ ! -w $del ] ; then
    echo "$del does not exist or is not writable"

else
    echo 1 > $del
fi

done
Run Code Online (Sandbox Code Playgroud)

shell-script scsi hard-disk

8
推荐指数
1
解决办法
2万
查看次数

如何分辨哪个磁盘是sda,哪个是sdb磁盘?

从 df -k 命令中,我看到了 sda、sdb、sdc 磁盘。他们有一些分区(例如,sda 有 sda1、sda3)。我想暂时分离 sdb 和 sdc 以进行操作系统升级。我如何确切地知道哪个磁盘是哪个?(实际上我知道 sdc 是我最近连接的磁盘,但是我如何从 SCSI 连接中告诉 sda、sdb、sdc?我记得 SCSI 连接器没有任何顺序..)

ckim@stph45:/boot/grub] cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: Samsung SSD 850  Rev: EXM0
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: ST2000DM001-1CH1 Rev: CC27
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: HL-DT-ST Model: BD-RE  BH16NS40  Rev: …
Run Code Online (Sandbox Code Playgroud)

mount scsi hard-disk

7
推荐指数
1
解决办法
1万
查看次数