将分区移动到根分区

将分区移动到根分区

我目前被限制分区方案所困扰,这使我的分区被填满。它看起来像这样:

/dev/sda7             870G  315G  511G  39% /
/dev/sda6             2.0G  271M  1.6G  15% /tmp
/dev/sda3              15G   13G  1.5G  90% /usr
/dev/sda2              15G  8.6G  5.0G  64% /var
/dev/sda1              99M   36M   58M  39% /boot
tmpfs                 7.9G     0  7.9G   0% /dev/shm

我想将数据移入/usr(也/var可能移入)根分区。我并不真正关心分区本身,因此不需要合并。

最好的方法是什么?目前,我的计划是这样的:

cp -R /usr /newusr
umount /usr
mv /newusr /usr

真的就这么简单吗,还是我忽略了什么?

答案1

你的方法是正确的。在根分区上创建一个目录,将数据复制到那里,卸载该usr分区并将新目录移动到。之后usr别忘了编辑你的。/etc/fstab

答案2

  1. 首先,您应该始终检查是否有足够的可用空间。这次,您有。

  2. 关于副本:

没那么简单。有些特殊文件的特殊属性并不总是能被正确复制。而不是cp -R使用

cp -vfa /usr /newusr

如果您想查看当前正在执行的操作,可以使用“-v”标志。

  1. 不要忘记编辑/etc/fstab更改。
  2. 警告:重新分区后,内核不一定能重新读取新的分区表,因此它可能会继续使用旧的分区表!这非常危险!有关当前分区表的内核版本可以在 中找到/proc/partitions,磁盘上的分区表可以用 读取fdisk -l /dev/sda。如果您当前要更改的分区不匹配,最好的办法是重新启动。

答案3

为了实现这一点,必须在单用户模式下或使用 LiveCD 来执行此操作,这就是您可以在互联网上找到的。

此外,可以在运行时执行此操作(当然有点冒险),但我认为这种方式只适用于 /var,而不适用于/usr,一些运行时库依赖于此文件夹。你可以先在测试机上试一下是否可行。

首先你必须检查是否有任何进程/服务正在使用/写入您要移动的目录。

lsof | grep -E '/usr|/var'

通常 /var 仍用于存放 pid 和 sock 文件,/usr任何库都需要它。

因此,停止/终止出现的服务和进程。

COMMAND    PID  TID        USER   FD      TYPE             DEVICE   SIZE/OFF       NODE NAME
cupsd      723             root    5u      REG                8,1          0    8651393 /var/log/cups/error_log
cupsd      723             root    6u      REG                8,1          0    8651908 /var/log/cups/page_log
cupsd      723             root   12u     unix 0xffff88020d97d780        0t0       9958 /var/run/cups/cups.sock

在这个简短的例子中,cups 守护进程正在运行并使用这些目录。如果停止它们,它们将不会出现在 lsof 输出中。

之后,您需要当前数据的副本,我建议使用 rsync 而不是 cp(为了保留所有内容、权限、符号链接等)

mkdir /mnt/var
mkdir /mnt/usr

做好备份

rsync -avz /var/* /mnt/var
rsync -avz /usr/* /mnt/usr

卸载文件夹

umount /var
umount /usr

恢复数据

rsync -avz /mnt/var/* /var
rsync -avz /mnt/usr/* /usr

编辑您的/etc/fstab文件并注释/删除条目/var/usr应该安装在哪里。

然后,您可以启动所有停止的服务或重新启动计算机。如果/usr不起作用,您无法停止守护进程(也许您无法杀死它,因为取决于 init pid),唯一的方法是使用 LiveCD。

虽然您没有提到机器的类型(您的电脑、办公机器、服务器等),但它将取决于此以尽可能正式的方式执行。

相关内容