SUSE Linux 中扩展根分区

SUSE Linux 中扩展根分区

我有一台服务器,分区之间的空间分布如下:

GSSJMB02:~ # df -kh
Filesystem            Size  Used Avail Use% Mounted on
/dev/cciss/c0d0p5      25G  5.9G   18G  25% /
udev                  3.9G  144K  3.9G   1% /dev
/dev/cciss/c0d0p9      64G  129M   61G   1% /apps
/dev/cciss/c0d0p1     244M   12M  219M   6% /boot
/dev/cciss/c0d0p10     16G  129M   15G   1% /home
/dev/cciss/c0d0p7     5.0G  618M  4.1G  13% /opt
/dev/cciss/c0d0p8     9.9G  228M  9.2G   3% /var
GSSJMB02:/gsn/sw       25G  5.9G   18G  25% /mnt/nfs/gsn/sw
GSSJMB02:/gsn/nodes    25G  5.9G   18G  25% /mnt/nfs/gsn/nodes

这里文件系统/dev/cciss/c0d0p5的空间比我需要的要少。并且文件系统/dev/cciss/c0d0p9有大量无法使用的空间。我可以/dev/cciss/c0d0p5通过从 中取出一些来增加 的空间/dev/cciss/c0d0p9吗?

答案1

并非没有备份、重新分区、mkfs 和恢复至少c0d0p[56789](假设分区根据磁盘布局按顺序编号)。

如果您要竭尽全力做到这一点,请多花一点精力来安装和配置 lvm 并使用逻辑卷而不是分区 - 这将为您下次需要扩大或缩小卷时提供更大的灵活性。文件系统(或者如果您添加第二个磁盘)。

(另外,很难理解为什么现在有人会费心在一个小磁盘上创建很多小分区。这曾经是常见的做法,但磁盘过去也很小。现在,它造成的麻烦和不便超过了超过了次要的好处)

因此,简短的回答是“不”。

但是,您可以在 /apps 上创建一个目录(例如 /apps/stuff)并将+符号链接文件从 / 移动到 /apps/stuff。例如:

 mkdir /apps/stuff
 mv /usr/share/doc /apps/stuff
 ln -s /apps/stuff/doc/ /usr/share/

只要您不移动启动时所需的任何文件或目录(包括所有 /etc、/bin、/sbin),一切都会继续工作(尽管您可能必须重新启动或至少杀死并重新启动某些文件或目录)如果您移动的任何文件被某个进程保持打开状态,则进程)

顺便说一句,只要保留所有者、组和权限,复制文件通常比 mv 更好。例如,使用cp -arsync甚至是“然后”的旧主力,cd /path/to/src ; tar cf - . | (cd /path/to/dest ; tar xf -) 当文件被复制时,删除它们(或暂时将它们移开)并创建符号链接。完成后,测试一切是否正常工作 - 如果是,则从根文件系统中删除原始文件。例如

mkdir /apps/stuff
rsync -ax /usr/share/doc /apps/stuff
mv /usr/share/doc /usr/share/doc.bak
ln -s /apps/stuff/doc/ /usr/share
# do your testing now
rm -rf /usr/share/doc.bak

请注意,重要的是在 rsync 中保留尾随 / 离开此处的源参数(即使用/usr/share/doc而不是/usr/share/doc/),否则 rsync 会认为您想要将 /usr/share/doc/ 中的所有内容复制到 /apps/stuff 而不是 /apps /东西/文档

相关内容