一、背景

一直以来,对于磁盘的分区以及Linux目录挂载的概念都不是很清晰,现在趁着春暖花开周末在家没事就研究了下它们,现在来分享我的理解。

二、概念详解

1.磁盘分区

磁盘分区是把物理的磁盘空间按照自己的要求分成N个不同大小的区域,以便OS更好更高效的进行文件存储管理。像我们经常使用的Windows系统中的C、D、E、F盘...等盘符实际就是一个个的磁盘分区。分区与操作系统没有任何关系,因为我们对磁盘分区可以在安装操作系统之前进行。

磁盘分区类型:主分区、扩展分区(N个逻辑分区的集合)。

硬盘组成:硬盘主引导扇区+主分区+扩展分区

2.硬盘主要组成部分:磁头、磁盘面、磁道、扇区、柱面

    

3. 硬盘主引导扇区

以机械硬盘为例,其中硬盘主引导扇区位于硬盘的 0磁头0柱面1扇区(也就是所谓的Boot Sector),它又分为:硬盘主引导记录(MBR) + 硬盘分区表(DPT),共512个字节,其中MBR446字节、分区表64字节以及2字节的结束标志。

4. 硬盘主引导记录(MBR)

位于磁盘最前边的一段引导(Loader)代码。它负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别、分区引导信息的定位,它由磁盘操作系统(DOS)在对硬盘进行初始化时产生的。

5.操作系统启动过程简述

电脑开机时,操作系统通过BIOS(BIOS实际是一个基础输入输出系统,主要用于和计算机硬件打交道)程序把Boot Sector读入内存,然后执行其中的MBR,这个时候BIOS是把启动交给MBR控制, MBR在4个分区表中搜索标致为活动的分区,找到以后把活动分区的第一扇区读入内存,然后开始执行它,以此来运行特定系统的启动程序(LILO、GRUB、NT Loader),此时是操作系统的引导程序来控制系统的启动。接着操作系统进行一系列的初始化工作,最后把系统交给系统内核进行管理,就完成了开机启动的过程。

6.主分区、扩展分区、逻辑分区

操作系统必须安装在主分区上,因为MBR中记录着主分区信息,系统启动的时候会到主分区来查找操作系统引导文件,否则系统将无法启动。又因为磁盘分区表一共64个字节,并且每个主分区的分区信息占16个字节,所以一个磁盘最多能有4个主分区。那么问题来了,我们想要更多的分区怎么办呢?这个时候扩展分区的作用就来了,把最后一个主分区作为扩展分区,再在这个分区下分割出多个逻辑分区,扩展分区实际上是一个类似容器的东西。扩展分区并不是一个真实存在的分区,它只是内存管理链表中的一个指针,指示出哪一块区域是扩展分区。又因为这些扩展分区内的分区实际上都是在一个分区内,只是逻辑上分开,所以叫做逻辑分区。但这对于用户来说看起来系统中有很多分区。

7.linux磁盘命名方式

IDE硬盘--->hda、hdb、hdc、hdd

SATA硬盘--->sda、sdb、sdc、sdd

8. linux分区命名方式

IDE硬盘--->hda(1-n)...hdb(1-n)...hdd(1-n)

SATA硬盘--->sda(1-n)...sdb(1-n)...sdd(1-n)

注:其中最后一位数字,主分区是1到4,而逻辑分区是5以上的数字。

9.Linux文件系统结构

Linux和Windows系统的文件系统不同,它是树形结构的文件系统,其中/是系统的根目录,其他所有目录都是它的子节点,一般该目录下挂载的是一个主分区。而且无论什么设备对于linux系统来说都是一个文件 。而且在linux系统中,我们看不到盘符的概念,就连分区的概念都被淡化了,分区在linux系统中也和其他设备一样被当成了文件对待。那么也就是说,我们要想对一个磁盘分区进行操作,必须通过文件进行。

10.linux挂载

