Linux的磁盘和文件系统

Linux的磁盘和文件系统

磁盘的组成

  • 盘片:用来记录数据。

  • 机械手臂与磁头:磁头分为上下两个部分,是在盘片正反两面。

  • 主轴马达 :转动盘片,让机械手臂和磁头读写数据。

    盘片的组成:

    1. 扇区(sector):最小的物理存储单位,大小为512byte。
    2. 柱面(Cyclinder):扇区组成的圆,是分区的最小单位,大小为扇区的整数倍。

    其中每个分区的第一个扇区(0号扇区),记录了446byte的主引导记录(Master Boot Record,MBR),还有64字节的分区表(Partion Table, PT)。

    分区表又分为4个分区记录,每个分区记录大小为16byte。也就是说这里只能记录四个分区信息。

    这是不是意味着我们只能划分为4个分区呢?

    有过分区经验的小伙伴可能会知道,我们可以分出大于四个的分区,那这是怎么做到的呢?其实这是因为,我们可以将分区信息表中所记录的的某一分区当做一个扩展分区,然后在扩展分区的第一个扇区再记录其他的分区信息。

    也就说我们现在可以把磁盘分成这样
    主分区1 + 主分区2 +主分区3 + 主分区4
    也可以分成这样(下图所示):
    主分区1 + 主分区2 + 主分区3 + 扩展分区 扩展分区 = 逻辑分区5 +逻辑分区6 +逻辑分区…

Linux的磁盘和文件系统_第1张图片

不同接口的磁盘在linu中的文件名,就是你用df命令查看时的磁盘文件名,后面的数字代表分区的标号:

  • dev/sd[a-p][1-15]:是SCSI, SATA, USB, FLASH等接口的磁盘文件名
  • dev/hd[a-63]:是IDE硬盘的文件名。

    linux的分区

    和windows自带的磁盘分区工具类似,但是linux中有着功能更强大的分区工具fdisk

    fdisk 磁盘名称
    
    
    #这里的磁盘名称指的是整块磁盘的名称。
    
    
    #比如说用df是可以查看 '磁盘名称'
    
    
    #进去以后会有详细的参数说明
    

    磁盘格式化

    将磁盘分区以后我们就得到了逻辑上分割的磁盘,那么现在是不是可以工作了呢?当然不是了,我们需要一个特定的文件系统来组织磁盘上的文件。

    磁盘格式化,就是讲磁盘按照你想要的文件系统,比如说一般硬盘的FAT文件系统,或者Linux系统中常见的ext2,ext3等日志文件系统。不同的文件系统有不同的工作方式,如果我们要格式化一个磁盘mkfs(make file system)是最常见的命令了。

    mkfs -t 文件系统格式 设备文件名
    
    
    #常用参数:
    
    
    #     -t :type的缩写。比如说我要将 /dev/sda1 这个分区格式化为 ext2 命令如下:
    
    
    #      mkfs ext2 /dev/sda1
    

    Linux中的挂载

    Linux 中所有设备都是通过,所以如果我们要访问磁盘,U盘等都是需要将磁盘和目录联系起来,这个过程我们称之为挂载(mount)。

    mount 要挂载的文件系统 挂载点
    
    
    #这里的挂载点就是指你要挂载的目录
    
    
    #例如你要将 /dev/sda1 挂载到 /media/CDROM 目录下,可以输入以下命令:
    
    
    #mount /dev/sda1 /media/CDROM
    
    
    
    #常用参数
    
    
    #     -t [文件类型]: 指定挂载文件类型(type),不指定也可以,因为操作系统会根据superblock内容自动识别文件系统
    
    
    #     -L [指定标签名]:指定挂载后的label,可选。
    
    
    #     -o:可以加入一些额外的参数,比如说设置权限,自动挂载等: -o rw(设置可读写) -o remount(重新挂载) -o default(rw, sudi,dev,exec,auto,nouser,asnc)
    
    
    
    #例子:
    
    
    # mount -t ext3 /dev/sdb1/ /media/b1
    
    
    # 详细用法请输入 man mount 自行查看。
    
    
    mount -l 
    
    
    #列出目前挂载的文件系统
    
    
    umount 设备文件名或者挂载点
    
    #常用参数:
    
    
    # -f : 强制卸载(force)
    
    
    #常见问题:
    
    
    # umount:device....is busy  一般是你正在用当前文件系统,cd ../ 返回上一级目录,或者 cd../../
    
    
    

    这里可能很多的小伙伴可能要问了:“你刚说过,磁盘只有通过挂载在目录下,我们才可以用这个设备。也就是说,每个磁盘都必须要挂载才可以使用。那我们的/home等文件等所在的磁盘怎么不挂载就可以用了?”

    其实这是你在安装操作系统已经做过的工作,在安装操作系统时,它会提示你分区,选择文件系统和挂载。然后,它会将这些参数放在/etc/fstab这个文件下。

    操作系统每次开机都会读取这个文件下的内容,然后按照这个文件的内容对磁盘进行对应的挂载。

    你也可以对这个文件内容进行修改,设置相关的挂载属性,一般情况下不建议这样做。

    挂载其他相关文件:

    /etc/mtab是默认情况下挂载以后就将挂载情况以及属性写入这个文件。

    /etc/filesystems存放系统指定的测试挂载文件系统类型。

    /proc/filesystems存放系统已加载的文件系统类型。

    /lib/modules/$(uname -r)/kernel/fs/下存放支持的文件系统驱动程序。

你可能感兴趣的:(操作系统)