我有时需要将磁盘插入磁盘托架。在其他时候,我有一个非常奇怪的设置,即使用笔记本电脑上的 SATA-eSATA 电缆连接 SSD,同时从台式机上取电。
如何安全地从系统中移除 SATA 磁盘?这个Phoronix论坛帖子有一些建议:
justsumdood 写道:
An(noymous)droid 写道:
那么在拔掉插头之前你在软件方面做了什么?它是一个简单的“umount /dev/sd”[驱动器号]吗?卸载设备后,要“关闭”(或休眠)设备:Run Code Online (Sandbox Code Playgroud)hdparm -Y /dev/sdX(其中 X 代表您要关闭的设备。例如:/dev/sdb)
这将使驱动器断电,以便在没有电压浪涌风险的情况下将其移除。
这是否意味着磁盘缓存会在此后正确刷新并关闭电源?
来自同一线程的另一个建议:
chithanh 写道:
所有 SATA 和 eSATA 硬件都可以在物理上进行热插拔(即如果插入/拔出插头不会损坏)。芯片组和驱动程序如何处理这是另一个问题。某些驱动程序/芯片组组合不能正确处理热插拔,需要一个热插拔命令,例如以下命令:
Run Code Online (Sandbox Code Playgroud)echo 0 - 0 > /sys/class/scsi_host/hostX/scan将 X 替换为适合您的 SATA/eSATA 端口的编号。
我怀疑这样做是否正确,但我也找不到一些证据来反对它。
那么,从系统中删除附加磁盘的正确方法是什么?假设我已经卸载了磁盘上的每个分区并运行了sync. 如果可能,请指向一些官方文档,我在 Linux 文档树或Linux ATA wiki 中找不到任何内容。
内核中有很多常量以HORKAGE,
ATA_HORKAGE_ZERO_AFTER_TRIMATA_HORKAGE_NODMAATA_HORKAGE_ATAPI_MOD16_DMAATA_HORKAGE_NO_DMA_LOGATA_HORKAGE_NO_ID_DEV_LOATA_HORKAGE_NO_LOG_DIRATA_HORKAGE_WD_BROKEN_LPM然而,这些并没有真正记录在案
根据 libata.force 强制 horkage 并抱怨它。为了与链路选择保持一致,15 号设备选择连接到主机链路的第一个设备。
"horkage" 是什么意思?
我今天早上醒来收到一封通知电子邮件,其中包含一些令人不安的系统日志条目。
Dec 2 04:27:01 yeono kernel: [459438.816058] ata2.00: exception Emask 0x0 SAct 0xf SErr 0x0 action 0x6 frozen
Dec 2 04:27:01 yeono kernel: [459438.816071] ata2.00: failed command: WRITE FPDMA QUEUED
Dec 2 04:27:01 yeono kernel: [459438.816085] ata2.00: cmd 61/08:00:70:0d:ca/00:00:08:00:00/40 tag 0 ncq 4096 out
Dec 2 04:27:01 yeono kernel: [459438.816088] res 40/00:00:00:4f:c2/00:00:00:00:00/40 Emask 0x4 (timeout)
Dec 2 04:27:01 yeono kernel: [459438.816095] ata2.00: status: { DRDY }
(the above five lines were repeated a few times at a short interval)
Dec …Run Code Online (Sandbox Code Playgroud) 我在 VHDL 中实现了我自己的串行 ATA 主机总线适配器 (HBA) 并将其编程到 FPGA 上。FPGA是可以用任何数字电路编程的芯片。它还配备了串行收发器,可为 SATA 或 PCIe 生成高速信号。
此 SATA 控制器支持 SATA 6 Gb/s 线速,并使用 ATA-8 DMA-IN/OUT 命令以高达 32 MiB 的数据块与设备传输数据。该设计已被证明可以以最大速度运行(例如三星 SSD 840 Pro -> 超过 550 MiB/s)。
在对几个 SSD 和 HDD 设备进行了一些测试之后,我购买了一个新的希捷 6 TB Archive HDD ( ST6000AS0002 )。这款硬盘的读取性能高达 190 MiB/s,但写入性能只有 30 到 40 MiB/s!
所以我深入挖掘并测量了传输的帧(是的,FPGA 设计可以实现)。据我所知,希捷硬盘已准备好一次性接收传输的前 32 MiB。此传输以 580 MiB/s 的最大线路速度进行。之后,硬盘将剩余字节停止超过800 毫秒!然后 HDD 准备好接收下一个 32 MiB 并再次停止 800 毫秒。总而言之,1 GiB 传输需要超过 30 秒,相当于大约 35 MiB/s。
我假设这个 HDD 有一个 32 MiB …
我的 Ubuntu 13.10 系统在过去一天左右的时间里表现非常糟糕。查看内核日志,似乎小于 1 年的 3TB SATA 磁盘的特定扇区存在问题:
Nov 4 20:54:04 mediaserver kernel: [10893.039180] ata4.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
Nov 4 20:54:04 mediaserver kernel: [10893.039187] ata4.01: BMDMA stat 0x65
Nov 4 20:54:04 mediaserver kernel: [10893.039193] ata4.01: failed command: READ DMA EXT
Nov 4 20:54:04 mediaserver kernel: [10893.039202] ata4.01: cmd 25/00:08:f8:3f:83/00:00:af:00:00/f0 tag 0 dma 4096 in
Nov 4 20:54:04 mediaserver kernel: [10893.039202] res 51/40:00:f8:3f:83/40:00:af:00:00/10 Emask 0x9 (media error)
Nov 4 20:54:04 mediaserver kernel: [10893.039207] ata4.01: …Run Code Online (Sandbox Code Playgroud) 假设我们有两个磁盘,一个是主 SATA,一个是主 ATA。它们将如何出现在 /dev 中?
我的系统上有 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) 考虑以下kern.log片段:
ata4.00: failed command: WRITE FPDMA QUEUED
ata4.00: cmd 61/00:78:40:1e:6c/04:00:f0:00:00/40 tag 15 ncq 524288 out
res 41/04:00:00:00:00/04:00:00:00:00/00 Emask 0x1 (device error)
ata4.00: status: { DRDY ERR }
ata4.00: error: { ABRT }
ata4: hard resetting link
ata4: nv: skipping hardreset on occupied port
ata4: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata4.00: configured for UDMA/133
ata4: EH complete
Run Code Online (Sandbox Code Playgroud)
我如何识别内核在谈论时实际表示的硬盘驱动器ata4.00?
如何找到对应的/dev/sdY设备名称?
我在我的计算机中添加了一个带有 2 个 USB3 端口和 2 个 sata3 端口的 PCI Express 控制卡。(http://www.ldlc.be/fiche/PB00121886.html)。
USB 端口工作正常,但插入 sata 端口的 HDD 未出现在设备中。
我运行了 lshw,这里是关于 pci 卡的结果:
*-pci:1
description: PCI bridge
product: PEX 8604 4-lane, 4-Port PCI Express Gen 2 (5.0 GT/s) Switch
vendor: PLX Technology, Inc.
physical id: 5
bus info: pci@0000:05:05.0
version: ba
width: 32 bits
clock: 33MHz
capabilities: pci pm msi pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:46 ioport:7000(size=8192) memory:d6100000-d61fffff
*-ide UNCLAIMED
description: IDE interface
physical id: 0
bus …Run Code Online (Sandbox Code Playgroud)