跳转至

CentOS系统磁盘基本操作

磁盘分区常用的工具和操作

操作步骤:
fdisk /dev/sdb
---t,--选择文件系统,选83即可;
---w,--保存、执行上述命令;
---partprobe 或reboot 重载分区表;
pvcreate /dev/sdb1 vgcreate -s 128M vg_data /dev/sdb1
//vgdisplay -v vg_data
lvcreate -l 100%FREE -n lv_data vg_data
mkfs.ext4 /dev/vg_data/lv_data

mount /dev/vg_data/lv_data /opt ext4 defaults 0 0

lsblk: 查看块设备的大小和挂载情况;
lsblk -f: 查看磁盘的文件系统格式;
df -h: 查看当前已挂载的设备情况;
blkid: 查看当前已格式化分区的UUID;
fdisk -l: 查看当前系统的所有设备分区情况;
fdisk /dev/sdb: 对当前磁盘sdc进行操作;

lvm常用的操作命令和过程

pvcreate /dev/sdb1
vgcreate vg_data /dev/sdb1
lvcreate -n lv_data -l 100%free vg_data
mkfs.xfs /dev/vg_data/lv_data
mount /dev/vg_data/lv_data /opt
echo -e "/dev/vg_data/lv_data\t/opt\t\t\txfs\tdefaults\t0 0" >> /etc/fstab
umount /opt
mount -a
lsblk -i

根目录空间不足的操作

根目录空间不足的操作:

pvcreate /dev/sda4
vgextend ao /dev/sda4
lvextend -l +100%FREE /dev/ao/root
xfs_growfs /dev/ao/root

01.使用fdisk工具进行磁盘分区操作
将整个磁盘格式化为一个分区

假设新加入的磁盘为sdb,完整识别符号为/dev/sdb

  1. 显示sdb磁盘信息: fdisk -l /dev/sdb

  2. 创建新分区sdb1:

    • 选n: --创建新分区;
    • 选p:--新分区设为主分区;
    • 选1: --设置分区号,新磁盘的第一个分区默认为1;
    • 输入分区开始的扇区号: 用默认即可;
    • 输入分区终止的扇区号: 用默认即可;git
    • 输入t,--选择文件系统,选83即可;
    • 输入w,--保存、执行上述命令;
    • 输入partprobe 或reboot 重载分区表;

    执行成功后,可以使用fdisk -l 或lsblk 查看/dev/sdb1分区被成功创建;

    注:分区号,起止扇区号用默认值时(直接回车),即可将这个sdb盘创建成一个sdb1分区; 注: 分区空间大小,可以用 +80G 分式指定一个80G的分区;
    注;分区格式为83:Linux,为8e:Linux LVM;如果使用LVM,建议指定为8e;

从磁盘中尚未划分的空间中创建磁盘分区

操作基本与上面的:将这个磁盘格式化为一个分区一致;需要注意分区号不要选已有的分区号即可;

02.创建LVM
创建物理卷PV

pvcreate /dev/sdb1 ;将分区创建为物理卷

查看物理卷是否创建成功:
pvs、pvscan、pvdisplay 三个命令都可以;

创建VG

第一次创建VG时,需要指定一个(或多个)PV来创建VG:
vgcreate -s 128Mvg_data /dev/sdb1 ;指定一个pv,vg名称为:vg_data;
vgcreate -s 128Mvg_data /dev/sdb1 /dev/sdb2 ;指定2个pv,vg名称为vg_data;

将pv加入现有的一个vg:
vgextend vg_data /dev/sdc1 ;将设备/dev/sdc1加入到卷组vg_data中;

对应的将一个pv从vg中移除的操作为:
vgreduce vg_data /dev/sdc1

使用vgs、vgdisplay 配合pvs,pvdisplay查看操作结果;

vgdisplay vg_data 可以发现PE SIZE 为128MiB,如果不指定,默认为4MiB;

创建LV

使用lvcreate从卷组中划分空间创建逻辑卷,常用参数:
-n 指定名称;
-L 指定逻辑卷大小,单位为M、G、T等;
-l 指定PE数目; lvcreate -n lv_data -L 80G vg_data;
lvcreate -n lv_data -l 50%free vg_data; lvcreate -n lv_data -l 799 vg_data;

注:使用-l参数前,使用vgdisplay vg_data 查看可用PE的个数;

对应的删除操作指令为lvremove:
lvremove /dev/vg_data/lv_data

03.分区格式化
格式化磁盘分区sdb1
  1. 查看新创建的分区:
    lblk: 应该没有挂载点MOUNTPOINT;
    lsblk -f: 没有文件类型FSTYPE;
    注:使用 lsblk -f /dev/sdb1 更直接;

  2. 创建文件系统,用参数t指定文件系统类型:
    mkfs -t xfs /dev/sdb1

根据需要也可以格式化成其他的文件系统:
mkfs -t ext4 /dev/sdb1
该指令可以简写为:
mkfs.ext4 /dev/sdb1

如果需要更改分区的文件系统格式,请确保分区没有挂载,已挂载的先卸下挂载点;
umount /dev/sdb1
重新指定文件系统格式,执行mkfs指令即可;

