磁盘分区、挂载
Linux 系统中所有的硬件设备都是通过文件的方式来表现和使用的,我们将这些文件称为设备文件,硬盘对应的设备文件一般被称为块设备文件。
为什么要有多个分区?
- 防止数据丢失:如果系统只有一个分区,那么这个分区损坏,用户将会丢失所的有数据。
- 增加磁盘空间使用效率:可以用不同的区块大小来格式化分区,如果有很多1K的文件,而硬盘分区区块大小为4K,那么每存储一个文件将会浪费3K空间。这时我们需要取这些文件大小的平均值进行区块大小的划分。
- 数据激增到极限不会引起系统挂起:将用户数据和系统数据分开,可以避免用户数据填满整个硬盘,引起的系挂起。
磁盘的分区由主分区、扩展分区和逻辑分区组成。在一块磁盘上,主分区的最大个数是 4,其中扩展分区也是一个主分区,并且最多只能有一个扩展分区,但可以在扩展分区上创建多个逻辑分区。因此主分区(包括扩展分区)的范围是 1-4,逻辑分区从 5 开始。对于逻辑分区,Linux 规定它们必须建立在扩展分区上,而不是建立在主分区上。
主分区的作用是用来启动操作系统的,主要存放操作系统的启动或引导程序,因此建议操作系统的引导程序都放在主分区,比如 Linux 的 /boot 分区,最好放在主分区上:
1、分区方式:
(1)mbr分区
- 最多支持四个分区
- 系统只能安装在主分区
- 扩展分区要占一个主分区
- MBR最大只支持2TB,但拥有最好的兼容性
(2)gtp分区
- 支持无限多个主分区(系统可能限制,windows限制128个)
- 最大支持18EB的容量(1EB=1024PB,1PB=1024TB)
- windows7 64 以后支持GTP
2、分区原理
(1)windows下磁盘分区:
(2)linux下磁盘分区、原理介绍:
- linux无论有多少个分区,分给哪一个目录使用,它始终只有一个根目录,一个唯一的文件结构
- linux采用一种“载入”的方法,将整个文件系统中包含一整套的文件和目录,且将一个分区和一个目录联系起来,这时要载入的一个分区将使它的存储空间在一个目录下获得。
3、硬盘表示方法
-
Linux硬盘分IDE硬盘和SCSI硬盘,目前基本都是SCSI
-
表示方法:
对于目前常见的磁盘,一般表示为:sd[a-z]x
sd:主设备号代表设备的类型,相同的主设备号表示同类型的设备。当前常见磁盘的主设备号为 sd。
[a-z]:次设备号代表同类设备中的序号,用 “a-z” 表示。比如 /dev/sda 表示第一块磁盘,/dev/sdb 表示第二块磁盘。
x :表示磁盘分区编号。在每块磁盘上可能会划分多个分区,针对每个分区,Linux 用 /dev/sdbx 表示,这里的 x 表示第二块磁盘的第 x 个分区。1~4代表主分区或者扩展分区,从5开始代表逻辑分区。
4、挂载
(1)添加硬盘
- 1、虚拟机添加硬盘
(2)分区
利用 fdisk
划分磁盘分区
fdisk 是 Linux 系统中一款功能强大的磁盘分区管理工具,可以观察硬盘的使用情况,也可以用来管理磁盘分区。
fdisk /dev/sdd
- p 显示磁盘分区
- n 新增分区
- d 删除分区
- w 写入分区并退出
(3)格式化
分区完之后需要格式化才能存储数据,格式化完成之后出现分区的标识符。
(4)挂载
先创建一个需要挂载的目录,用mount 设备名称 挂载目录
即可。
*取消挂载:umount 设备名称 或者umount 目录
(5)自动挂载:重启之后仍会挂载到相应目录
通过/etc/fstab实现挂载,将UUID改成设备名称,修改挂载目录。
添加完成后,执行mount -a
即可生效
5、磁盘情况查询
1、查询系统整体磁盘使用情况
2、查询指定目录磁盘占用情况
du -h /目录
-s 指定目录
-h 带计量单位
-a 含文件
–max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值