如何将 Linux 系统转移至 LVM 卷
dd 命令用于复制一个设备/分区,原样输出到另外一个文件/设备/分区。
dump 命令用于备份 ext2 或者 ext3 文件系统。可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。
备份好了用什么恢复?restore 命令是 dump 命令的逆过程,用于还原 dump 命令生成的备份文件。
二、环境模拟首先要求有一个可以正常启动的分区,然后要有剩余空间!(这里有两种情况:一个是某分区,一个是新磁盘。两者类似,为了方便本文使用的是新磁盘的方式。)
使用虚拟机模拟了服务器的真实情况:/dev/sda1 是正常系统启动分区、/dev/sdb1 是新的磁盘分区。(必须注意 /dev/sdb1 的容量大于 /dev/sda1)
虚拟机设置及分区情况:
dd if=/dev/sda1 of=/mnt/lvm/mbr.bin bs=512 count=1
首先卸载 /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
首先备份 / 目录。在 dump 命令前后输入的 date 命令是为了查看备份使用的时长。
date dump -0f /mnt/lvm/rootfs-20160824.bak / date
保险起见我们也备份一下 /boot 目录:
date dump -0f /mnt/lvm/boot-20160824.bak /boot date
restore -rf rootfs-20160828.bak boot-20160824.bak
注意:这里根分区(启动分区)需要更改成实际要启动的磁盘。否则不更改的话系统会出现应该使用/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.bin of=/dev/mapper/vgtest-lvtest
这样可以让新磁盘可以脱离源磁盘的引导。
chroot 进入新磁盘。并重建 /boot 目录:
chroot /mnt/lvm
ls /boot/
rm -rf /boot/*
yum install grub -y
然后输入:
root (hd1,0) setup (hd1)
这样就将 GRUB 引导指向了新的磁盘。
重启可以看看是否有问题。
原文发布时间为:2016-08-26
本文来自云栖社区合作伙伴“Linux中国”
Linux 温习(六): LVM 磁盘(二) 逻辑卷管理器(Logical volume Manager)是 Linux 系统用于对硬盘分区进行管理的一种机制,理论性较强,其创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失。而 LVM 技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的低层架构和布局,就可以实现对硬盘分区的动态调整。
Linux 温习(六): LVM 磁盘(一) 逻辑卷管理器(Logical volume Manager)是 Linux 系统用于对硬盘分区进行管理的一种机制,理论性较强,其创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失。而 LVM 技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的低层架构和布局,就可以实现对硬盘分区的动态调整。
相关文章
- 在linux 列出 超级用户 普通用户和 系统用户
- Linux系统安装Apache 2.4.6
- linux 系统 如何 安装 python (python 3.8)
- STM32MP157 Linux系统移植开发篇1:linux系统移植前说明及源码编译
- STM32MP157 Linux系统移植开发篇12:Linux内核MIPI LCD驱动移植
- 如何在Linux下监控系统温度
- 如何在 Linux 系统中创建一个云端加密文件系统
- 如何在现有的 Linux 系统上添加新的磁盘
- Linux 有问必答: 如何在红帽系linux中编译Ixgbe驱动
- Linux系统中如何查找大文件或文件夹的方法
- 如何在运行的linux系统中获取设备树?
- linux系统错误码大全
- linux下如何使用adb连接在qemu中运行的安卓系统?
- 【Linux】linux中自动定时备份mysql数据
- 《Raspberry Pi用户指南》——第2章 Linux系统管理 2.1 Linux系统概述
- 《Linux防火墙(第4版)》——1.7 服务端口:通向您系统中程序的大门
- 【正点原子Linux连载】第三章 RV1126开发环境搭建 摘自【正点原子】ATK-DLRV1126系统开发手册
- Linux服务器集群系统(四)--转
- Windows和Linux网络安全应急响应基础技能——如何进行系统排查以及检测恶意用户登录和网络流量日志分析