分区&挂载&文件系统&目录总结

本文详细解释了分区、文件系统、目录以及挂载的概念,涉及不同操作系统(如Windows和Linux)下的分区工具、文件系统类型(如NTFS、ext4和FAT32),以及根文件系统在Linux中的重要性。文章还介绍了挂载过程,如userdata分区在Android系统中的应用,以及如何在Windows下安装Ubuntu双系统。
摘要由CSDN通过智能技术生成

背景

在工作中总是听到分区,挂载,文件系统,以及目录这几个词,之前都是简单查一下,然后混过去,但是越来越觉得没弄清楚会对工作有阻碍,于是下定决心将这几个名词以及相互之间的关系弄清楚.

关键知识点

分区

分区是什么?

分区就是将一整个物理的磁盘切分成更小的单元进行管理。例如:

DiskGenius” :在windows上使用进行分区。

GParted:适用于 Windows、macOS 和 Linux 的免费开源分区工具。

不同的分区可以设置成不同的文件系统,然后挂载到不同的挂载点。

分区的好处?

  • 提高性能:将数据分散在多个分区上可以提高读取和写入速度,因为磁盘磁头不需要移动那么远来访问数据。
  • 提高可用性:如果一个分区损坏,其他分区仍然可用。这可以帮助防止数据丢失和停机。
  • 提高安全性:可以将敏感数据存储在单独的分区上,以提高安全性。这可以帮助防止未经授权的访问。
  • 简化管理:可以将不同类型的数据存储在不同的分区上,以便于管理。例如,可以将系统文件存储在一个分区上,而用户数据存储在另一个分区上。
  • 提高灵活性:可以根据需要添加、删除和调整分区大小。这提供了更大的灵活性来满足不断变化的需求。

分区与img以及文件系统目录的关系(借用userdata分区来解释)?

在Android系统中,**userdata.img是一个文件系统镜像,它在刷机过程中会被写入到设备的一个独立分区中,通常称为userdata分区。这个分区被挂载到Android文件系统层次结构中的/data目录。

这里的关键是分区和目录之间的关系:

  • 分区:物理存储设备上的一个逻辑区域,它可以包含一个文件系统。
  • 目录:文件系统中用于组织文件的虚拟容器。

当你将**userdata.img烧入”到设备时你实际上是在将整个文件系统的映像复制到userdata分区。启动时,Android操作系统会将这个分区挂载到根文件系统中的/data目录。

因此,操作系统并不是将**img中的信息直接写入到/data目录下,而是将整个userdata.img映像写入到一个分区中,然后这个分区在启动时被挂载为/data目录。这样,当你访问/data目录时,你实际上是在访问userdata分区中的文件系统。

烧入:这个术语通常用于固件或映像写入过程,意味着将userdata.img文件中的内容写入到Android设备的存储中(userdata分区)。这通常通过快速启动(fastboot)或其他专用工具来完成。

文件系统

文件系统类型

  • 根据支持的操作系统区分

    1. FAT32:

    • 是一种历史悠久的通用文件系统,支持 Windows、macOS 和 Linux 等操作系统。
    • 具有较高的兼容性,可以用于各种存储设备,例如硬盘、U盘和闪存卡。
    • 最大支持分区容量为 32GB。

    2. NTFS:

    • 是 Windows 操作系统的默认文件系统。
    • 具有较强的安全性和稳定性,支持文件加密、权限控制等功能。
    • 支持更大的分区容量,理论上可达 2TB。

    3. ext4:

    • 是 Linux 操作系统的默认文件系统。
    • 具有较高的性能和效率,支持日志记录、文件扩展等功能。
    • 支持更大的分区容量,理论上可达 16TB。
  • 文件重要性/优先级区分

    可以分为根文件系统和普通文件系统.

    根文件系统是 Linux 系统中的第一个文件系统,它是所有其他文件系统的起点。

    普通的文件系统是指除根文件系统之外的所有其他文件系统。它们可以位于根文件系统所在的同一分区上,也可以位于不同的分区上。普通的文件系统通常用于存储数据,例如应用程序、文档和媒体文件。

    如果要对普通文件系统进行访问,就必须将其挂载到根文件系统的目录上.

    以下是根文件系统和普通的文件系统的区别:

    • 位置:根文件系统通常位于单独的分区上,而普通的文件系统可以位于任何分区上。
    • 用途:根文件系统包含启动系统所需的所有文件,而普通的文件系统用于存储数据。
    • 重要性:根文件系统对于系统启动至关重要,而普通的文件系统则不是。

根文件系统

