磁盘空间管理
添加一块新的60G的磁盘(硬盘)
查看当前系统是否识别新的硬盘:lsblk
[root@localhost ~]# 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 18G 0 lvm /
└─centos-swap 253:1 0 1G 0 lvm [SWAP]
sdb 8:16 0 60G 0 disk
sr0 11:0 1 4.4G 0 rom
磁盘管理的一些内容
磁盘结构及概念
磁盘空间管理
识别硬盘 => 分区规划 => 格式化 => 挂载使用
· 扇区 : 每个扇区默认大小512字节
-
识别硬盘
查看当前系统是否识别新的硬盘命令 :lsblk
-
分区规划 60G
分区模式 : MBR 与 GPT , 不能出现在一个硬盘上
MBR / msdos分区模式
- 分区类类型 : 主分区 、扩展分区 、 逻辑分区
- 最多只能有4个主分区
- 扩展分区最多只能有一个
- 3个主分区 + 1个扩展分区(n个逻辑分区)
- 最大支持容量为2.2TB的磁盘
- 扩展分区不能格式化,不能存储数据,只是为了产生逻辑分区
使用fdisk分区工具
查看分区表
fdisk -l /dev/sda
修改硬盘的分区表
fdisk 硬盘设备
常用的交互指令:
m 列出指令帮助
p 查看现有的分区表
n 新建分区
d 删除分区
q 放弃更改并退出
w 保存更改并退出
分两个主分区,一个为1G,一个为2G
fdisk /dev/sdb
n 创建新的分区---->分区类型 回车---->分区编号 回车---->起始扇区 回车---->在last结束时 + 1G
p 查看分区表
n 创建新的分区---->分区类型 回车----->分区编号 回车----->其实扇区 回车---->在last结束时 + 2G
w 保存并退出
分区步骤
[root@localhost ~] fdisk /dev/sdb 修改硬盘分区表
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x81e78189.
Command (m for help): m 输入m查看分区表帮助信息
Command action
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)
Command (m for help): n 输入n创建一个新的分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): 直接回车,默认为创建一个主分区(p)
Using default response p
Partition number (1-4, default 1): 直接回车,默认分区编号为1
First sector (2048-125829119, default 2048): 直接回车,默认起始扇区为2048开始(扇区1-2048这部分空间是默认存放分区表的)
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-125829119, default 125829119): +1G 输入+1G后分好区之后输入w保存退出
Partition 1 of type Linux and of size 1 GiB is set
Command (m for help): p 查看分区表
Disk /dev/sdb: 64.4 GB, 64424509440 bytes, 125829120 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x81e78189
Device Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
分区完成后
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 18G 0 lvm /
└─centos-swap 253:1 0 1G 0 lvm [SWAP]
sdb 8:16 0 60G 0 disk
├─sdb1 8:17 0 1G 0 part
└─sdb2 8:18 0 2G 0 part
sr0 11:0 1 4.4G 0 rom
ls /dev/sdb[1-2] # 查看sdb划分好的分区1和分区2
# /dev/sdb1 /dev/sdb2
分区格式化
格式化 : 赋予空间文件系统的过程
文件系统 : 存放数据的规则
windows 默认的文件系统 : NTFS FAT(兼容性最强)
Linux 默认文件系统 : ext4(RHEL6) xfs(RHEL7)
RHEL7系列 : ext4和xfs都是支持的
RHEL6系列 : 只支持ext4
mkfs. 查看当前系统支持格式化的文件系统(按两次tab键)
# mkfs.btrfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.minix mkfs.xfs
mkfs.ext4 /dev/sdb1 格式化ext4文件系统
blkid /dev/sdb1 查看一个分区文件系统类型
# /dev/sdb1: UUID="2c425d6c-8ff3-4326-89eb-c5cb5ca2e220" TYPE="ext4"
mkfs.xfs /dev/sdb2 格式化xfs文件系统
blkid /dev/sdb2 查看一个分区文件系统类型
# /dev/sdb2: UUID="62021d1b-2977-4f26-ab05-5fbeea18fe4a" TYPE="xfs"
注意: 一个文件系统尽量不要重复的格式化,重复格式化会影响分区以及硬盘的读写速度,
如果硬盘里面有数据的话,重复格式化会清空硬盘里面所有的数据。
分区的挂载
分区的挂载使用
mkdir /mypart1
mount /dev/sdb1 /mypart1
df -h 查看正在挂载使用的设备信息
mkdir /mypart2
mount /dev/sdb2 /mypart2
df -h 查看正在挂载使用的设备信息
查看设备的UUID
blkid 查看设备的UUID
# /dev/sr0: UUID="2020-11-04-11-36-43-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
# /dev/sda1: UUID="694a6455-6ef3-4958-8899-168162e58ee7" TYPE="xfs"
......
开机自动挂载MBR分区模式
- 配置文件
/etc/fstab
的记录格式
设备路径 挂载点 类型 参数 备份标记 检测顺序
/dev/sdb1 /mypart1 ext4 defaults 0 0
# defaults:ACL,SUID,SGID,rw... 默认参数
# 备份标记有0也有1,0代表不备份,1代表备份
# 检测标记有0也有1,0代表不检测,1代表检测(检测硬盘和扇区有无损坏,检测会增加开机的时间)
umount /mypart1 卸载手动挂载
umount /mypart2 卸载手动挂载
vim /etc/fstab 写入配置文件信息
/dev/sdb1 /mypart1 ext4 defaults 0 0
/dev/sdb2 /mypart2 xfs defaults 0 0
验证挂载是否成功
mount -a
# 检测/etc/fstab开机自动挂载配置文件,格式是否正确
# 检测/etc/fstab中,书写完成,但当前没有挂载的设备,进行挂载
df -h | grep sdb
开机自动挂载配置文件书写有误修复方法
- 输入root的密码,密码不显示
- 进入vim编辑器修改/etc/fstab配置文件内容
- 把配置文件内容更改正确重新重启
总结思路
1. 识别硬盘 lsblk
2. 分区规划 fdisk MBR分区
3. 格式化文件系统 mkfs.ext4
4. 挂载使用 mount
5. 开机自动挂载 /etc/fstab 、 mount -a 、 df -h
MBR模式 综合分区
创建第三个主分区,创建最后一个扩展分区,将扩展分区里划分三个2G的逻辑分区
p 查看分区表
n 创建新的分区---->回车---->回车---->回车---->在last结束时 + 2G
p 查看分区表
n 创建新的分区---->回车----->起始回车---->结束回车 将所有空间给扩展分区
扩展分区
p查看分区表
n 创建逻辑分区---->起始回车----->结束+2G
n 创建逻辑分区---->起始回车----->结束+2G
n 创建逻辑分区---->起始回车----->结束+2G
p查看分区表
w 保存并退出
partprobe 刷新分区表
# Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0 has been opened read-only.
lsblk 查看当前系统是否识别新的硬盘
GPT分区模式
添加一块80G的硬盘(硬盘)
查看当前系统是否识别新的硬盘:lsblk
[root@localhost ~]# 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 18G 0 lvm /
└─centos-swap 253:1 0 1G 0 lvm [SWAP]
sdb 8:16 0 60G 0 disk
├─sdb1 8:17 0 1G 0 part /mypart1
├─sdb2 8:18 0 2G 0 part /mypart2
├─sdb3 8:19 0 2G 0 part
├─sdb4 8:20 0 1K 0 part
├─sdb5 8:21 0 2G 0 part
├─sdb6 8:22 0 2G 0 part
└─sdb7 8:23 0 2G 0 part
sdc 8:32 0 80G 0 disk
sr0 11:0 1 4.4G 0 rom
GPT 分区模式
· GPT,GUID Partirion Table
- 全局唯一标识分区表
- 突破固定大小64字节的分区表限制
- 最多可支持128个主分区,最大支持18EB磁盘
- 1EB = 1024PB = 1024 ✖ 1024 TB
parted 常用GPT分区模式指令
parted /dev/sdc 分区模式命令
# GNU Parted 3.1
# Using /dev/sdc
# Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mktable gpt 指定分区模式
(parted) print 输入分区表信息
# Model: VMware, VMware Virtual S (scsi)
# Disk /dev/sdc: 85.9GB
# Sector size (logical/physical): 512B/512B
# Partition Table: gpt
#Disk Flags:
# Number Start End Size File system Name Flags
(parted) mkpart 划分新的分区
Partition name? []? dudu 输入分区表的名字
File system type? [ext2]? ext4 将来的文件系统类型(随便什么写类型都可以)
Start? 0 起始位置
End? 2G 结束位置
# Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore 忽略
(parted) unit GB 使用GB作为单位
(parted) print 查看分区信息
# Model: VMware, VMware Virtual S (scsi)
# Disk /dev/sdc: 85.9GB
# Sector size (logical/physical): 512B/512B
# Partition Table: gpt
# Disk Flags:
# Number Start End Size File system Name Flags
# 1 0.00GB 2.00GB 2.00GB dudu
(parted) mkpart
Partition name? []? haha
File system type? [ext2]? 直接回车
Start? 2G 起始位置为2G
End? 10G 如果我们想分一个8G的分区,那么结束位置为10G(写成%的形式也可以)
(parted) unit GB
(parted) print
# Model: VMware, VMware Virtual S (scsi)
# Disk /dev/sdc: 85.9GB
# Sector size (logical/physical): 512B/512B
# Partition Table: gpt
# Disk Flags:
# Number Start End Size File system Name Flags
# 1 0.00GB 2.00GB 2.00GB dudu
# 2 2.00GB 10.0GB 8.00GB haha
(parted)quit 设置结束直接退出就完成修改了,GPT分区模式是直接在硬盘上进行修改的,不需要保存
# Information: You may need to update /etc/fstab.
交换空间(虚拟内存)
· 交换空间原理 : 利用硬盘的空间,充当内存
- 交换空间的作用 : 当物理内存即将占满时,如果有交换空间,计算机会自动将真实物理内存的一部分数据,暂时放入交换空间(虚拟内存),缓解物理内存不够用的情况,交换空间可以由无数个交换分区组成。
制作交换空间的方法
方式一 : 利用分区制作交换空间
ls /dev/sdc1 用/dev/sdc1这个分区制作交换空间
# /dev/sdc1
free -m 交换空间的信息(-m 单位M)
# total used free shared buff/cache available
# Mem:(内存信息) 1980 167 1711 9 101 1684
# Swap: 1023 0 1023
swapon 交换空间的成员信息
# NAME TYPE SIZE USED PRIO
# /dev/dm-1 partition 1024M 0B -2
mkswap /dev/sdc1 格式化交换文件系统
# Setting up swapspace version 1, size = 1953104 KiB
# no label, UUID=6b636f3b-1e16-4fa2-8f9b-2081f906c12c
blkid /dev/sdc1 查看文件系统类型
# /dev/sdc1: UUID="6b636f3b-1e16-4fa2-8f9b-2081f906c12c" TYPE="swap" PARTLABEL="dudu"
# PARTUUID="eda99341-2840-4f04-a0f4-d10f09b75374"
swapon /dev/sdc1 启用交换分区
swapon 交换空间的成员信息
# NAME TYPE SIZE USED PRIO
# /dev/dm-1 partition 1024M 0B -2
# /dev/sdc1 partition 1.9G 0B -3
free -m 交换空间的信息
# total used free shared buff/cache available
# Mem: 1980 168 1710 9 101 1682
# Swap: 2931 0 2931
开机自启动交换空间
vim /etc/fstab
/dev/sdc1 swap swap defaults 0 0 在开机自启动的配置文件内添加交换分区新成员/dev/sdc1
验证方法:
swapoff /dev/sdc1 停用交换空间
swapon 查看交换空间的成员信息
# NAME TYPE SIZE USED PRIO
# /dev/dm-1 partition 1024M 0B -2
swapon -a 检测交换分区书写
swapon 交换空间的成员信息
# NAME TYPE SIZE USED PRIO
# /dev/dm-1 partition 1024M 0B -2
# /dev/sdc1 partition 1.9G 0B -3
方式二 : 利用文件锁占用的空间,制作交换空间
1. 利用dd命令生成一个2G的文件
dd命令的使用:
dd if=源设备 of=目标设备 bs=块大小 count=块数
dd会一直将源设备的数据写入目标设备里面,可以用来生成一个大文件,可以用来备份数据
ls /dev/zero 设备/dev/zero一直在产生空数据
# /dev/zero
dd if=/dev/zero of=/opt/swap.txt bs=1M count=2048
# 2048+0 records in
# 2048+0 records out
# 2147483648 bytes (2.1 GB) copied, 16.6664 s, 129 MB/s(硬盘的读写速度)
du -sh /opt/swap.txt 查看/opt/swap.txt的文件的大小
# 2.0G /opt/swap.txt
利用文件创建交换分区同上一样
mkswap /opt/swap.txt 格式化交换文件系统
swapon /opt/swap.txt 启用交换分区
swapon 查看交换空间的成员信息
free -m 交换空间的信息
vim /etc/fstab
/opt/swap.txt swap swap defaults 0 0 在开机自启动的配置文件内添加交换分区新成员/opt/swap.txt