# 05.Linux-磁盘分区、挂载

# 1.磁盘分区

1.原理介绍

(1) Linux 无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 Linux 中每个分区都是用来组成整个文件系统的一部分。

(2) Linux 采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。 这时要载入的一个分区将使它的存储空间在一个目录下获得。

(3)图解: 硬盘上的一个分区 通过挂载mount机制 与文件系统中的某个目录联系起来 即分区挂载到目录 访问这个目录即访问这个分区 可以通过指令查看挂载情况,下面会说。

2.硬盘说明

(1) Linux 硬盘主要分为: IDE 硬盘和 SCSI 硬盘 目前基本上是 SCSI 硬盘

(2) 对于 IDE 硬盘,驱动器标识符为“hdx~” 其中“hd”表明分区所在设备的类型,这里是指 IDE 硬盘

“x”为盘号 a 为基本盘 第一个硬盘 b 为基本从属盘 第二个硬盘 c 为辅助主盘 第三个硬盘 d 为辅助从属盘 第四个硬盘

“~”代表分区 前四个分区用数字 1 到 4 表示,它们是主分区或扩展分区,从 5 开始就是逻辑分区

例:hda3 表示为第一个 IDE 硬盘上的第三个主分区或扩展分区 hdb2 表示为第二个 IDE 硬盘上的第二个主分区或扩展分区

(3) 对于 SCSI 硬盘则标识为“sdx~” SCSI 硬盘是用“sd”来表示分区所在设备的类型的,其余则和 IDE 硬盘的表示方法一样

3.分区情况

命令 :lsblk    或者 lsblk -f

lsblk:list block devices 

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sr0              11:0    1  4.3G  0 rom  /run/media/stu/CentOS 7 x86_64


sda1分区挂载到/boot目录
sda2分区的交换分区挂载到swap目录
sda2分区的根分区挂载到根目录



lsblk -f
NAME            FSTYPE      LABEL           UUID                                   MOUNTPOINT
sda                                                                                
├─sda1          xfs                         7181f148-196b-4dc6-ae98-a46a3efd2102   /boot
└─sda2          LVM2_member                 YYthHI-kcwS-S2TR-pLSB-IkRV-Q6q2-UXout3 
  ├─centos-root xfs                         fc310089-989e-4b40-a272-b81a3e0f16df   /
  └─centos-swap swap                        17ec909f-7205-4563-9b98-00eb4be42fb8   [SWAP]
sr0             iso9660     CentOS 7 x86_64 2018-11-25-23-54-16-00                 /run/media/stu/CentOS 7 x86_64


第一列可以看到设备/硬盘分区情况
FSTYPE:文件系统类型
UUID:格式化之后,会给每一个分区分配一个 唯一的 不重复的 40位 的 字符串
MOUNTPOINT:挂载点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

# 2.挂载经典案例

如何添加一块磁盘呢?

  1. 虚拟机添加硬盘
  2. 分区
  3. 格式化
  4. 挂载
  5. 设置永久挂载

1.添加磁盘

在【虚拟机】菜单中选择【设置】
然后设备列表里添加硬盘
然后一路【下一步】
中间只有选择磁盘大小的地方需要修改,至到完成

使用命令lsblk发现没有新增的硬盘?
    需要重启系统(才能识别)

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0    1G  0 disk 
sr0              11:0    1  4.3G  0 rom  

新增硬盘sdb,还未分区。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

2.分区

对sdb进行分区:

分区命令:fdisk /dev/sdb   (dev目录下是一些设备)
步骤:
    开始分区后输入 n  (新增分区)
    然后选择 p         (分区类型为主分区)
    两次回车
    最后输入 w  (写入分区并退出)(若不保存并退出输入 q,即上面步骤出错了想重来就可以输入q)

说明:
    m    显示命令列表           
    p    显示磁盘分区 (同 fdisk –l) 
    n    新增分区
    d    删除分区
    w    写入并退出


命令(输入 m 获取帮助):m
命令操作
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)


选择分区类型:主分区/扩展分区
命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p


分区号 (1-4,默认 1):                  --->输入2,硬盘就有2个分区
起始 扇区 (2048-2097151,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-2097151,默认为 2097151):
将使用默认值 2097151
分区 1 已设置为 Linux 类型,大小设为 1023 MiB


命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。


lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0    2G  0 part [SWAP]
└─sda3   8:3    0   17G  0 part /
sdb      8:16   0    1G  0 disk 
└─sdb1   8:17   0 1023M  0 part 
sr0     11:0    1  4.3G  0 rom  
分区成功
硬盘sdb中只有一个分区sdb1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73

3.格式化