根文件系统(root filesystem)是 Linux 系统中的第一个文件系统,它是所有其他文件系统的起点。它包含启动系统所需的所有文件和目录.根文件系统是Linux和Unix-like操作系统中的主文件系统,由根目录 / 表示。它是文件系统层次结构的最顶层,其他所有文件和目录都从根文件系统开始。在根文件系统中,你可以找到操作系统和用户数据的主要目录,如 /bin/etc/home/usr 等。

以下是根文件系统的几个关键点:

  1. 启动时加载:在系统启动过程中,根文件系统是第一个被加载的文件系统。内核初始化后,它会挂载根文件系统以访问其他系统文件和目录。
  2. 包含必要的目录和文件:根文件系统包含了操作系统运行所必需的基本目录和文件,包括系统配置文件(/etc)、程序执行文件(/bin/sbin)、库文件(/lib)等。
  3. 挂载其他文件系统:从根文件系统开始,其他文件系统可以挂载到目录树的各个点。例如,你可能会有一个单独的**/home**分区,它在启动时会被挂载到根文件系统的 /home 目录上。
  4. 修改受限:根文件系统通常是只有系统管理员(root用户)才能修改的,因为对它的改动可能会影响系统的稳定性和安全性。
  5. 可单独分区:为了提高安全性和灵活性,根文件系统通常会被放在一个单独的分区上。这样做可以在系统出问题时简化恢复过程,并且允许使用不同类型的文件系统来优化不同的使用场景。
  6. 重要性:由于根文件系统对系统至关重要,如果它损坏或无法挂载,系统将无法启动。

根目录

每一个文件系统(包括根文件系统)都会提供一个根目录 (Root Directory),该文件系统中的所有文件,就是储存在其根目录下。DOS或Windows操作系统,允许你以硬盘符号(Driver Letter) ,直接指定要使用哪个磁盘的文件系统根目录;但是在 Red Hat Enterprise Linux 中,整个系统只会有一个根目录(Single Root Directory),不允许有第二个以外的根目录。因此要在 Red Hat Enterprise Linux系统中,使用某个磁盘空间的根目录与其中的所有文件,就必须将该文件系统挂载(mount)到根文件系统(Root Filesystem)的某一个目录下。

文件系统mount到根文件系统过程

目录树结构上只有一个根,我们也叫它root inode,这是一个on-disk的实体。

我们知道,外存中的数据是不能和CPU直接交互的,我们需要将外存中的数据加载到内存中来,于是Linux内核就在内存中先准备了一个初始的空的根目录(当然实际过程要复杂的多),然后将上述存储设备的文件系统挂载到这个空的根目录上,这样就把on-disk的结构和内存关联了起来,发生在根目录及其下面的操作都将实际读写在上面的存储设备上。就像这样(圆圈代表内存中的结构):

挂载

  • 挂载准确的说是挂载文件系统,只不过文件系统是设置在分区中的。
  • 分区上有文件系统才能挂载,如果没有,就不能被挂载.
  • 一个挂载点只能挂载一个分区。
  • 只有在挂载后,你才能通过访问具体的目录,去操作文件.
  • 挂载文件系统时,这个挂载目录绑定在系统根目录树中一个已有的目录上,这个已有目录叫做文件系统的挂载点(mount point)。我们说起挂载点时,指的其实是挂载文件系统到系统根目录下的某个目录。简单的说,就是“现在有一个磁盘空间,请你把它放在系统根某一个目录中,好让用户可以调用里面的数据”。
  • 完成挂载文件系统动作后,Red Hat Enterprise Linux 就会知道,在某个挂载点目录下的文件,实际上是存放于某个文件系统中。当有人调用挂载点目录中的文件时,Red Hat Enterprise Linux 就会转到该文件系统上找寻文件。例如,你把 /dev/sda1 挂载到 /tmp/ 目录,当用户在 /tmp/ 下使用 ls 读取目录内容、或者使用 cat 开启 /tmp/ 中的某一个文件时,Red Hat Enterprise Linux 就知道要到 /dev/sda1 上执行相关的操作。

有哪些挂载点

在Linux系统中,挂载点是指那些作为访问挂载文件系统起点的目录。系统启动时,多个文件系统通常会自动挂载到这些预定义的挂载点。以下是一些常见的挂载点:

  • /:根文件系统,所有其他文件系统的挂载点。
  • /boot:包含启动加载程序和Linux内核的文件系统。
  • /home:用户的主目录。
  • /usr:用户应用程序和文件。
  • /var:包含经常变化的文件,如日志和缓存。
  • /tmp:临时文件存放。
  • /dev:设备文件,包括硬盘和外围设备。
  • /proc:虚拟文件系统,提供系统和进程信息。
  • /sys:另一个虚拟文件系统,提供设备和驱动程序的信息。

