将根分区移动到另一个磁盘

将根分区移动到另一个磁盘

下面是我的df -h输出。

Filesystem      Size  Used Avail Use% Mounted on  
/dev/xvda1       20G   18G  1.2G  95% /  
tmpfs           2.0G     0  2.0G   0% /dev/shm  
/dev/xvda2      138G  4.4G  127G   4% /opt/xxxx

如何移动 /dev/xvda2 上的 / 分区以使用其中的可用空间?

如果这是不可能的,那么如何在 xvda2 上仅安装 /opt 而不是 /opt/xxxx 而不丢失 /opt/ 下的数据?

答案1

如果您实际上不需要两个分区,最简单的方法是启动名为的救援 CDgparted。然后,获取一个 rool shell 并:

mkdir -p /mnt
mkdir -p /oldroot
mount /dev/xvda1 /oldroot
mount /dev/xvda2 /mnt/
mkdir /mnt/opt
mv /mnt/* /mnt/opt
rsync -avx /oldroot /mnt

# now edit /mnt/etc/fstab to comment out or delete the /opt line

umount /mnt /oldroot

/dev/xvda2 现在应该包含旧的 / 和 /opt 文件系统。现在的技巧是删除旧的 /dev/xvda1 分区,将 /dev/xvda2 移动到磁盘的开头并将其扩展以填充整个磁盘。

幸运的是,这在 GUI gparted 分区编辑器中很容易做到。完全可以通过命令行来完成此操作,parted但在gparted.

所有这些都会产生一个大小为 158 GB 的分区 /dev/xvda1。

移动分区并调整大小后,您可能需要重新运行 grub-install 才能再次安装引导加载程序。再次将分区挂载为 /mnt 并:

for i in proc dev sys ; do mount -o bind /$i /mnt/$i ; done
chroot /mnt
grub-install /dev/xvda
exit
for i in proc dev sys / ; do umount /mnt/$i ; done

相关内容