格式化磁盘

为什么要格式化?
    给这个分区指定它的文件类型

[root@Edu01 ~]# lsblk -f
NAME            FSTYPE      LABEL           UUID                                   MOUNTPOINT
sda                                                                                
├─sda1          xfs                         7181f148-196b-4dc6-ae98-a46a3efd2102   /boot
└─sda2          LVM2_member                 YYthHI-kcwS-S2TR-pLSB-IkRV-Q6q2-UXout3 
  ├─centos-root xfs                         fc310089-989e-4b40-a272-b81a3e0f16df   /
  └─centos-swap swap                        17ec909f-7205-4563-9b98-00eb4be42fb8   [SWAP]
sdb                                                                 
└─sdb1                                                              
sr0    iso9660 CentOS 7 x86_64 2018-11-25-23-54-16-00    

sdb1的UUID为空,说明还没有格式化。

格式化命令:
    mkfs -t    ext4 /dev/sdb1         其中 ext4 是分区类型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

4.挂载

挂载: 将一个分区与一个目录联系起来,
    命令:mount 设备名称 挂载目录

首先创建一个目录newdisk (目录位置随便)
假如在根目录下创建:mkdir newdisk
进行挂载:mount /dev/sdb1 /newdisk

NAME   FSTYPE  LABEL           UUID                                 MOUNTPOINT
sda                                                                 
├─sda1 ext4                    bd7b7249-b3fa-434f-acfd-5127a56c0673 /boot
├─sda2 swap                    4381675a-652c-4ffa-9a9d-cb23d19be79b [SWAP]
└─sda3 ext4                    531c2867-a7e9-4ae7-8f79-4453ceb76c5b /
sdb                                                                 
└─sdb1 ext4                    d1856552-dee4-4fbc-9953-f650231ecaac /newdisk
sr0    iso9660 CentOS 7 x86_64 2018-11-25-23-54-16-00  
挂载点有了,挂载成功。


卸载(去除分区与目录的联系):
    命令:umount    设备名称 或者    挂载目录
    例如:umount    /dev/sdb1 或者 umount /newdisk


注意: 用命令行挂载,重启后会失效。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

5.永久挂载

解决  用命令行挂载,重启后会失效 问题

永久挂载: 
    通过修改/etc/fstab 实现挂载
    添加完成后 执行 mount    –a 即刻生效 或者 重启系统reboot

步骤:
vim /etc/fstab
增加一行:UUID=上面sdb1的UUID    /newdisk    ext4    defaults     0 0
也可以是:/dev/sdb1              /newdisk    ext4    defaults     0 0


要挂载的设备或伪文件系统  挂载点  文件系统类型  挂载选项 转储频率 自检次序
UUID=上面sdb1的UUID   /newdisk    ext4    defaults   0        0


转储频率:
  0:不做备份
  1:每天转储
  2:每隔一天转储

自检次序:
  0:不自检
  1:首先自检;一般只有rootfs才用1;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 3.磁盘情况查询

1.查询系统整体磁盘使用情况

基本语法:
    df -h   (disk free)

查询系统整体磁盘使用情况
1
2
3
4

2.查询指定目录的磁盘占用情况

基本语法:
    du -h  指定目录    (disk usage)
功能:查询指定目录的磁盘占用情况,默认为当前目录
    -s 指定目录占用大小汇总
    -h 带计量单位
    -a 含文件
    --max-depth=1    子目录深度
    -c 列出明细的同时,增加汇总值

应用实例
查询 /opt 目录的磁盘占用情况,深度为 1
    du -hac --max-depth=1 /opt
1
2
3
4
5
6
7
8
9
10
11
12

# 4.磁盘情况实用指令

1. 统计/opt 文件夹下文件的个数
    ls -l /opt | grep "^-" | wc -l

    说明:
        grep "^-" --->筛选出以-开头的,因为以-开头的都是文件
        wc (word count) 统计数量
            wc -l 统计行数 l即lines
            统计grep筛选后的行数即文件个数

2. 统计/opt 文件夹下目录的个数
    ls -l /opt | grep "^d" | wc -l

3. 统计/opt 文件夹下文件的个数,包括子文件夹里的
    ls -lR /opt | grep "^-" | wc -l
        -R 递归列出遇到的子目录

4. 统计/opt 文件夹下目录的个数,包括子文件夹里的
    ls -lR /opt | grep "^d" | wc -l

5. 以树状显示目录结构 
     指令:tree 目录 
     默认情况下没有tree指令
     如果没有 tree ,则使用 yum install tree 指令安装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
最近更新: 9/19/2026, 1:27:08 PM
编程NOTE   |