linux 磁盘分区,文件系统

linux学习记录

Posted by CHuiL on August 14, 2019

磁盘

磁盘分区的最小单位现在是扇区。磁盘分区后需要根据操作系统对分区进行“格式化”,以便不同操作系统能够利用的各自的文件系统格式。 传统的磁盘分区于文件系统,是一个分区能够被格式化为一个文件系统,但是现在的技术能够使得一个分区能够格式化为多个文件系统(LVM),也能将多个分区合成为一和文件系统。所以现在的格式化已经不是针对一个分区来说的了,通常称呼一个可被挂载的数据为一个文件系统而不是发分区。

硬盘分区与文件系统

硬盘为磁盘的一种。在安装操作系统之前一般都需要对硬盘进行分区。我们都知道硬盘分区包括主分区、扩展分区、逻辑分区三种类型,之所以会有这样的区分,是因为在硬盘的主引导扇区中用来存放分区信息的空间只有64个字节(主引导扇区一共只有512字节空间),而每一个分区的信息都要占用16字节空间,因而理论上一块磁盘最多只能拥有4个分区,当然这4个分区都是主分区。这在计算机早期是没什么问题的,但后来随着硬盘空间越来越大,4个分区就远远不够了,所以才又引入了扩展分区的概念。扩展分区也是主分区,但是在扩展分区中可以再创建新的分区,这些分区就被称为逻辑分区,逻辑分区的数量就不再受主引导扇区空间大小的限制了,像IDE磁盘最多可以创建60个逻辑分区。

在Windows系统中,不同的盘就是不同的硬盘分区了,而C盘是主分区,其他的位扩展分区,然后在扩展分区中建立逻辑分区(EDF盘这些)。

Linux也类似,可以将硬盘进行分区,并在各个分区上安装文件系统。在Linux中,不同的分区对应不同的设备文件,存放在/dev目录下。

Linux中还有一个特殊的分区成为SWAP分区,即交换分区,通常大小为物理内存的两倍,用于在内存不足时进行对换,相当于虚拟内存。

在Windows系统中,为每个分区分配一个盘符,在资源管理器中通过盘符就可以访问相应的分区。每个分区使用独立的文件系统,在每一个盘符中都会有一个根目录。

在Linux系统中,将所有的目录和文件数据组织为一个树型的目录结构,整个系统中只存在一个根目录,所有的分区、目录、文件都在同一个根目录下面。而一个硬盘分区只有挂载到某个目录中才能被访问,这个指定的目录就被称为挂载点。例如将分区/dev/sda1挂载到/下,那么通过访问/就可以访问到该分区了,这个分区也就称为根分区。

Linux系统中所有子目录都可以创建为独立的硬盘分区,没有进行独立分区的子目录则都会保存在根分区中。

Linux系统中查看硬盘,分区和文件系统

使用sudo fdisk -l命令来查看分区。 在Linux下对 SCSI 和 SATA 设备是以 sd 命名的,第一个 scsi 设备是 sda,第二个是 sdb,依此类推。 这里可以看到有三个设备。可以看到sda分好了三个区,sdb和sdc都只分了一个区。 image

使用df -h命令来查看磁盘分区的使用情况和挂载目录。可以看到挂载/目录的为sda2。 image

也可以使用命令lsblk来查看磁盘大小,磁盘各分区的大小以及挂载的目录 image

使用sudo file -s /dev/sdX* (X为对应abc..)来查看分区对应的文件系统。Boot Sector即硬盘的引导扇区;sda3为交换分区,其他的都为ext4文件系统。 image

参考

Linux磁盘分区、文件系统和目录结构
磁盘、分区及Linux文件系统