这些挂载点都是根文件系统的目录.

可以自己创建挂载点么?

是的,你可以创建新的挂载点。在Linux中,任何空目录(必须是在根文件系统下)都可以作为挂载点。例如,如果你有一个新的硬盘分区或一个外部存储设备,你可以简单地创建一个新的目录(例如使用 mkdir 命令),然后将分区挂载到那个目录:

mkdir /mnt/my_new_partition
mount /dev/sdb1 /mnt/my_new_partition

这里,/mnt/my_new_partition 就是新创建的挂载点,而 /dev/sdb1 是你想要挂载的分区。使用 mount 命令后,你可以通过新的挂载点访问该分区中的数据。

目录

每个文件系统都有自己的目录,包括根文件系统.

当你将其他文件系统挂载到根文件系统后,你的访问路径就会有变化了.

例如:/($挂载的根文件系统下的目录)/($其他文件系统的目录树)

问题

分区是否跟我在windows看到的c盘 d盘一个概念?

是的,分区与你在Windows中看到的C盘、D盘是同一个概念。在Windows操作系统中,每个磁盘分区被分配一个驱动器字母(如C、D等),这些驱动器代表了计算机硬盘上的不同物理或逻辑分区。每个分区可以有不同的文件系统,像NTFS或FAT32,并可以用来分别存储操作系统、应用程序、文件等不同类型的数据。

但是需要注意的是C盘,D盘,这是硬盘符号(Driver Letter),是windows中的定义。能让用户以盘符直接访问分区的文件系统.

挂载是不是跟分区也有关系?

是的,挂载确实与分区有关。在操作系统中,挂载是将一个文件系统连接到操作系统的文件树中的过程。当一个分区被挂载后,操作系统可以访问该分区中的文件和目录。例如,在Linux系统中,你可以将一个分区挂载到一个特定的目录,从而通过该目录访问该分区中的数据。

windows下安装ubuntu双系统是怎么实现的?(boot挂载点说明)

通常情况下,/boot 挂载点只会挂载一个文件系统,因为它专门用于存放启动Linux系统所需的核心文件,包括内核映像、引导加载器等。在大多数Linux发行版中,/boot 挂载点指向一个专门的分区,这个分区包含了启动操作系统时需要读取的文件。

如果你有多个操作系统(多重引导),每个操作系统通常都会有它自己的**/boot分区,而引导加载器(如GRUB)会被配置为根据你的选择引导特定操作系统的/boot**分区。

在安装完成后,每次开机PC,都会出现GRUB选择哪个文件系统加载内核的,有windows的也有ubuntu的,这个时候可以理解为给boot分区挂载哪个操作系统的boot分区,这个分区会包含该操作系统的内核文件.

命令解释

  • df -h

    当前系统下的磁盘统计状态,home 目录下的是我们主要使用的空间,是用户的主目录,目前是一个/dev/mapper/vgdisk-lvdisk的设备挂载在home目录下.

    我们通过MobaXterm进入到服务器,一般都默认在/home/username的目录下,可以通过pwd查看到. 

       

  • mount/cat /proc/mounts

        第一列fs_spec:挂载的块设备或远程文件系统

        第二列:fs_file:文件系统的挂载点

        第三列:fs_vfstype:文件系统的类型

        第四列:fs_mntopts:与文件系统相关的更多选项,不同的文件系统其选项也不太一样

        通过可以看到挂载在home目录下的/dev/mapper/vgdisk-lvdisk的文件系统是ext4类型的.rw表示可读可写.

总结

  • 分区其实就是对物理磁盘切分成更小的单元,更加方便管理.
  • 分区中设置了文件系统,文件系统存在不同的类型,对于不同的操作系统适配是不一样的.
  • linux操作系统中存在根文件系统,是第一个文件系统,它包含启动系统所需的所有文件和目录.
  • 其他的文件系统必须挂载在根文件系统的目录下才能被访问.
  • 挂载的是文件系统而不是分区,一个挂载点只能挂载一个文件系统.
  • 根文件系统有目录,普通文件系统中也存在目录,参看下图
  • img的烧入,其实是将img中的内容写入到Android设备的存储中(userdata分区)。这通常通过快速启动(fastboot)或其他专用工具来完成.
  • 然后这个分区在启动时被挂载为根文件系统的目录下.

参考

Linux的文件系统和挂载点是什么意思? - 知乎

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值