当前分区
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
问题:
- 空间不足,无法存放变量
我想做的事:
- 以某种方式将未分配的空间添加到 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)。
不可能写出完整的命令摘要,因为它取决于很多因素。粗略的工作流程(提醒:任何故障都可能导致计算机无法启动,并可能导致数据丢失。请确保您有备份):
- 启动USB-Linux
- 挂载根分区
- 挂载 var 分区
- 将 var 分区的内容复制到目录中的根分区
var
/var
从fstab
根分区中删除- 卸载 var 分区
- 删除 var 分区
- 扩展根分区
- 扩展根分区上的文件系统
- 重启