1,主分区与扩展分区最多可以有4个(硬盘的限制,因为分区表只有64位);
扩展分区最多只能有一个(操作系统的限制);
逻辑分区是由扩展分区持续分出来的分区;
能够被格式化后作为数据访问的分区为主要分区与逻辑分区,扩展分区无法格式化;
逻辑分区的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个逻辑分区(5号到63号),SATA硬盘则有11逻辑分区(5号到15号)
2,通常文件系统会将这两部分的数据分别存放在不同的块,权限与属性放置在inode中,实际数据会放置到data block中。另外,还有一个超级块(superblock)会记录整个文件系统的整体信息,包括inode与block的总量、使用量、剩余量等。inode里面还会记录数据所在的block号码。
3,文件系统一开始就将inode与block规划好了,除非重新格式化,否则inode与block固定后就不再变动。每个inode的大小是16字节。
4,原则上,block的大小与数量在格式化完就不能够再改变了(除非重新格式化),每个block内最多只能放置一个文件的数据。若文件小于block,则该block的剩余空间就不能再被使用了,这样一来就会造成磁盘空间的浪费。
5,Superblock(超级块)记录的信息有:block与inode的总量;未使用与已使用的inode/block数量等,这个模块是非常重要的,因为我们这个文件系统的基本信息都写在这里。superblock的信息可以使用dumpe2fs这个命令来查询。
dumpe2fs [-h] 设备文件名,其中-h的含义是仅列出superblock的数据,不会列出其他的区段内容。
6,在Linux中,新建一个目录时,ext2会分配一个inode与至少一块block给该目录。其中,inode记录该目录的相关权限与属性,并记录分配到的那块block号码。而block则记录在这个目录下的文件名与该文件占用的inode号码数据。可以使用命令ls -i查看目录内的文件所占用的inode号码。ls -id 目录,使用这个命令就可以查看目录的inode号码
7,磁盘与目录的容量
- df
列出文件系统的整体磁盘使用量
df [-ih] 目录或文件名
-h 以人们比较容易阅读的GB、MB、KB等格式自行显示。
-i 不用硬盘容量,而以inode的数量来显示 - du
du [-asm] 文件或目录名称
-a 列出所有的文件与目录容量,因为默认仅统计目录的容量而已。
-s 列出总量而以,统计目录占用容量;
-m 以MB列出容量
8,硬链接不能跨文件系统;也不能连接到目录。前面的还好理解,为什么不能硬链接目录呢?这是因为如果使用硬链接到目录时,连接的数据需要连同被连接目录下面的所有数据都建立连接,这样是非常复杂的,暂时不支持。
软连接的语法和硬链接差不多,在前面的博客中已经做了介绍。软连接是会增加inode和block的,但是block里面存的是连接文件的文件名,原本会根据这个文件名找到真的inode,但是如果源文件被删除的话,那么这个软连接也就没有用了。但是即便如此,软连接的使用也比硬链接广泛。因为硬链接的限制太多了。
9,磁盘的分区、格式化、检验、挂载 - 磁盘分区
fdisk [-1] 设备名称
-1:输出后面接的设备所有的分区内容。若仅有fdisk -1时,系统会把系统内能够找到的设备的分区列出来。
执行完这个命令后,就会进入fdisk这个程序的工作界面。接下来按下m就会看到下面这些命令的介绍,其中dnpqw比较重要。
需要注意的是使用的**“设备文件名”请不要加上数字,因为分区是针对“整个硬盘设备”而不是某个分区。** - 磁盘格式化
mkfs [-t 文件系统格式] 设备文件名
-t:可以接文件系统格式,列如ext2,ext3等
需要注意的是这是一个综合命令,它会去调用系统的格式化命令 - 磁盘检验
fsck [-Cf] 设备名称
-C:可以在检验的过程当中使用一个直方图来显示目前的进度
-f:强制检查,一般来说,如果fsck没有发现任何unclean的标志,不会主动进入细化检查的,如果你想要强制fsck进入细化检查,就得加上-f标注。不加-f检查的速度非常快。加上之后的检查速度就很慢了。
由于执行fsck时,被检查的分区务必不可挂载到系统上!即是需要在卸载的状态。 - 挂载
在挂载之前,需要先确定几件事。
单一文件系统不应该被重复挂载在不同的挂载点;
单一目录不应该重复挂载多个文件系统;
作为挂载点的目录理论上应该都是空目录才是。
mount 设备文件名 挂载点;参数可用man mount查看
mount -1可以查看目前已经挂载的文件系统
umount 设备文件名 就可以把设备卸载
10,设置开机挂载
如果想要设置开机挂载,就要先弄懂/etc/fstab文件的内容。因为这个文件就是和开机挂载相关的。其实这个文件就是挂载时,将所有的参数写入到这个文件中就可以了,这个文件有6列。每列都很重要,P234
第一列:磁盘设备文件名或该设备的label
第二列:挂载点
第三列:磁盘分区的文件系统
第四列:文件系统参数
第五列:能否被dump备份命令作用。0代表不备份;1代表要每天进行备份
第六列:是否以fsck检验扇区。0不需要,1和2需要。根目录需要检验设置成1,其他的目录需要检验的话设置成2.
需要注意的是,实际文件系统的挂载时记录在/etc/mtab与/proc/mounts这两个文件当中,每次我们在改动文件系统的挂载时,也会同时更动这两个文件。
11,boot sector 总在super block的前面各占1KB,如果block的大小是1K,那么boot sector和super block各占一个block。而如果block的大小大于1KB(2KB,4KB),那么这两块在一个block中。