鸟哥私房菜第8章——Linux磁盘与文件系统管理

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中。

猜你喜欢

转载自blog.csdn.net/xiaoan08133192/article/details/114880071