deviceLinux探索之路:探究块设备的神秘面纱(linuxblock)
把一部计算机,电视或者游戏机分解成其中的基本组件,比如CPU,RAM,显卡等,多数时候会忽视其中的一个重要组件:块设备,它可能是磁盘驱动器,光盘或者SD存储卡,甚至是尚未发展到实际产品的新型存储设备,这些都包含在计算机的“块设备”范畴之下。Linux提供了大量的特性来支持块设备。
Linux系统支持块设备,需要利用其内核接口和应用层接口,把块设备从“黑箱子”中解放出来。内核在启动过程中会首先尝试激活所有块设备,可以使用“lsblk”列出所有已激活的块设备,例如:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsdb 8:16 0 250G 0 disk
├─sdb1 8:17 0 99G 0 part /└─sdb2 8:18 0 40.9G 0 part /var/lib/mysql
sr0 11:0 1 1024M 0 rom
虽然上面的命令仅仅只列出了块设备的大众部分,但它只是冰山一角,为了让块设备可以得到更全面的控制,可以使用“fdisk”命令来显示更详细的硬盘信息,例如:
$ fdisk -l
Disk /dev/sdb: 250.0 GB, 250000000000 bytes255 heads, 63 sectors/track, 30401 cylinders, total 488395060 sectors
Units = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xa783f923
Device Boot Start End Blocks Id System/dev/sdb1 * 2048 102195983 51047468 83 Linux
/dev/sdb2 102196830 488395199 193103685 5 Extended/dev/sdb5 102196992 245995903 71899456 83 Linux
/dev/sdb6 246003968 488395199 121195116 83 Linux
通过上面的指令来查看详细的分区信息,“fdisk”指令也能用于更改分区大小,改变引导设置,重新格式化等等功能。此外,Linux还提供一些特定的命令和工具来更好地操作块设备,典型的如“dd”、“ddrescue”、“nmap”以及启动硬盘的“hdparam”等,它们的目的在于创建,对抗,复制,探测或恢复失败的磁盘。
总结而言,Linux可以通过内核接口和应用层接口来支持块设备,并且可以使用特定的命令和工具来让操作变得更加容易和高效。可以说,Linux让令人兴奋的块设备之旅变成了可中途可以探索的神秘面纱。