我正在尝试将/var
文件夹移动到另一个(更大的)分区,但我陷入了错误消息
设备或资源繁忙
我已经完成了每个步骤,例如为新文件夹创建新安装并将/var
文件夹的内容复制到其中以及将运行级别设置为 1 (通过init 1
)。
我不知道还能做什么,我什至杀死了使它忙碌的进程,但是当我杀死它们时,我无法再次在终端上输入以完成操作。
答案1
与您的想法相反,System V 运行级别 1(a la init 1
)可能有一些正在运行的服务,这些服务可能会占用您的/var
目录。
由于您既没有详细说明您正在使用哪种系统/发行版,也没有给出ps auxfww
输出;我将给出一个通用的、可靠的——但也肮脏和狡猾的建议...
引导 GNU/Linux 系统没有任何程序,但你的外壳init=/bin/sh
,使用末尾附加的参数启动机器核心命令行。
没有任何其他程序正在运行,这是开始搬迁操作的理想环境/var
。
但有几点需要注意...
- 请注意,这是一个狡猾的要做的事情,只有在无法通过其他方式完成时才诉诸于此。
- 该 shell 将是根 shell,并且可能既没有命令历史记录也没有行编辑。
- 只有一台控制台可用;Ctrl+Alt+F2如果你被卡住了,就不要按。
- 作业控制不起作用;无需按下Ctrl+C即可停止失控的程序。
$HOME
目录位置将设置为/
(而不是通常的/root
);因此,请避免执行写入主目录的操作。- 不要
exit
从你的主 shell 中。 (这样做会导致系统因内核恐慌而停止)
并且不要忘记这些操作安全程序......
- 在此环境中启动后,在执行任何操作之前,请运行
mount -o rw,remount /
以确保根文件系统可写。 一旦你完成了你的生意...
- 确保卸载您安装的任何额外文件系统。
- 确保以只读方式重新挂载根文件系统:
mount -o ro,remount /
- 确保刷新所有磁盘缓存:
sync
- 然后强制重置系统:(
reboot -f
按Ctrl+Alt+Del也可以)
一个不太狡猾的替代方案是使用 GNU/Linux 启动盘启动您的系统,并从那里进行移动操作。