硬盘分区和Linux文件系统

硬盘分区(硬盘的规范,跟操作系统无关):
  • 一个硬盘只能有4个主分区(分区信息存放在硬盘的启动扇区里面,因为启动扇区还要存很多其他信息,用于存分区表的空间就只够存储4个主分区的信息了)
  • 扩展分区:可以把某一个主分区拿出来,作为扩展分区
    • 最多只能有一个
    • 不能用来存数据,只能用来包含逻辑分区
    • 逻辑分区:最多可以有23个(盘符:D~Z)
Linux的分区:
  • Linux分区之后,会自动给每个分区起一个设备文件名,如:/dev/sda1(表示第a个sata硬盘的第1个分区,逻辑分区的第1个一定从5开始,1~4保留给主分区使用)
  • 每一个分区挂载到一个文件目录(挂载点,mount point)下,比如:/dev/sda1 -> /boot ,/dev/sda2 -> /home,/dev/sda3 -> /
  • 必须的分区:
    • /(根分区,Linux的最高一级目录)
    • swap分区(相当于虚拟内存,建议跟内存一样大小,虚拟机建议2G)
  • 推荐的分区:
    • /boot(启动分区,如果没有这个分区的话,启动文件会放在根分区中,比较混乱而且容易被误删除,建议分200M)

文件系统:
  • win:FAT16(<=2G)、FAT32(<=16T,单文件<=4G)、NTFS
  • Linux:EXT2、EXT3、EXT4(CentOS7默认的文件系统)、XFS、等

格式化:用于在磁盘中创建一个文件系统
  • 创建等大小的数据块(sector:512字节;block,常见的是4k,即8个sector。为了提高效率,操作系统读取硬盘每次读取一个block,而不是sector)
  • 创建文件索引表,用于存放:文件id/iNode(即索引节点,包括创建者、修改时间、权限、文件内容块的位置等信息)
注:查看某个文件的inode信息:> stat example.txt
注:查看每个硬盘分区的inode总数和已经使用的数量:> df -i
注:Linux使用inode号码来识别文件,查看某个文件的inode号码:> ls -i example.txt
注:每个文件都必须有一个inode,所以有可能发生inode已经用光而硬盘还未存满的情况

Linux的硬链接和软链接:
Linux使用inode号码来识别文件,文件名只是一个可读性的符合而已。
硬链接(hard link):
  • 两个文件名指向同一个inode
  • inode中有一个“链接数”标记有多少个文件名指向它
  • 当删除一个文件名时,“链接数”减一,另外一个文件名还可以访问inode;减到0的时候就释放和回收inode以及相关的block区域
  • 每一个目录下面的“.”和“..”就是硬链接,一个指向本目录文件的inode(目录也是一个文件),另外一个指向父目录文件的inode
  • 创建硬链接的命令:ln 源文件 目标文件
软链接(soft link或symbolic link):
  • 两个文件名指向不同的inode,文件A的内容是文件B的路径,访问A时系统会自动导向B
  • 文件A依赖B而存在,如果删除了B,打开A时会报错“No such file or directory”
  • 创建软链接的命令:ln -s 源文件或目录 目标文件或目录

inode的特殊作用:
  • 对于某些包含了特殊字符而无法删除的文件,可以删除inode节点,就能起到删除文件的作用
  • 移动或重命名文件,不影响inode号码
  • 软件更新时,新版文件以同样的文件名生成一个inode,不会影响运行中的文件;等到下次再运行这个文件的时候,文件名就指向新版文件了,旧版文件的inode则被回收

Linux硬件和设备文件名的对应关系:
硬盘分区和Linux文件系统_第1张图片

你可能感兴趣的:(linux,操作系统,文件系统,硬盘分区)