Linux文件设备
要理解Linux,首先要理解Linux文件结构
在Linux操作系统中,几乎所有的设备都位于/dev目录中
名称 | 作用 | 位置 |
---|---|---|
SATA接口 | 电脑硬盘接口 | /dev/sd[a-p] |
U盘 | 可移动设备 | /dev/sd[a-p] |
Virtio接口 | 提供虚拟化 | /dev/vd[a-p] |
软盘驱动器 | 软驱,逐渐淘汰 | /dev/fd[0-7] |
打印机 | 提供打印能力 | /dev/lp[0-2] (25针打印机) /dev/usb/lp[0-15] (USB接口) |
鼠标 | 连接鼠标 | /dev/input/mouse[0-15] /dev/psaux /dev/mouse |
CD-ROM DVD-ROM | /dev/scd[0-1] /dev/sr[0-1] /dev/cdrom | |
磁带机 | /dev/ht0 /dev/st0 /dev/tape |
由于SATA,USB,SAS都是以SCSI模块进行驱动的,所以这些接口的磁盘设备文件名都是/dev/sd[a-p]的格式
MBR和GPT
MBR(Master Boot Record):
使用MBR的方式来处理引导程序和分区表,而处理引导程序的记录区(目的是加载内核文件)和分区表则在磁盘的第一个扇区,这个扇区具有
512字节的大小,其中分区表有64字节,所以最多仅能有四组记录区(每组分组表仅有16字节),记录区记录了该区段的启动和结束的柱面号码。而这四组记录区被称为主要区或者拓展区。
我们也可以利用额外的扇区记录更多的分区,类似Windows系列的划分硬盘分区至5个及以上。
由扩展分区扩展出来的分区叫做逻辑分区,位于操作系统中的位置是:/dev/sda[5+]
如果扩展分区被破坏,那么整个逻辑分区将被删除,因为逻辑分区的信息都记录在扩展分区里面。
并且考虑到磁盘的连续性,一般将扩展分区的柱面号码分配到最后的柱面内。
-
主要分区与扩展分区最多可以有4个
-
扩展分区最多只能有1个
-
逻辑分区由扩展分区持续划分出来的分区
-
能够被格式化后作为数据存取的分区是主要分区和逻辑分区,扩展分区无法格式化。
-
逻辑分区的数量依据操作系统而不同,在Linux中的SATA硬盘已经可以突破了63个以上的分区限制。
同样由于MBR使用的扇区磁盘小,导致它的容量,能够存储信息就小,随着硬件设备的逐渐发展,暴露出的弊病也就越来越明显:
-
操作系统无法使用2.2TB以上的磁盘容量(每一个)
-
MBR仅有一个区块,如果被破坏后很难恢复(牵一发而动全身)
GPT(GUID Partion table)
GPT使用逻辑区块地址(Logical basic address)来处理4K的扇区,这是MBR解决不了的。同时GPT的第一个逻辑分区LBA0为MBR兼容模块。在这个模块中存放了启动引导程序与一个特殊标识符,这个标识符用来保护磁盘。
而LBA1则是GPT表头记录,记录了分区表本身的位置和大小,同时记录了备份用的GPT分区放置的位置。
而LBA2-LBA33区块是用来记录分区信息的,每个LBA能够由4组分区记录,因为每个LBA有512个字节,所以每组记录用到了128字节。
由于GPT在每组记录中使用了64位来记录开始/结束的扇区号码,所以单一分区的最大容量为2^64*512字节==8ZB
硬盘的规划,是熟练掌握Linux的第一步,因为Linux以文件目录作为首要管理方式的。
所以一般刚开始学习Linux的时候,我们需要了解Linux的分区方式
最简单的分区方式:
仅仅划分出根目录/和交换分区Swap,具有MBR一样的缺点,牵一发而动全身,只要有一个小心接坏掉,那么整个根目录就会损毁
麻烦一点的分区方式:
通过分析主机的用途来进行划分:
一些比较大的且读写频繁的目录:
-
/boot
-
/
-
/home
-
/var
-
swap