挂载就是把文件目录和分区连接起来,与windows下盘符和分区进行映射的关系一样,不同的是windows是把分区映射到一个盘符,而linux是把一个分区映射到一个目录。挂载完成以后,我们在linux系统中对挂载的目录的任何操作都是对对应的磁盘分区的操作,例如文件保存当然也是保存到对应的磁盘分区上。 其中/根目录必须挂载在主分区上,否则启动系统的时候会由于找不到启动文件而启动失败。

11.相关常用命令

df -Th 查看当前系统的分区情况

fdisk -l 查看当前系统分区信息详情

mount 挂载分区

unmount 卸载分区

12.Linux分区挂载点介绍

  /boot  启动分区,一般设置100M-200M,boot目录包含了操作系统的内核和在启动系统过程中所要用到的文件

  /     根分区,所有未指定挂载点的目录都会放到这个挂载点下

  /home 用户目录,一般每个用户100M左右,特殊用途,比如放大文件也可再加上G。分区大小取决于用户多少。对于多用户使用的电脑,建议把/home独立出来,而且还可以很好地控制普通用户权限等,比如对用户或者用户组实行磁盘配额限制、用户权限访问等.

  /tmp   临时文件目录,一般设置1-5G,方便加载ISO镜像文件使用,对于多用户系统或者网络服务器来也有独立挂载的必要。临时文件目录,也是最常出现问题的目录之一.

  /usr  系统资源,一般设置要3-15G,大部分的用户安装的软件程序都在这里。就像是Windows目录和Program Files目录。很多Linux家族系统有时还会把/usr/local单独作为挂载点使用。

  /var  可变数据目录,包含系统运行时要改变的数据。通常这些数据所在的目录的大小是要经常变化的,系统日志记录也在/var/log下。一般多用户系统或者网络服务器要建立这个分区,设立这个分区,对系统日志的维护很有帮助。一般设置2-3G大小,也可以把硬盘余下空间全部分为var.

  /srv  系统服务目录,用来存放service服务启动所需的文件资料目录,不常改变。

  /opt  附加应用程序目录,存放可选的安装文件,个人一般把自己下载的软件资料存在里面,比如Office、QQ等等.

  swap  交换分区,一般为内存2倍,最大指定2G即可

  /bin  二进制可执行目录,存放二进制可执行程序,里面的程序可以直接通过命令行调用,而不需要进入程序所在的文件夹

  /sbin  系统管理员命令存放目录,存放标准系统管理员文件

  /dev  存放设备文件,驱动文件等

三、总结

通过以上的描述,我们就很容的弄明白了磁盘分区以及Linux目录挂载的概念,而且还了解到了一些别的概念比如 硬盘主引导扇区、硬盘主引导记录(MBR)、操作系统启动过程等等,通过这样一点一点的基积累,我相信我们会离大神越来越近的。加油!

磁盘分区以及Linux目录挂载详解的更多相关文章

  1. 什么是挂载?linux中挂载详解

    目录 一:什么是挂载,linux中挂载详解 一:什么是挂载,linux中挂载详解 1.linux中'一切皆文件',所有文件都放置在以根目录为树根的树形目录结构中.在linux看来,任何硬件设备也都是文 ...

  2. Linux 目录结构详解

    Linux目录详解 Linux目录详解(RHEL5.4) 由于linux是开放源代码,各大公司和团体根据linux的核心代码做各自的操作,编程.这样就造成在根下的目录的不同.这样就造成个人不能使用他人 ...

  3. Linux目录结构详解(一)

    Linux目录结构,在逻辑上所有目录只有一个顶点,即/(根目录),是所有目录的起点.根下面类似于一个倒挂着的树的结构. Linux目录按照类别组织: 应用程序 /usr/bin 数据文件,帮助/usr ...

  4. Linux中挂载详解以及mount命令用法

    转自:https://blog.csdn.net/daydayup654/article/details/78788310 挂载概念 Linux中的根目录以外的文件要想被访问,需要将其“关联”到根目录 ...

  5. Linux目录文件详解FHS标准(2013.09.05)

    Linux 目录配置的依据FHS(Filesystem Hierarchy Standard)标准,将目录分成为四种交互作用的形态: 四种形态的具体解释: 可分享的:可以分享给其他系统挂载使用的目录, ...

  6. Linux目录结构详解

    /: 根目录,一般根目录下只存放目录,不要存放文件,/etc./bin./dev./lib./sbin应该和根目录放置在一个分区中/bin:/usr/bin: 可执行二进制文件的目录,如常用的命令ls ...

  7. Linux目录架构详解

    Linux和Windows操作系统的显著区别之一就是目录架构的不同.Linux操作系统的目录架构遵循文件系统层级结构标准.不知你是否使用ls命令浏览过Linux的根目录"/",亲爱 ...

  8. linux目录结构详解(以suse linux 10为例)

    一.文件系统结构 位于Linux系统的最顶端即根目录是/.Linux的文件系统的入口就是/,所有的目录.文件.设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者. 它之下的子目录有: ...

  9. Linux目录结构(目录结构详解是重点)

    1.Linux目录与Windows目录对比 1.Windows目录结构 2.Linux目录结构 深刻理解Linux 树状文件目录是非常重要的,只有记住他们,你才能在命令行中任意切换,想去哪里去哪里 2 ...

