CentOS 合并分区:我一直在使用通过 VMware 的 vrealize 套件配置的 centos 7 虚拟机。我特别不喜欢的一件事是在 VM 配置期间存储磁盘如何被分区为小分区。
国内建站大多数还是选择宝塔面板,简单易用的特点。但是在使用的过程中我们发现,通常宝塔面板默认会把磁盘分两个区,留一个备份区。即使50G的空间,也会强行分10个G给备份。
这时候会遇到一个问题,就是网站所在的磁盘不够用。如何把一个分区删除,然后合并到需要扩展的那个分区呢?如下步骤:
$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 8.9M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/mapper/centos_dhcp--zzz--zzz--zzz--zz-root 6.0G 70M 6.0G 2% / /dev/mapper/centos_dhcp--zzz--zzz--zzz--zz-usr 6.0G 1.5G 4.6G 24% /usr /dev/sda1 1014M 232M 783M 23% /boot /dev/mapper/centos_dhcp--zzz--zzz--zzz--zz-data 61G 34M 61G 1% /data /dev/mapper/centos_dhcp--zzz--zzz--zzz--zz-usr_local 6.0G 33M 6.0G 1% /usr/local /dev/mapper/centos_dhcp--zzz--zzz--zzz--zz-home 10G 33M 10G 1% /home /dev/mapper/centos_dhcp--zzz--zzz--zzz--zz-var 6.0G 414M 5.6G 7% /var /dev/mapper/centos_dhcp--zzz--zzz--zzz--zz-tmp 2.0G 33M 2.0G 2% /tmp tmpfs 379M 0 379M 0% /run/user/1001
注意var
, data
, home
, tmp
, usr
, usr_local
, 和root
有自己的分区。我更喜欢有几个但很大的磁盘分区。所以,今天我想出了如何将两个或多个分区合并到根分区中。
第 1 步 — 确保您以 root 身份登录
第 2 步 — 从要合并到根分区的分区中备份数据
$ rsync -a /home/ /home-old/ $ rsync -a /tmp/ /tmp-old/ $ rsync -a /var/ /var-old/
第 3 步 — 将 VM 重新启动到紧急模式
$ systemctl emergency
第 4 步 — 卸载并删除每个分区的逻辑卷
$ umount /dev/mapper/centos_dhcp--zzz--zzz--zzz--zz-data $ umount /dev/mapper/centos_dhcp--zzz--zzz--zzz--zz-home $ umount /dev/mapper/centos_dhcp--zzz--zzz--zzz--zz-var $ umount /dev/mapper/centos_dhcp--zzz--zzz--zzz--zz-tmp
$ lvremove /dev/mapper/centos_dhcp--zzz--zzz--zzz--zz-data $ lvremove /dev/mapper/centos_dhcp--zzz--zzz--zzz--zz-home $ lvremove /dev/mapper/centos_dhcp--zzz--zzz--zzz--zz-var $ lvremove /dev/mapper/centos_dhcp--zzz--zzz--zzz--zz-tmp
第 5 步 — 复制备份的数据
$ rsync -a /home-old/ /home/ $ rsync -a /var-old/ /var/ $ rsync -a /tmp-old/ /tmp/
/etc/fstab
第 6 步 —通过删除或注释掉我们不需要的分区来编辑文件
$ vi /etc/fstab
步骤 7 — 扩展根分区以填充剩余空间
$ lvextend -l +100%FREE -r /dev/mapper/centos_dhcp--zzz--zzz--zzz--zz-root
步骤 8 — 删除备份
$ rm -rf /home-old/ /tmp-old/ /var-old/
步骤 9 — 重新启动系统
$ reboot
第 10 步 — 以普通用户或 root 用户身份登录 VM
让我们检查一下我们的/
根分区大小是否增加了:
$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 8.9M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/mapper/centos_dhcp--zzz--zzz--zzz--zz-root 85G 474M 85G 1% / /dev/mapper/centos_dhcp--zzz--zzz--zzz--zz-usr 6.0G 1.5G 4.6G 24% /usr /dev/sda1 1014M 232M 783M 23% /boot /dev/mapper/centos_dhcp--zzz--zzz--zzz--zz-usr_local 6.0G 33M 6.0G 1% /usr/local tmpfs 379M 0 379M 0% /run/user/1001
完!
实战截图如下:
实战命令如下:
[root@o-l-a ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 12G 0 12G 0% /dev
tmpfs 12G 256K 12G 1% /dev/shm
tmpfs 12G 539M 11G 5% /run
tmpfs 12G 0 12G 0% /sys/fs/cgroup
/dev/mapper/ocivolume-root 36G 35G 489M 99% /
/dev/mapper/ocivolume-oled 10G 2.9G 7.2G 29% /var/oled
/dev/sda2 1014M 514M 501M 51% /boot
/dev/sda1 100M 5.9M 94M 6% /boot/efi
tmpfs 2.3G 0 2.3G 0% /run/user/1003
tmpfs 2.3G 0 2.3G 0% /run/user/0
tmpfs 2.3G 0 2.3G 0% /run/user/987
[root@o-l-a ~]# systemctl emergency
[root@o-l-a ~]# umount /dev/mapper/ocivolume-oled
[root@o-l-a ~]# lvremove /dev/mapper/ocivolume-oled
Do you really want to remove active logical volume ocivolume/oled? [y/n]: y
Logical volume "oled" successfully removed.
[root@o-l-a ~]# vi /etc/fstab
[root@o-l-a ~]# lvextend -l +100%FREE -r /dev/mapper/ocivolume-root
Size of logical volume ocivolume/root changed from 35.47 GiB (9081 extents) to 45.47 GiB (11641 extents).
Logical volume ocivolume/root successfully resized.
meta-data=/dev/mapper/ocivolume-root isize=512 agcount=4, agsize=2324736 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=9298944, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=4540, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 9298944 to 11920384
[root@o-l-a ~]# reboot