将Linux系统转至LVM卷的方法

朋友今天突然找我,说是要把他的 Linux 系统的根分区磁盘扩大。接到这个问题,我马上开始查看下系统情况。是一台 CentOS 6.6 的系统,有两块磁盘分别是:/dev/vda1 是 15G 的根卷,/dev/vda2 是 1G 的交换分区,而整个 /dev/vda 磁盘总大小是 21G(有 5G  的 /dev/vda5 空闲空间)。现在要求增大/dev/vda1 分区。

有三个解决方案:

第一个就是将 /dev/vda 上的空闲分区(/dev/vda5)随意作为 /home、/var 之类的挂载;

第二个就是做符号链接到 /dev/vda1,5G 加上 15G 也勉强扩大了;

最后一种也就是最麻烦的,做一个 LVM,将数据迁移到 LVM、将 /dev/vda1 加入到 LVM,最后实现系统的扩容。

朋友选择了最后一种,后面测试数据备份我用了很多种办法,网上推荐了 dd 以及 tar,最后我还尝试了 cpio、backup、dump,然后发现最后一种 dump 的性能远远高于 dd。

本次教程也是从头再试验一遍,并且记录好便己便人。

兄弟连Linux培训

友情提示~本文思路仅供参考!应该根据你的实际情况予以调整。如果在生产服务器上进行,请务必做好整个系统的全盘备份。操作不慎,有可能导致整个系统数据的丢失!本文作者及本站不对任何可能出现的风险承担任何责任。

一、预备知识

了解什么是 dd 以及什么是 dump?

dd 命令用于复制一个设备/分区,原样输出到另外一个文件/设备/分区。

dump 命令用于备份 ext2 或者 ext3 文件系统。可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。

备份好了用什么恢复?

restore 命令是 dump 命令的逆过程,用于还原dump 命令生成的备份文件。

二、环境模拟

首先要求有一个可以正常启动的分区,然后要有剩余空间!(这里有两种情况:一个是某分区,一个是新磁盘。两者类似,为了方便本文使用的是新磁盘的方式。)

使用虚拟机模拟了服务器的真实情况:/dev/sda1 是正常系统启动分区、/dev/sdb1 是新的磁盘分区。(必须注意 /dev/sdb1 的容量大于/dev/sda1)

三、实战部分

1、首先备份 MBR 主引导记录

dd if=/dev/sda1 of=/mnt/lvm/mbr.bin bs=512count=1

2、创建 LVM 卷

首先卸载 /dev/sdb1,然后在其上用 pvcreate 创建物理卷和 vgcreate 创建卷组 vgtest:

umount /dev/sdb1

pvcreate /dev/sdb1

vgcreate vgtest /dev/sdb1

卷组创建好之后,可以用 vgs 命令查看卷组。

用 lvs 命令查看逻辑卷,这个时候我们还没有任何逻辑卷。开始创建逻辑卷和文件系统:

lvcreate -L 25G -n lvtest vgtest

mkfs.ext4 /dev/mapper/vgtest-lvtest

3、备份 / 目录和 /boot 目录

首先备份 / 目录。在 dump 命令前后输入的 date 命令是为了查看备份使用的时长。

date && dump -0f/mnt/lvm/rootfs-20160824.bak / && date

保险起见我们也备份一下/boot 目录:

date && dump -0f/mnt/lvm/boot-20160824.bak /boot && date

4、尝试恢复

restore -rf rootfs-20160828.bakboot-20160824.bak

5、修改启动文件

注意:这里根分区(启动分区)需要更改成实际要启动的磁盘。否则不更改的话系统会出现应该使用 /dev/sdb1 LVM ,却使用了原来的 /dev/sda1 的情况!

首先通过 blkid 查看分区的 UUID:

blkid

然后修改 /mnt/lvm/etc/fstab 文件(切换了跟分区之后将变成 /etc/fstab)中的根分区指向:

vim /mnt/lvm/etc/fstab

chroot 到新的分区里面,然后检查相应的分区设置。

chroot /mnt/lvm

注意:要 chroot 进入目录查看是否正确!并且确定防火墙 SELinux 等的设置,最最最重要的是 OpenSSH 要打开的!

6、恢复 MBR 主引导记录

dd if=./mbr.binof=/dev/mapper/vgtest-lvtest

7、修正 GRUB 引导

这样可以让新磁盘可以脱离源磁盘的引导。

chroot 进入新磁盘。并重建 /boot 目录:

chroot /mnt/lvm

ls /boot/

