zoukankan      html  css  js  c++  java
  • 如何将 Linux 系统转移至 LVM 卷

    摘要: 一、预备知识 了解什么是 dd 以及什么是 dump? dd 命令用于复制一个设备/分区,原样输出到另外一个文件/设备/分区。 dump 命令用于备份 ext2 或者 ext3 文件系统。可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。

    一、预备知识

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

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

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

    备份好了用什么恢复?

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

    二、环境模拟

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

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

    虚拟机设置及分区情况:

     

     

    三、实战部分

     

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

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

     

    2、创建 LVM 卷

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

    
    
    1. umount /dev/sdb1
      pvcreate /dev/sdb1
    2. vgcreate vgtest /dev/sdb1

     

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

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

    
    
    1. lvcreate -25G -n lvtest vgtest
    2. mkfs.ext4 /dev/mapper/vgtest-lvtest

     

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

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

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

     

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

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

     

    4、尝试恢复

    
    
    1. restore -rf rootfs-20160828.bak boot-20160824.bak

    5、修改启动文件

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

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

    
    
    1. blkid

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

    
    
    1. vim /mnt/lvm/etc/fstab

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

    
    
    1. chroot /mnt/lvm

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

    6、恢复 MBR 主引导记录

    
    
    1. dd if=./mbr.bin of=/dev/mapper/vgtest-lvtest 

    7、修正 GRUB 引导

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

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

    
    
    1. chroot /mnt/lvm
      ls /boot/
      rm -rf /boot/*
      yum install grub -y

     

    然后输入:

    
    
    1. root (hd1,0)
    2. setup (hd1)
    3. quit

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

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

    原文发布时间为:2016-08-26

    本文来自云栖社区合作伙伴“Linux中国”

    用云栖社区APP,舒服~

    原文链接

  • 相关阅读:
    tableau prep 转置-pivot
    tabeau 画Slopegraph斜面图
    java栈
    java快速排序
    java冒泡排序
    java实现双向链表
    五、使用依赖注入取代硬连接资源(静态工厂、单例),也可用于构造方法、bulider模式
    转 String的不变性 immutable
    三、使用私有构造方法(公开成员属性或者公开静态工厂方法)或者枚举类实现singleton
    有状态对象和无状态对象
  • 原文地址:https://www.cnblogs.com/jzy996492849/p/7059472.html
Copyright © 2011-2022 走看看