随机推荐

  1. Ueditor Word图片转存交互

    三.Word图片转存交互 1.图片转存原理 所谓word图片转存,是指UEditor为了解决用户从word中复制了一篇图文混排的文章粘贴到编辑器之后,word文章中的图片数据无法显示在编辑器中,也无法 ...

  2. C#重点内容之:接口(interface)(一)网络初级示例

    这一篇来源于网络,简单介绍了接口的概念 接口是体现面向对象编程思想优越性的一件利器,为什么这么说呢? 首先我们来看,接口是为继承而存在的,如果没有继承,那就自然不需要接口了,既然有继承,那就需要把可能 ...

  3. day30(对象转json(java))

    转换之前需要知道什么是json json类似于map集合:键值对的方式存在,是一种轻量级数据交互格式. eg: {name:" ",age:15} [{name:" &q ...

  4. QT7有用的尝试总结(1)

    1,系统配置 1. 把系统相关的一些目录配置 写到qt.conf文件里,详细情况情参考QSettings里的qt.conf部分 You can use the qt.conf file to over ...

  5. simhash与Google的网页去重

    前几天去吃葫芦头的路上,大飞哥给详细的讲解了他在比较文本相似度实验时对Google的simhash方法高效的惊叹,回来特意去找了原文去拜读. Simhash 传统IR领域内文本相似度比较所采用的经典方 ...

  6. VARCHAR的最大长度的问题

    大家知道,在SQL Server 2000中,VARCHAR的最大长度是8000,如果字符串的长度超过8000,保存在VARCHAR中时就会被截断.如果你需要传入的参数恰好很长,比如是一个xml,很多 ...

  7. 定时任务 Wpf.Quartz.Demo.1

    Quartz 是个开源的作业调度框架. 安装:Install-Package Quartz 官网文档地址:https://www.quartz-scheduler.net/documentation/ ...

  8. WPF 触摸屏小键盘样式

    WPF程序,用于平板时,一些输入数量的地方我们需要弹出小键盘输入,这个键盘可以调系统的,也可以自己写. 分享个我现在用的一个数字键盘界面. <Window xmlns:dxe="htt ...

  9. Spring IOC 容器源码分析 - 创建原始 bean 对象

    1. 简介 本篇文章是上一篇文章(创建单例 bean 的过程)的延续.在上一篇文章中,我们从战略层面上领略了doCreateBean方法的全过程.本篇文章,我们就从战术的层面上,详细分析doCreat ...

  10. 常用下载方式的区别-BT下载、磁力链接、电驴

    出处:https://www.jianshu.com/p/72b7a64e5be1 打开 115 离线下载的窗口,看到支持这么多种链接,你都清楚他们是什么原理嘛?接下来我们一个一个说. 一.HTTP( ...