注:使用lsblk -f /dev/sdb1查看,此时/dev/sdb1已有文件系统类型和UUID了;

  1. 创建临时挂载点:
    mount /dev/sdb1 /opt 此时使用 lsblk -f /dev/sdb1 查看,可以发现已有挂载点信息;

注: 卸下分区挂载操作为: umount /dev/sdb1

格式化LV分区
  1. 查看新创建的分区:
    lblk: 应该没有挂载点MOUNTPOINT;
    lsblk -f: 没有文件类型FSTYPE;
    注:使用 lsblk -f /dev/sdb1 更直接;

  2. 创建文件系统,用参数t指定文件系统类型:
    mkfs.ext4 /dev/vg_data/lv_data

  3. 创建临时挂载点:
    mount /dev/vg_data/lv_data /opt

此时,使用lsblk -f /dev/vg_data/lv_data是,应该能获取到文件系统格式:ext4、UUID、MOUNTPOINT等信息;

04.磁盘挂载

挂载分区的格式:file system--mount point--type--options--dump--pass

方式1:开机自动挂载

编辑/etc/fstab 文件信息,添加开机自动挂载的磁盘信息:

挂载已格式化的磁盘分区:
/dev/sdb1 /mountpoint1 ext4 defaults 0 0

挂载已格式化的lv磁盘:
/dev/vg_data/lv_data /mountpoint2 ext4 defaults 0 0

方式2:使用UUID挂载

假设所操作的磁盘为lv_data:

  • 使用blkid命令查看磁盘的uuid:
  • 将uuid信息导入到/etc/fstab文件末尾中:
    blkid | grep "lv_data" >> /etc/fstab
    注意,重定向符号一定为>>, 不能输入错误为>,否则会清空原有条目信息;

  • 编辑/etc/fstab文件,参照root分区完善其他挂载信息:
    注:root分区文件系统为xfs,你所挂载的文件系统可能是ext4;

方式3:手动挂载

挂载已格式化的磁盘分区:
mount /dev/sdb1 /mountpoint1

挂载已格式化的lv磁盘:
mount /dev/vg_data/lv_data /mountpoint2

对应的卸载操作为:
umount /dev/sdb1
umount /dev/vg_data/lv_data

2T以上磁盘做LVM

使用parted工具代替fdisk工具进行磁盘分区;

对/dev/sdb 进行parted分区,注意磁盘一定要正确!!!

parted /dev/sdb (parted) mklabel gpt ;将MBR磁盘格式化为GPT
(parted) mkpart primary 0% 100% ;指定分区类型为主分区primary,分区开始为0%,结束为100%;

(parted) p ;打印查看分区结果

(parted) quit ;退出parted 工具 lsblk 查看分区情况;

其他pvcreate,vgcreate,lvcreate,mkfs,mount 等操作参见前面的帮助;

LVM动态扩容

使用df -h 或df -Th 查看磁盘的使用率和可用的磁盘空间;

如某一目录空间不足,应查看该目录(比如/opt)所在的磁盘:
df /opt

如果需要扩容的lv磁盘,所在的vg有可用的剩余空间,可以使用lvextend命令给lv扩展空间:

使用lsblk或者lvs查看lv所在的vg卷组;

使用vgdisplay查看所在卷组的可用的空间:
vgdisplay vg_data ; 查看Free PE/Size 是否有足够的空间

如果卷组有足够的空间,使用lvextend 直接扩展lv:
lvextend -L +5G /dev/vg_data/lv_data

如果vg没有可用空间,需先添加pv,然后将pv扩展到vg中:
vgextend vg_data /dev/sdc1
其中vg_data为要扩展的卷组;/dev/sdc1为新加入的pv;

扩展文件系统:
查看原有文件系统格式,如果为xfs:
xfs_growfs /dev/vg_data/lv_data

如为ext4等: resize2fs /dev/vg_data/lv_data

上述可以完成根分区\和其他文件系统的的扩容;

使用lvm扩容swap分区
准备扩展用的空间

查看swap分区所在卷组信息:
lvs
可以看到所在卷组为centos,原有大小lzise<7,88g;

使用pvs查看剩余空间情况:
发现vg_data 有3个pv,只有两个pv被使用,/dev/sdc1虽然加入vg_data 但是未被lv分配使用;

先将未用的pv从vg中移除:
vgreduce vg_data /dev/sdc1
如果vg没有剩余空间,可以新加sdc盘,创建sdc1分区;

将/dev/sdc1加入到centos卷组中; vgextend centos /dev/sdc1

使用vgs可以查看sdc1空间已变成centos卷组的剩余空间vFree;

取消swap分区挂载

swapoff /dev/mapper/centos-swap
注,可以使用cat /etc/fstab 查看swap分区挂载情况

执行free -h 操作

检查swap分区

e2fsck -f /dev/mapper/centos-swap

扩容swap分区

lvextend -L +8G /dev/mapper/centos-swap
使用lvs 查看扩展成功与否

格式化swap分区为swap格式

mkswap /dev/mapper/centos-swap

挂载swap分区

swapon /dev/mapper/centos-swap

检查swap分区大小

free -h