如何调整主分区和根分区的大小?

如何调整主分区和根分区的大小?

当前分区

Device             Start        End   Sectors   Size Type
/dev/nvme0n1p1      2048     534527    532480   260M EFI System
/dev/nvme0n1p2    534528     567295     32768    16M Microsoft reserved
/dev/nvme0n1p3    567296  378849057 378281762 180.4G Microsoft basic data
/dev/nvme0n1p4 378849280  380325887   1476608   721M Windows recovery environment
--Free space here--
/dev/nvme0n1p5 397596672  418076671  20480000   9.8G Linux swap
/dev/nvme0n1p6 418076672  606820351 188743680    90G Linux filesystem -> root partition
/dev/nvme0n1p7 606820352  627791871  20971520    10G Linux filesystem -> var partition
/dev/nvme0n1p8 627791872 1000214527 372422656 177.6G Linux filesystem -> home partition

问题:

  1. 空间不足,无法存放变量

我想做的事:

  • 以某种方式将未分配的空间添加到 var 的分区

或者

  • 将 var 分区并入根分区

担忧

  • 如果我移动根分区,GRUB 将不知道新位置,并且操作系统将无法启动。
  • 如果我使用实时 USB 将 var 内容复制粘贴到 var 文件夹中,然后扩展根分区,那么
    • 权限等或 var 内容将产生问题
    • 在启动时,操作系统将尝试在 var 文件夹中挂载分区,并且会出现问题
    • 扩展根分区将导致启动时出现问题

需要帮助

  • 如果我移动系统分区,如何更新 grub 和其他相关条目
  • 如何扩展根分区
  • 如何正确传输 var 内容

答案1

第一次备份,第二次备份,第三确保你有备份!!

/var进入根文件系统,只需将其复制即可(不是拖放,使用命令行!!)。我会用 来做rsync。复制后/var从中删除/etc/fstab并重新启动。通过从 USB 棒(例如 gparted live USB 棒)启动 Linux 来执行此操作。

如果这样做了,可以通过删除 var 分区并扩展根分区来扩展根分区。扩展应该适用于所有文件系统,但使用不同的命令。它应该甚至可以从正在运行的系统中实现。但最好像上面那样(gparted live USB-Stick)。

据我所知,这不会与 grub 交互。在 UEFI 系统上,您可以完全摆脱 grub(systemd-boot)。

不可能写出完整的命令摘要,因为它取决于很多因素。粗略的工作流程(提醒:任何故障都可能导致计算机无法启动,并可能导致数据丢失。请确保您有备份):

  1. 启动USB-Linux
  2. 挂载根分区
  3. 挂载 var 分区
  4. 将 var 分区的内容复制到目录中的根分区var
  5. /varfstab根分区中删除
  6. 卸载 var 分区
  7. 删除 var 分区
  8. 扩展根分区
  9. 扩展根分区上的文件系统
  10. 重启

相关内容