如何将物理分区系统更改为LVM?

我有一个Debian的服务器,有3个物理分区覆盖所有的磁盘:引导,根交换。 现在我想用LVM分区replace分区。 我知道如何在开始时使用LVM安装Debian,但是在这种情况下,我无法在开始时安装系统,因为提供程序让我有一台远程访问的服务器,并以这种方式安装了系统。

我怎样才能改变这个分区只使用一个SSH连接,可能还有其他远程服务器放置一些时间数据?

只有/,/ boot和<swap>分区才能在运行的服务器上replace它们。 要做到这一点,唯一的方法是卸载/分区,缩小它,并在最后创build一个新的LVM分区,但是因为您只有远程ssh访问权限,所以无法缩小活动的挂载分区而没有数据损坏。

从我身边快速更新。 上下文:今天我上了一个专用的服务器,安装了物理分区而不是LVM。 有3个分区:

/ boot(ext4) – 512M /(ext4) – 730G swap – 8G

由于没有控制台访问的本质,最终目标是将现有的根分区转换为LVM。

考虑到ext4不可收缩,唯一的办法就是重新使用交换分区作为临时根目录。 我也决定用LVM来build立临时根目录,以确保这个过程能够正确地工作。

首先横空出世:

swapoff -a 

然后通过分开调整分区大小(原来是从742开始到750):

 parted resize 3 742 744 

并为LVM创build了一个分区:

 mkpart primary ext2 744 750 set 4 lvm on 

为临时根目录创buildPV / VG / LV /文件系统:

 pvcreate /dev/sda4 vgcreate VolGroup00 /dev/sda4 lvcreate -L 5.73G -n tmproot VolGroup00 mkfs.ext4 /dev/VolGroup00/tmproot 

下一步是将根复制到临时位置:

 mount /dev/VolGroup00/tmproot /media rsync -ravzxq / /media/ 

一旦所有东西都在那里,那么/ media / etc / fstab中的根文件系统的入口也必须改变:

 /dev/VolGroup00/tmproot / ext4 defaults 1 1 

几乎在那里,最后一个,让没有控制台访问的最不需要的部分是修改/boot/grub/grub.conf:

原始条目:

 title CentOS (2.6.32-279.22.1.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-279.22.1.el6.x86_64 ro root=UUID=e769af21-d9e1-455f-a6a7-7a9c84d8cbea rd_NO_LUKS LANG=en_US.UTF-8 KEYBOARDTYPE=pc KEYTABLE=hu rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-279.22.1.el6.x86_64.img 

修改条目:

 title CentOS (2.6.32-279.22.1.el6.x86_64) LVM insmod lvm kernel /vmlinuz-2.6.32-279.22.1.el6.x86_64 ro LANG=en_US.UTF-8 KEYBOARDTYPE=pc KEYTABLE=hu SYSFONT=latarcyrheb-sun16 crashkernel=auto dolvm root=/dev/mapper/VolGroup00-tmproot panic=10 #rd_NO_DM rd_NO_MD rd_NO_LUKS initrd /initramfs-2.6.32-279.22.1.el6.x86_64.img 

仅仅为了安全起见:insmod lvm与内核的dolvm参数一起被添加,并且根path也被改变为root = / dev / mapper / VolGroup00-tmproot。 重要的是在这个时候使用/ dev / mapper /path。 作为安全存款,我还添加了panic = 10参数,并没有更改标题中的默认启动项。 而不是我试着告诉grub只用一次新的设置启动,如果失败,原来的项目可以工作:

 grub savedefault --default=1 --once 

最后:

 reboot 

这对我来说是第一次,所以我重复了整个过程,在原始根分区之上创build一个新的卷组,最后我使用LVM在正确的位置获得了根。

希望这可以帮助。

他可以设置一个中间救援系统进入(先前禁用的)交换分区(如果在机器中没有RAC,就要去做神经破坏工作),然后从那里开始工作。 另外,对于某些文件系统,还存在在线resize的工具,然后再缩小分区,重启是KWYD的一种情况,但是可能的。

在Linux中没有什么是不可能的,但是你必须坚定和疯狂地尝试你所描述的。 请记住,如果你只有SSH访问权限,那么如果你犯了错误,很有可能会失去对服务器的访问权限。 如果你有一个远程“串行”控制台和虚拟电源开关,这可能会有所帮助。 也就是说,如果你有一个全新的安装,没有数据丢失,为什么不尝试呢? 我find一个教程来远程将Linux系统转换为RAID1 ; 你会尝试LVM的步骤是类似的。

首先,我们考虑临时存储空间的必要性。 假设服务器上没有第二个磁盘,则可以使用parted缩小现有分区 。 当然,这要求您的引导和根分区使用不到一半的磁盘,并且它们必须使用可收缩的文件系统。 (例如,XFS和JFS不可收缩。)

缩小现有分区之后,可以在释放的空间,卷组和逻辑卷中创build一个LVM物理卷。 复制你的文件系统。 (复制你的根文件系统时,你应该终止除sshd之外的所有内容,最好是单用户模式,因为你正在复制已安装的文件系统,所以你可能必须使用rsync而不是dd 。)

然后,您将准备一个支持LVM的initrd,并告诉GRUB启动到新系统中,如Warren Togami的教程中所述。 一旦这样做,使用parted和增长LVM卷来删除旧的文件系统是一件简单的事情。

祝你好运! 让我们知道它是否有效!