我将 OpenSuse Linux 升级到 15.3,“/”根目录剩余的磁盘空间太少了,所以我决定将 /usr 移动到新设备。我将所有文件从 /usr 复制到新设备,编辑 /etc/fstab 以更新 fstab 和 bootet 中的文件。
然后,系统将新设备用于/usr
/dev/sda3 .... .... 22% /usr
一切顺利。有一个小缺陷:根/的填充水平与以前相同。 (因为“旧”/usr 仍在设备下(安装新的 /usr 只是伪装旧的 /usr)。所以我启动到单用户模式以摆脱旧的 /usr,同时几个进程也正在 /usr 上以单用户模式工作(我没有关注),我用它卸载了它
ummount -l /usr (lazy)
Moved it to prepare it for later deletion (mv /usr /xusr)
因此 /etc/fstab 中的条目会将 /usr 挂载到 /dev/sda3 上,这样我就可以删除 /xusr
但重新启动后,一切都不起作用了,Linux 将我置于救援模式,只剩下一些命令(最重要的),我什么也做不了,不再有 fstab,没有 root,没有设备,我认为这只是原始的核心。
经过一番思考和尝试后,我将几个设备安装到 /mnt (安装工作正常)并最终找到了原始根设备并将 xusr 移回旧名称 /usr,以便内核可以在启动时找到它。
我的问题:有人如何将 /usr 移动到新位置? (我发现,这可能是不可能的,因为所有重要的系统命令都将在该区域中,并且内核将首先挂载 /usr,然后才能处理 fstab?)
是否可以?
答案1
首先,一个大警告:许多现代发行版,包括 OpenSuSE,现在正在迁移到“合并/usr
”布局,您不能再创建/usr
单独的文件系统:如果您尝试这样做,您将按照您所经历的方式失败。
基本上,发行版将构建所有要安装到/usr/bin
和 的软件包/usr/sbin
,而旧的/bin
和/sbin
最终将分别成为/usr/bin
和 的符号链接/usr/sbin
。/lib
最终,同样如此。
由于您使用的是昨天发布的 OpenSuSE 15.3(!),它绝对比上面链接的 OpenSuse 的 UsrMerge 公告更新,这可能意味着您的拆分计划/usr
根本行不通。
(我本想添加一个链接到 OpenSuSE 15.3 新功能列表的相应部分,但 OpenSuSE 的服务器现在似乎非常繁忙:我似乎无法打开这些页面。)
您的根文件系统使用什么类型的文件系统? SuSE 是使用 BtrFS 文件系统的先驱,如果您正在使用它,那么肯定会有方法将文件系统扩展到其他分区甚至其他磁盘,无需重新启动即可在线。
基本上,如果/dev/sda3
现在是一个可以安全覆盖的已卸载分区,并且您/
正在使用 BtrFS,则可以执行以下两个命令:
btrfs device add /dev/sda3 /
btrfs filesystem balance /
现在,您的sda3
根文件系统中应该有大约 的额外容量。