【Linux系列教程】硬盘的管理
一、添加硬盘
1.虚拟机添加硬盘
二、创建磁盘分区
我们可以使用命令,查看我们刚刚添加的新硬盘
1.查看硬盘
# lsblk
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 476M 0 part /boot
└─sda2 8:2 0 19.5G 0 part
├─centos-root 253:0 0 17.5G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 8G 0 disk #我们刚刚添加的硬盘,默认命名为sdb
sr0 11:0 1 4.4G 0 rom
2. fdisk -l查看当前系统硬盘
# fdisk -l
[root@localhost ~]# fdisk -l
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009d66b
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 976895 487424 83 Linux
/dev/sda2 976896 41943039 20483072 8e Linux LVM
磁盘 /dev/sdb:8589 MB, 8589934592 字节,16777216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-root:18.8 GB, 18824036352 字节,36765696 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
三、fdisk磁盘管理工具
1.常用参数
- n 新建分区
- d 删除分区
- p 查看分区
- w 保存退出
- q 强制退出
2.使用方法
# fdisk 硬盘名称
[root@localhost ~]# fdisk /dev/sdb #当前你要编辑的硬盘设备,默认在dev目录下
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x617b717f 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):
3.创建一个主分区
具体要求如下:
主分区 2G ext4 /web/nginx
逻辑分区 3G ext4 /web/httpd
逻辑分区 3G xfs /web/mysql
命令(输入 m 获取帮助):n #创建一个新分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p #选择主分区
分区号 (1-4,默认 1):1 #默认即可
起始 扇区 (2048-16777215,默认为 2048): #默认即可
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-16777215,默认为 16777215):+2G #主分区划分的大小
分区 1 已设置为 Linux 类型,大小设为 2 GiB
4.创建拓展分区
命令(输入 m 获取帮助):n #新建一个分区
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e #选择拓展分区
分区号 (2-4,默认 2): #默认即可
起始 扇区 (4196352-16777215,默认为 4196352): #默认即可
将使用默认值 4196352
Last 扇区, +扇区 or +size{K,M,G} (4196352-16777215,默认为 16777215): #默认即可
将使用默认值 16777215
分区 2 已设置为 Extended 类型,大小设为 6 GiB
命令(输入 m 获取帮助):
5.创建逻辑分区
命令(输入 m 获取帮助):n #新建分区
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l #选择逻辑分区,只有先创建拓展分区才可以创建逻辑分区
添加逻辑分区 5
起始 扇区 (4198400-16777215,默认为 4198400):
将使用默认值 4198400
Last 扇区, +扇区 or +size{K,M,G} (4198400-16777215,默认为 16777215):+3G #创建一个3G的逻辑分区
分区 5 已设置为 Linux 类型,大小设为 3 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l
添加逻辑分区 6
起始 扇区 (10491904-16777215,默认为 10491904):
将使用默认值 10491904
Last 扇区, +扇区 or +size{K,M,G} (10491904-16777215,默认为 16777215): #把剩下的容量都给第二个逻辑分区
将使用默认值 16777215
分区 6 已设置为 Linux 类型,大小设为 3 GiB
6.查看
命令(输入 m 获取帮助):p #可以使用p参数查看当前硬盘情况
磁盘 /dev/sdb:8589 MB, 8589934592 字节,16777216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x617b717f
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux #主分区大小2G
/dev/sdb2 4196352 16777215 6290432 5 Extended #拓展分区大小6G
/dev/sdb5 4198400 10489855 3145728 83 Linux #逻辑分区大小3G
/dev/sdb6 10491904 16777215 3142656 83 Linux #逻辑分区大小3G
删除(拓展)不用执行
命令(输入 m 获取帮助):d #删除操作
分区号 (1,2,5,6,默认 6):5 #选择第5号分区
分区 5 已删除
命令(输入 m 获取帮助):p
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 16777215 6290432 5 Extended
/dev/sdb5 10491904 16777215 3142656 83 Linux #这里只剩下分区6了
退出(不用执行)
命令(输入 m 获取帮助):q
[root@localhost ~]#
7.保存分区
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
8.让内核识别硬盘上的分区变化 (重要)
[root@localhost ~]# partprobe /dev/sdb
9.查看分区
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 476M 0 part /boot
└─sda2 8:2 0 19.5G 0 part
├─centos-root 253:0 0 17.5G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 8G 0 disk
├─sdb1 8:17 0 2G 0 part
├─sdb2 8:18 0 1K 0 part
├─sdb5 8:21 0 3G 0 part
└─sdb6 8:22 0 3G 0 part
sr0 11:0 1 4.4G 0 rom
10.创建文件系统(格式化)
[root@localhost ~]# mkfs -t ext4 /dev/sdb1
[root@localhost ~]# mkfs -t ext4 /dev/sdb5
[root@localhost ~]# mkfs -t xfs /dev/sdb6
11.挂载
[root@localhost ~]# mkdir -p /web/{nginx,httpd,mysql}
[root@localhost ~]# mount /dev/sdb1 /web/nginx
[root@localhost ~]# mount /dev/sdb5 /web/httpd
[root@localhost ~]# mount /dev/sdb6 /web/mysql
12.查看挂载情况
[root@localhost ~]# df -Th | grep "sdb" #查看挂载情况
/dev/sdb1 ext4 2.0G 6.0M 1.8G 1% /web/nginx
/dev/sdb5 ext4 2.9G 9.0M 2.8G 1% /web/httpd
/dev/sdb6 xfs 3.0G 33M 3.0G 2% /web/mysql
[root@localhost ~]# lsblk #这个命令同样可以查看挂载情况
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 476M 0 part
└─sda2 8:2 0 19.5G 0 part
├─centos-root 253:0 0 17.5G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 8G 0 disk
├─sdb1 8:17 0 2G 0 part /web/nginx
├─sdb2 8:18 0 1K 0 part
├─sdb5 8:21 0 3G 0 part /web/httpd
└─sdb6 8:22 0 3G 0 part /web/mysql
sr0 11:0 1 4.4G 0 rom
取消挂载(拓展)不用执行
[root@localhost ~]# umount /dev/sdb1 /web/nginx
[root@localhost ~]# umount /dev/sdb5 /web/httpd
[root@localhost ~]# umount /dev/sdb6 /web/mysql
13.永久挂载
查看分区的UUID
[root@localhost ~]# blkid /dev/sdb6
/dev/sdb6: UUID="edefd51c-6f21-42a0-9ea3-a84fa7ced7cc" TYPE="xfs"
a.实现永久挂载
[root@localhost ~]# vim /etc/fstab
/dev/sdb1 /web/nginx ext4 defaults 0 0
/dev/sdb5 /web/httpd ext4 defaults 0 0
UUID=edefd51c-6f21-42a0-9ea3-a84fa7ced7cc /web/mysql xfs defaults 0 0
[root@localhost ~]# mount -a #挂载所有
[root@localhost ~]# lsblk | grep "sdb" #查看挂载情况
sdb 8:16 0 8G 0 disk
├─sdb1 8:17 0 2G 0 part /web/nginx
├─sdb2 8:18 0 1K 0 part
├─sdb5 8:21 0 3G 0 part /web/httpd
└─sdb6 8:22 0 3G 0 part /web/mysql
四、查看磁盘使用情况
[root@localhost ~]# df -hT | grep -v "tmpfs"
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 18G 5.6G 12G 32% /
/dev/sdb6 xfs 3.0G 33M 3.0G 2% /web/mysql
/dev/sdb1 ext4 2.0G 6.0M 1.8G 1% /web/nginx
/dev/sdb5 ext4 2.9G 9.0M 2.8G 1% /web/httpd
/dev/sda1 xfs 473M 177M 297M 38% /boot
五、inode i节点
- 限制磁盘存储数据的因素
- 容量
- inode
- 文件数量
1.查看磁盘容量
[root@localhost ~]# df -hT /dev/sdb1
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sdb1 ext4 477M 2.3M 445M 1% /web/httpd
2.查看磁盘inode
[root@localhost ~]# df -i /dev/sdb1
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sdb1 128016 21 127995 1% /web/httpd #当12W多的文件创建满以后,即使磁盘还有剩余容量,也无法继续创建文件
3.inode作用
- 存储文件的元数据metadata信息
- 文件的存储
- 真实的数据
- 数据块
- 元数据信息
- inode
- 真实的数据
用于限制磁盘创建文件数量
4.查看元数据
[root@localhost ~]# stat /etc/fstab
文件:"/etc/fstab"
大小:615 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:18354730 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:system_u:object_r:etc_t:s0
最近访问:2022-07-14 15:14:58.014971698 +0800
最近更改:2022-07-14 15:14:57.906971702 +0800
最近改动:2022-07-14 15:14:57.906971702 +0800
创建时间:-