今天遇到一个问题,算是比较严重的把。就是要把当前系统转移到 LVM 卷里面去,下面有一些发生过程介绍。
不感兴趣可以直接跳过,看实战部分《如何迁移系统至LVM卷》
朋友今天突然找我,说是要把系统的根分区磁盘扩大。接到这个问题,我马上开始查看下系统情况。是一台 CentOS 6.6 的系统,有俩块磁盘分别 vda1 是 15G 根,vda2 的 1G swap ,总大小是 21G 的一块 vda !现在要求去增大 vda1 分区。 后面我给朋友三个方案:
朋友选择了最后一种,我用了很多种办法。网上说推荐是dd再是tar最后尝试cpio、backup、dump,然后我没办法用了最后一种发现效果远远高于dd。 本次教程也是从头再试验一遍,并且记录好便己便人。 警告:本文思路仅供参考!应该根据你的实际情况予以调整。如果在生产服务器上进行,请务必做好整个系统的全盘备份。操作不慎,有可能导致整个系统数据的丢失!本文作者及本站不对任何可能出现的风险承担任何责任。 |
一、预备知识:
1、了解,什么是dd以及什么是dump?
2、尝试,备份的需要如何恢复?
/dev/sdb1
的容量大于 /dev/sda1,且/dev/sdb1应为LVM卷
)我用虚拟机模拟了服务器的真实情况:/dev/sda1
是正常系统启动分区、/dev/sdb1
是新的磁盘分区。
步骤一、用dump备份整个根分区,使用restore恢复。
步骤二、更改备份好的系统fstab文件以及更改boot下引导文件。
小窍门:Linux自带的光盘一般都会急救的功能,善于利用!
二、环境模拟:
虚拟机设置及分区情况:
这里有两种情况:一个是某分区,一个是新磁盘。两者类似,为了方便本文使用的是新磁盘的方式。
三、实战部分:
I、创建LVM卷
1、首先要确保系统是安装lvm组件的,可以使用rpm -qa查询信息
/dev/sdb1
,然后在其上用 pvcreate
创建物理卷和 vgcreate
创建卷组 vgtestpvcreate /dev/sdb1
vgcreate vgtest /dev/sdb1
lvcreate -L 25G -n lvtest vgtest
mkfs.ext4 /dev/mapper/vgtest-lvtest
II、备份MBR引导文件。
dd if=/dev/sda1 of=/mnt/grub/mbr.bin bs=512 count=1
III、备份 / 目录和 /boot 目录
1、备份 / 目录。在 dump
命令前后输入的 date
命令是为了查看备份使用的时长。
date && dump -0f /mnt/lvm/rootfs-20160824.bak / && date
2、为了安全引导我们也备份一下 /boot
目录:
date && dump -0f /mnt/grub/boot-20160824.bak /boot && date
IV、尝试恢复
1、还原 dump 的备份文件(/boot分区默认已包括在/分区)
date && restore -rf rootfs-20160824.bak && date
注意:这里boot文件需要更改成实际要启动的磁盘。
dd if=/mnt/grub/mbr.bin of=/dev/sdb2
注意:这里使用dd命令恢复了之前备份的MBR文件。
VI、启动文件
注意:这里为了体现是chroot的,将主机名改成了NEW。一定要chroot进入目录查看是否能启动!并且确定防火墙SELinux的设置,最最最重要的OPENSSH要打开的!
1、首先通过 blkid
查看分区的 UUID:
2、然后同步修改 /etc/fstab
文件以及切换了跟分区之后将变成的 /etc/fstab
中的根分区指向:
3、重启生效
注意:这里我重启了一下,同时可以看出我的fstab是ok的并且都生效了。
输入:root (hd1,0)
输入:setup (hd1)
再次输入:quit
备注:如果通过上面的操作还是无法正常进入系统,可以尝试进入DVD急救模式尝试其他。