我目前运行一个运行Debian的networking服务器。 我有一个1GB的磁盘,一个ext4分区映射到/
和一个8GB的磁盘,一个ext4分区映射到/var/www
。
1GB磁盘已满70%,没有安装数据库。 一旦我把psql,我/var
可能会填满1GB的磁盘。
所以我想要做的是将8GB磁盘上的ext4大小调整为4GB,并使用可用空间创build另一个分区。
现在,在我看来,我提出了以下几个步骤:
umount
并使用resize2fs
(或parted
)来调整8GB磁盘上的分区大小。 parted
在可用空间上创build一个新的4 GB分区。 mount
新的parition说/media/new
cp -a
将我的/var
从1GB分区复制到新的4GB分区。 (或者我应该使用tar
呢?) fstab
为新分区添加一个条目 /var
,为新分区删除/var/www
。 我从来没有做过这样的事情,所以有人请validation我的步骤,看看我是否错过了什么?
PS。 我做了一个du --max-depth=1
,它看起来像是/var
占用的200MB,还有一个300MB分配给/usr
和200MB到/lib
。 我应该移动这些吗?
您实际上不必重新分区您的磁盘来完成此操作。 另一种解决scheme是使用mount -o bind
。
lsof | grep /var
句柄 lsof | grep /var
– 如果有的话,杀死持有它们的进程。 mv /mnt/www /mnt/var/
,但是我应该可以设置嵌套的坐标) mount -o bind /mnt/var /var
附加到fstab:
/ mnt / var / var绑定默认,noatime,绑定0 0
检查一切正常,恢复正常操作
这种方法应该提供相同的function,而且风险小一些(不需要重新分区/调整文件系统的大小)和更大的灵活性 – 如果你想添加两个或三个以上的文件夹,你不需要继续创build新的分区。
另外,将整个/ var移动到第二个磁盘并不是我的第一select,我倾向于移动存储数据的目录而不是stored procedures的目录,如下所示:(您可能会发现/ var / log和/ var / lib使用/ var中的大部分空间)。
大多数目录可以应用相同的过程(除了/ boot之类的东西)。 此外,你可以考虑使用rsync而不是cp,如果某些文件被locking等等,你必须再次运行它,它可以更宽容。