Linux-磁盘分区、挂载
Linux-磁盘分区、挂载
1.Linux 分区
1.原理介绍
- Linux 来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 , Linux中每个分区都是用来组成整个文件系统的一部分。
- Linux 采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
- 示意图
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
[root@llp ~]# lsblk -f
#NAME分区情况 , FSTYPE文件类型, UUID 分区唯一标识符 ,MOUNTPOINT 挂载点
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ext4 9e149406-c186-4363-9703-5a8f5a069a14 /boot
├─sda2 swap c46bb54c-48c2-4d6e-aeaf-08bc8577adda [SWAP]
└─sda3 ext4 7b1bcf5c-bc25-409b-aea4-6275e27dddd1 /
sr0 iso9660 CentOS 7 x86_64 2018-11-25-23-54-16-00 /run/media/root/CentOS 7 x86_64
[root@llp ~]#
2.挂载的经典案例
1.说明
下面我们以增加一块硬盘为例来熟悉下磁盘的相关指令和深入理解磁盘分区、挂载、卸载的概念。
2.如何增加一块硬盘
- 虚拟机添加硬盘
- 分区
- 格式化
- 挂载
- 设置可以自动挂载
3.虚拟机增加硬盘步骤 1-添加硬盘
在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改,至到完成。然后重启系统(才能识别)!
#重启之后查看硬盘挂载情况
[root@llp ~]# 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 /
#可以看到多了一块我们之前添加的硬盘大小1G,但是并没有分区
sdb 8:16 0 1G 0 disk
sr0 11:0 1 4.3G 0 rom
[root@llp ~]#
4.虚拟机增加硬盘步骤 2-分区命令
分区命令
fdisk /dev/sdb
开 始 对 /sdb分 区
m 显示命令列表
p 显示磁盘分区 同 fdisk –l
n 新增分区
d 删除分区
w 写入并退出
说明: 开始分区后输入 n,新增分区,然后选择 p ,分区类型为主分区。两次回车默认剩余全部空间。最后输入 w写入分区并退出,若不保存退出输入 q。
[root@llp ~]# 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
sr0 11:0 1 4.3G 0 rom
[root@llp ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x93e51286 创建新的 DOS 磁盘标签。
命令(输入 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):1
起始 扇区 (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.
正在同步磁盘。
5.虚拟机新增硬盘步骤 3-格式化磁盘
格式化磁盘
分区命令:mkfs -t ext4 /dev/sdb1
其中 ext4 是分区类型
[root@llp ~]# mkfs -text4/dev/sdb1
用法:
mkfs [选项] [-t <类型>] [文件系统选项] <设备> [<大小>]
选项:
-t, --type=<类型> 文件系统类型;若不指定,将使用 ext2
fs-options 实际文件系统构建程序的参数
<设备> 要使用设备的路径
<大小> 要使用设备上的块数
-V, --verbose 解释正在进行的操作;
多次指定 -V 将导致空运行(dry-run)
-V, --version 显示版本信息并退出
将 -V 作为 --version 选项时必须是惟一选项
-h, --help 显示此帮助并退出
更多信息请参阅 mkfs(8)。
[root@llp ~]# 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
6.虚拟机增加硬盘步骤 4-临时挂载
挂载: 将一个分区与一个目录联系起来,
mount 设备名称 挂载目录
mount /dev/sdb1 /newdisk
取消挂载:
umount 设备名称 或者 挂载目录
umount /dev/sdb1 或者 umount /newdisk
注意: 用命令行挂载,重启后会失效
7.虚拟机增加硬盘步骤 5-永久挂载
永久挂载: 通过修改/etc/fstab 实现挂载
添加完成后 执行 mount –a 即刻生效
#进入编辑文件
vim /etc/fstab
#添加挂载
UUID=7b1bcf5c-bc25-409b-aea4-6275e27dddd1 / ext4 defaults 1 1
UUID=9e149406-c186-4363-9703-5a8f5a069a14 /boot ext4 defaults 1 2
UUID=c46bb54c-48c2-4d6e-aeaf-08bc8577adda swap swap defaults 0 0
#执行mount -a立即生效
mount -a
3.磁盘情况查询
1.查询系统整体磁盘使用情况
基本语法
df -h
应用实例
查询系统整体磁盘使用情况
[root@llp /]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 17G 5.8G 10G 37% /
devtmpfs 976M 0 976M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 11M 981M 2% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda1 976M 133M 776M 15% /boot
#共享文件夹所在区
.host:/ 466G 75G 392G 16% /mnt/hgfs
tmpfs 199M 12K 199M 1% /run/user/42
tmpfs 199M 0 199M 0% /run/user/0
2.查询指定目录的磁盘占用情况
基本语法
du -h
查询指定目录的磁盘占用情况,默认为当前目录
[root@llp home]# cd bbb/
[root@llp bbb]# du -h
3.5M .
-s 指定目录占用大小汇总
[root@llp bbb]# du -s
3564 .
-h 带计量单位
[root@llp home]# cd bbb/
[root@llp bbb]# du -h
3.5M .
-a 含文件
[root@llp bbb]# du -a
0 ./hello.txt
3560 ./杂文.txt
0 ./hello2.txt
3564 .
--max-depth=1 子目录深度
[root@llp bbb]# du --max-depth=1
3564 .
-c 列出明细的同时,增加汇总值
[root@llp bbb]# du -c
3564 .
3564 总用量
应用实例
查询 /opt 目录的磁盘占用情况,深度为 1
[root@llp opt]# du -h --max-depth=1 /opt/
163M /opt/vmware-tools-distrib
5.2M /opt/tmp2
3.7M /opt/tmp
4.0K /opt/rh
225M /opt/
3.磁盘情况-工作实用指令
1.统计/opt 文件夹下文件的个数
ls -l /opt | grep "^-" | wc -l
[root@llp opt]# ll
总用量 55128
drwxr-xr-x. 2 root root 4096 10月 31 2018 rh
drwxr-xr-x. 3 root root 4096 8月 28 16:58 tmp
drwxr-xr-x. 3 root root 4096 8月 28 17:08 tmp2
-rw-r--r--. 1 root root 56431201 6月 13 2019 VMwareTools-10.3.10-13959562.tar.gz
drwxr-xr-x. 9 root root 4096 6月 13 2019 vmware-tools-distrib
#筛选出已 "-" 开头的 wc -统计文件个数
[root@llp opt]# ls -l /opt | grep "^-" | wc -l
1
2.统计/opt 文件夹下目录的个数
ls -l /opt | grep "^d" | wc -l
[root@llp opt]# ls -l /opt | grep "^d" | wc -l
4
3.统计/opt 文件夹下文件的个数,包括子文件夹里的
ls -lR /opt | grep "^-" | wc -l
[root@llp opt]# ls -lR /opt | grep "^-" | wc -l
1559
4.统计/opt 文件夹下目录的个数,包括子文件夹里的
ls -lR /opt | grep "^d" | wc -l
[root@llp opt]# ls -lR /opt | grep "^d" | wc -l
516
5.以树状显示目录结构 tree 目录 , 注意,如果没有 tree ,则使用 yum install tree 安装
[root@llp bbb]# tree /home/bbb/
/home/bbb/
├── hello2.txt
├── hello.txt
└── \346\235\202\346\226\207.txt
0 directories, 3 files