在 Debian 中合并分区

在 Debian 中合并分区

我最近继承了别人的linux服务器问题。这是基于 Debian 的多合一灯设置之一。它最近耗尽了存储空间,而且这里似乎没有人对 Linux 有任何了解。我已成功在 VMWare 中扩展驱动器并创建分区,如下图所示。挑战是将根分区 /dev/sda1 与 /dev/sda4 合并。

注意:开始-结束块不是连续的,我不能承受这台服务器上太多的停机时间。 /dev/sda3 可能也可以合并,但并不重要。

截屏

更新:df -h 输出

在此输入图像描述

更新 2:fdisk -l 输出

在此输入图像描述

答案1

我不知道你的终端有什么样的设置。也许您是否使用 RAID、SAN、NAS,因为这些都会使事情变得复杂。

目前,我假设您使用的是具有分区的单个传统硬盘。

人们拥有不同的分区通常是有原因的,例如,有些人可能认为或有理由出于安全目的等原因为不同的数据集建立数据库。我敦促您在采取行动之前进行更多研究,如果可能的话,与人们谈谈他们为什么这样做。

说了上面的内容并假设您有充分的理由进行更改,我要做的就是将所有数据备份到外部驱动器,使用 Debian Live CD 或任何您可以获得的东西,使用 gparted 并按照您的方式进行分区例如,滑动/复制数据,确保可能指向不同分区的任何硬链接或符号链接在具有相同配置(不包括 HDD)但具有文件系统(如果可能)的备用服务器上正确链接。我确实希望您能进行某种测试来判断一切是否正常工作。

如果一切顺利,只需关闭服务器,将新磁盘放入数据并投入使用即可。

更新 Debian 以及执行此操作时正在使用的任何应用程序通常是一个好主意,但这需要留出一些时间来测试内核更新时数据的性能,安全补丁可以使整个事情变得更好。

我还敦促您做一些文档,以便您可以参考注释,以防万一出现问题,因为随着时间的推移,记忆往往会变得模糊,并说明您正在做的事情的原因。

所有这些都只是指出什么是好的做法以及您应该注意什么。我从来不赞成就地重新分区,因为任何损坏成本根本不值得。

答案2

/dev/sda1 是主分区,/dev/sda4 是位于扩展分区中的逻辑分区。此外,它们是不连续的,这会使合并操作出现问题。也许您可以通过删除 /dev/sda3 和 /dev/sda4 (备份数据后)来创建一个干净的石板,然后使用 gpart 将现在未分配的空间与 /dev/sda1 合并。也许有必要删除整个扩展分区才能创建如此干净的未分配空间。

再看一眼,我注意到扩展分区只有 1046529 个块,这意味着 /dev/sda4 是主分区。但这并不重要。主要是为了扩展 sda1,您需要连续的未分配空间。您可以使用 fdisk 来删除并重新创建分区,而不是 gpated: fdisk /dev/sda -u (-u 显示扇区中分区表的大小以保持一致性),然后使用 resize2f 来调整大小到新的大小。

答案3

是的,您一天只需要 1GB 空间(您在评论中这么说)?

简单的方法(我认为)是清除你的旧日志,如果它们不重要的话:

cd /var/log/
rm *.gz
cd /var/log/apache2
rm *.gz
(etc) 

或者只是将旧日志移到另一个地方

mkdir /mnt/pendrive
mount /dev/sdc1 /mnt/pendrive
cd /var/log/
mv *.gz /mnt/pendrive
cd /var/log/apache2
mv *.gz /mnt/pendrive/myfunnyapache2folder
(etc)

或者,如果由于某种未知的原因,您不想这样做,我们可以尝试将 /var/log 移动到另一个分区,直到一切正常!

首先停止您的服务:服务 rsyslog 停止;服务 apache2 停止;服务 mysql 停止等

fdisk /dev/sda(将 sda 更改为您的磁盘设备或随身碟)

n(使用 n 命令创建 1GB 分区并使用 w 命令保存 fdisk,然后退出 fdisk)

使用 fdisk -l(L 小写)检查您的 1gb 分区采用的分区设备,例如 /dev/sda5

现在,挂载 /dev/sda5 或您的分区号(由 fdisk 创建)作为新的 /var/log...

mkdir /tmp/log 
mkfs.ext4 /dev/sda5 - Assumed /dev/sda5 as the new empty partition. This will destroy all that in /dev/sda5 if you select the wrong partition, this is the empty partition you created in fdisk!
mount /dev/sda5 /tmp/log       
mv /var/log/* /tmp/log 
umount /tmp/log
mount /dev/sda5 /var/log      
ls /var/log     - Now you have time to think again... 

之后您将能够重新启动您的服务:服务 rsyslog 启动;服务 apache2 启动;服务mysql启动等...

是的,如果您不注意自己正在做的事情,这可能会很危险,但比尝试在正在运行的系统上调整大小或合并分区要少。

如果您的硬盘驱动器上确实没有更多空间,请创建一个 ramdisk 分区(您可以在 google 中找到如何做到这一点),但如果服务器重新启动,您将丢失日志数据......

您也可以使用 gzip 压缩非旋转日志数据,例如 gzip 文件名和其他文本文件,您现在可能不需要!

相关内容