如何将主分区集成到主分区,然后再分区

我在创build一个基于XenServer的Linux虚拟机时犯了一个错误。 我创build了一个单独的交换(好)和一个大的单独的/主目录(坏),而实际上它应该是一个大的单独的/ var目录。

既然/ var几乎已经饱和了根磁盘,我想重新将其归入根分区,删除旧的921GB / home分区,然后将根分区增长到921GB,而不改变/ swap分区。

目前:

[root@ /]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 50G 43G 4.0G 92% / tmpfs 3.9G 0 3.9G 0% /dev/shm /dev/xvda1 485M 72M 388M 16% /boot /dev/mapper/VolGroup-lv_home 921G 200M 874G 1% /home 

更清楚的是,我需要知道如何将/ home移动到根分区(/ dev / mapper / VolGroup-lv_root),并让Linux将其识别为操作系统的主目录,删除/ dev / mapper / VolGroup- lv_home分区,然后增大/ dev / mapper / VolGroup-lv_root分区以占用额外的921GB可用空间。

如果可能,我愿意交换/ home和/ var的位置,但这是一个生产服务器。 虽然我可以随时做快照,所以有些深夜实验是可能的! ;)

谢谢!

这是相当直接的,作为根:

 mkdir /home2 mv /home/* /home2/ umount -fl /home lvremove /dev/VolGroup/lv_home mv /home2 /home 
  • 编辑您的fstab并删除/ dev / VolGroup / lv_home条目
  • 通过vgdisplay检查现在在VolGroup中有多less空间可用,并将lv_root添加到lvxtend
  • 在lv_root上适当地使用resize2fs或xfs_growfs

如果您的根文件系统是可resize的(例如ext4),这个过程将工作。

  1. 修改现有用户或创build主目录不在/ home下的新用户。
  2. validation您可以以该用户身份login并sulogin
  3. 确保所有其他用户都注销
  4. umount / home – 如果失败,那么用户进程可能仍然使用/ home。 用热熔器或lsof检查
  5. remount / dev / mapper / VolGroup-lv_home临时挂载 – / mnt / home例如
  6. 使用rsync,cp -p或其他工具将用户主目录从/ mnt / home复制到/ home – validation权限和所有权是否正确
  7. 编辑fstab来注释/ home
  8. 用户现在可以被允许重新login
  9. lvremove / dev / VolGroup / lv_home
  10. lvextend -L + 921G / dev / VolGroup / lv_root
  11. resize2fs / dev / VolGroup / lv_root

你也可以做到这一点,而不需要通过交换挂载点来增加分区:

卸载主分区:

umount /home

将它挂载到其他地方,例如/ mnt:

mount /dev/mapper/VolGroup-lv_home /mnt

将所有内容从分区移动到您的主目录(现在位于根分区上):

mv /mnt/* /home/

将数据从/ var目录移动到分区:

mv /var/* /mnt/

将你的分区重新挂载到/ var:

umount /mnt

mount /dev/mapper/VolGroup-lv_home /var

请确保相应地更改/etc/fstab的内容。