将 / 移动到新分区

将 / 移动到新分区

我的笔记本电脑上有 Windows 7 和 Debian 双引导。我的 Debian 一侧空间有限,因此我想删除 Windows 分区并将整个计算机用于 Debian。我目前使用 Debian 的单个分区(加上交换分区),但希望在新的安排中将 /home 拆分为它自己的分区。

由于 Windows 分区比所有 Debian 分区都大,因此当前 Windows 分区中有足够的空间用于整个 Linux 安装。所以我想我会做的是:

  1. 将 60GB Windows 7 分区 /sda2 重新格式化为具有两个 ext4 分区的扩展分区,一个 15 GB 用于 /,另一个 45 GB 用于 /home
  2. 将我当前的 / 和 /home 目录移动/克隆到新分区
  3. 重新格式化 debian 安装所在的分区,释放 50GB 空间
  4. 调整新扩展分区及其中的 /home 分区的大小,以合并步骤 3 中释放的 50GB
  5. 最后留出 2 GB 用于交换

我已经fdisk -l在下面发布了我的。

我的问题:

  1. 这是一个明智的做法吗?
  2. 我该如何进行第 2 步?我可以移动 / 目录而不需要重新安装吗?
  3. 我假设 4 很简单,因为我将通过移动分区的末尾而不是开头来调整大小 - 这是正确的吗?
 
fdisk -l

磁盘 /dev/sda:120.0 GB,120034123776 字节
255个磁头,63个扇区/磁道,14593个柱面,总共234441648个扇区
单位 = 1 * 512 = 512 字节的扇区
扇区大小(逻辑/物理):512 字节/512 字节
I/O 大小(最小/最佳):512 字节/512 字节
磁盘标识符:0x45689f01

   设备引导开始结束块 ID 系统
/dev/sda1 * 2048 616447 307200 7 HPFS/NTFS/exFAT
/dev/sda2 616448 127768575 63576064 7 HPFS/NTFS/exFAT
/dev/sda3 127770622 234440703 53335041 5 扩展
/dev/sda5 127770624 230021119 51125248 83 Linux
/dev/sda6 230023168 234440703 2208768 82 Linux 交换区 / Solaris

答案1

我建议使用 LVM。要切换,像这样:

  1. 在现有的 /dev/sda2(Windows 分区)上创建物理卷 (pvcreate)
  2. 创建仅包含 /dev/sda2 的卷组 (vgcreate)
  3. 创建一个逻辑卷来保存您的//home(您有什么理由分割它们?您不需要。)(lvcreate)
  4. mkfs 两个新的逻辑卷(设备:/dev/mapper/vgname-lvname)
  5. 如果您尚未从救援光盘启动,请从救援光盘启动(您可以使用 Debian 安装光盘,只需在适当的位置切换到终端,或者使用 Ubuntu 光盘)
  6. 安装新的逻辑卷(如果您决定不拆分,则仅安装一个)。如果您安装两者,请确保将 home 安装在新根目录中(例如,作为 /new-root/ 和 /new-root/home)也将旧 rootfs 安装在某处。
  7. 使用 tar 将文件复制过来。就像是( cd /old-root && tar --one-file-system -c . ) | ( cd /new-root && tar vx )
  8. chroot 到新的根文件系统中,并且:
    1. 更改 /etc/fstab 以提供正确的根文件系统
    2. 挂载 /proc 和 /sys 和 /boot (在 chroot 内)
    3. update-initramfs -u
    4. 更新 grub
    5. 如果您很偏执,请查看生成的 /boot/grub/grub.cfg 以检查它是否获取了新的 rootfs。
    6. 退出 chroot
  9. 最后,卸载您安装的文件系统(以 开头/new-root/{proc,sys,boot}),然后重新启动。
  10. 确认您已启动到新的根文件系统。例如,检查/proc/mounts.确认您的数据存在。 (你也有备份,对吧?)非常重要。
  11. 这就是不归路了。接下来的步骤将销毁您的旧分区。
  12. 您现在可以 pvcreate 旧分区,然后将它们添加到卷组 (vgextend)
  13. 现在,您可以使用 lvextend 和 resize2fs(或适用于您的文件系统的任何工具)来调整逻辑卷的大小//home这可以在系统运行时在线完成。

一旦您进入 LVM,任何未来的磁盘更改都会很多更轻松。您可以使用 LVM 命令执行几乎任何磁盘更改,甚至在系统运行的情况下也是如此。

(注意:我已经有一段时间没有这样做了,我可能错过了一两步,但我很确定我没有错过任何灾难性的事情。当然,您的原始安装和数据仍然存在,直到之后您已确认已启动到新的 rootfs)

相关内容