rm -rf /boot/*

yum install grub -y

然后输入:

root (hd1,0)

setup (hd1)

quit

这样就将 GRUB 引导指向了新的磁盘。

重启可以看看是否有问题。

P.S.参与活动就可以获得包邮的linux光盘教程一份哦:http://www.hdb.com/party/8f84u.htmll

时间: 2024-11-11 23:17:58

将Linux系统转至LVM卷的方法的相关文章

Linux系统实现虚拟内存有两种方法:交换分区(swap分区)和交换文件

Linux系统实现虚拟内存有两种方法:交换分区(swap分区)和交换文件 交换文件 查看内存:free -m , -m是显示单位为MB,-g单位GB 创建一个文件:touch /root/swapfile 使用dd命令,来创建大小为2G的文件swapfile: dd if=/dev/zero of=/root/swapfile bs=1M count=2048 //命令执行完需要等待一段时间 if表示input_file输入文件 of表示output_file输出文件 bs表示block_siz

linux自学之路·LVM卷

前言 做LVM跟md一样需要创建逻辑设备的模块叫做dm DM:逻辑设备Device Mapper 可以做RAID0  RAID1  LVM2 linear  mirror snapshot(快照)  multipath(多路径) 能够动态缩减和增加逻辑卷大小 LVM卷自下而上分为: PV物理卷 物理磁盘层:在物理卷中逻辑存储的空间块叫PE VG卷组 由很多PE组成 LV逻辑卷 LE逻辑盘区,PE转换而来 快照卷必须跟LV在一起 管理物理卷pv          物理卷可以做在RAID.分区.磁盘

Linux系统分区及LVM使用(一)

一.MBR分区 使用fdisk等分区工具,使用MBR(Master Boot Record)管理单个磁盘,这就决定了其分区表最多支持4个分区,分区类型包括主分区和扩展分区,逻辑分区可以被再次分割成多个逻辑分区. 标准 MBR 结构 地址 描述 长度             (字节) Hex Oct Dec 0000 0000 0 代码区 440             (最大 446) 01B8 0670 440 选用磁盘标志 4 01BC 0674 444 一般为空值; 0x0000 2 01

linux系统死机分析及解决方法

一.常见死机原因 二.日志分析 日志系统,通过rsyslog.service服务进行控制,分别用于记录系统内核和各应用程序的日志信息.配置文件/etc/rsyslog.conf /var/log/messages    记录系统内核消息及各种应用程序的公共日志信息,包括启动.IO错误.网络错误.程序报错等,对于未使用独立日志文件的应用程序或服务,一般都可以从该文件获得相关事件的日志记录信息. /var/log/cron    记录crond计划任务产生的事件消息 /var/log/dmesg  

linux系统上传下载文件的方法

linux系统上传.下载文件的方法有很多种,最常见的有ftp(需要安装ftp软件及配置),这里不做介绍, 下面介绍我常用的两种方式: 1.sftp方式(通过SecureCRT工具的ssh服务传输): 1.打开CRT工具自带的sftp(通过Alt+P命令打开),如图: 默认进入当前用户的家目录,可以自行cd命令切换到上传.下载的目录(windows操作文件系统需要在命令前加 l 参数,如lcd e:\到E盘根目录,lls列出根目录下的文件),上传通过put 加文件名,下载通过get 加文件名) 2

Linux系统中vi编辑器的使用方法入门

vi编辑器是Linux系统下标准的编辑器.而且不逊色于其他任何最新的编辑器.可是会用的有多少呢.下面介绍一下vi编辑器的简单用法和部分命令.让你在Linux系统中畅行无阻. 基本上vi可以分为三种状态,分别是命令模式(command mode).插入模式(Insert mode)和底行模式(last line mode). 1) 命令行模式command mode) 控制屏幕光标的移动,字符.字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode.  

让虚拟机中的Linux系统上Internet网的配置方法

 1.背景情况 在宿主主机可以上网的情况下,虚拟机中的操作系统一般由NAT模式与宿主主机通信, 默认情况下虚拟机是无法上internet网的.但是经过正确的配置,完全可以让Vmware中的虚拟Linux系统一样可以上网 2.配置方法 2.1.查看vmware上的NAT网络地址与网关地址 (1)网络地址查看与验证 点击"编辑"à"虚拟网络编辑器" 从上面看到NAT的网段是192.168.2.0 (2)查看NAT设置,获取NAT的网关地址 2.2虚拟机内系统配置 2

查看Linux系统版本信息的几种方法

一.查看Linux内核版本命令(两种方法): 1.cat /proc/version 2.uname -a 二.查看Linux系统版本的命令(3种方法): 1.lsb_release -a,即可列出所有版本信息: 这个命令适用于所有的Linux发行版,包括RedHat.SUSE.Debian…等发行版. 2.cat /etc/redhat-release,这种方法只适合Redhat系的Linux: [[email protected] home]# cat /etc/redhat-release

【linux】查看Linux系统版本信息的几种方法

一.查看Linux内核版本命令(两种方法): 1.cat /proc/version 2.uname -a 二.查看Linux系统版本的命令(3种方法): 1.lsb_release -a,即可列出所有版本信息: 这个命令适用于所有的Linux发行版,包括RedHat.SUSE.Debian…等发行版. 2.cat /etc/redhat-release,这种方法只适合Redhat系的Linux: [[email protected] home]# cat /etc/redhat-release