深入理解Linux磁盘设备与分区管理
在Linux系统中,磁盘设备的管理和使用是一项基础但重要的技能。下面将详细介绍ATA/SATA与SCSI的交互、通用SCSI设备、单设备的多访问方法以及磁盘分区等方面的内容。
1. ATA/SATA与SCSI的交互
在Linux系统里,将ATA协议的命令转换到SCSI协议以及反向转换是一项关键任务。对于光驱而言,其工作类似于把一本英文书籍录入计算机,无需理解书籍内容,甚至不懂英文也能完成。然而,硬盘的任务则复杂得多,就像阅读一本德语书籍并将其翻译成英文录入计算机,需要同时理解两种语言以及书籍内容。
尽管面临这样的困难,libata库依然能够完成这项任务,使得ATA/SATA接口和设备可以连接到SCSI子系统。通常涉及的驱动程序不止图中所示的SATA主机驱动,但为了简化,其他驱动未展示。
2. 通用SCSI设备
当用户空间的进程与SCSI子系统进行通信时,通常会通过块设备层和/或位于SCSI设备类驱动(如sd或sr)之上的其他内核服务来实现。也就是说,大多数用户进程无需了解SCSI设备及其命令。
不过,用户进程可以绕过设备类驱动,通过通用设备直接向设备发送SCSI协议命令。例如,使用 lsscsi -g 命令可以显示通用设备:
$ lsscsi -g
[0:0:0:0] disk ATA WDC WD3200AAJS-2 01.0 /dev/sda 1/dev/sg0
[1:0:0:0] cd/dvd Slimtype DVD A DS8A5
超级会员免费看
订阅专栏 解锁全文
68

被折叠的 条评论
为什么被折叠?



