Debian Linux 根磁盘满了,需要将 /var 文件夹转移到另一个磁盘

Debian Linux 根磁盘满了,需要将 /var 文件夹转移到另一个磁盘

其中一个磁盘空间不足,但其他磁盘几乎是空的。需要建议如何将最大的文件夹(/var)转移到另一个磁盘并安装在/var。目前/var文件夹位于/分区中。在 处有 90GB 未分配空间/dev/sdb。这是一个vmware虚拟机。

$df -H result

Filesystem                              Size  Used Avail Use% Mounted on
rootfs                                   22G   20G  711M  97% /
udev                                     11M     0   11M   0% /dev
tmpfs                                   425M  398k  425M   1% /run
/dev/disk/by-uuid/a8db5cdb-96f3-4497-9   22G   20G  711M  97% /
tmpfs                                   5.3M     0  5.3M   0% /run/lock
tmpfs                                   850M     0  850M   0% /run/shm
/dev/sdb1                                11G  980M  8.9G  11% /home

$fdisk -l result

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c0f7f

Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048      194559       96256   82  Linux swap / Solaris
/dev/sda2   *      194560    41940991    20873216   83  Linux

Disk /dev/sdb: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders, total 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0002dc8d

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20482047    10240000   83  Linux

答案1

一般来说,需要将文件物理移动到新分区,然后重新创建一个空的/var作为挂载点,然后mount /dev/sdb1 /var. (并且,为了获得永久效果,请添加一行,/etc/fstab如下所示):

/dev/sdb1   /var    ext4    rw  0   1

然而,“将文件物理移动到新分区”步骤需要更多解释。在典型的 Debian 系统上,/var很可能包含许多打开的文件、数据库和特殊节点(套接字等)。

首先,进行/etc/fstab上述编辑。然后,您需要将系统置于单用户模式以停止通常在/var.

sudo init 1

然后您可以将 /var 挂载到新的临时位置并将其内容复制/var到其中:

mkdir /mnt/var
mount /dev/sdb1 /mnt/var  # Temporary mount

cd /var
cp . -ax /mnt/var # Copy /var contents to new partition

cd /
mv /var /var.old  # Backup old /var in case anything goes wrong
umount /mnt/var   # We are done with that for now
reboot

系统重新启动后,/var应自动安装在正确的位置,并保留所有文件。一旦您对一切感到满意,您就可以rm -Rf /var.old删除备份副本。

答案2

被警告,如果不会丢失数据,您应该init 1按照 type_outcast 的建议启动系统,或者启动实时 USB 系统来执行下一个过程。

由于您已经在 sdb 上有一个分区,如果您想使用整个分区,只需检查文件系统是否已创建。否则请自行创建 ( mkfs)。

创建后挂载两个分区

mkdir /mnt/orig
mkdir /mnt/dest

mount /dev/sdb1 /mnt/dest
mount /dev/sda1 /mnt/orig

以及rsync你的 /var 到 /mnt。

rsync -av /mnt/orit/var/* /mnt/dest/

完成后,识别您的分区 UUIDblkid并修改 /mnt/orig/etc/fstab 为 /var 创建一个新行,指向新 /var 分区的 UUID。

UUID=UUID_returned_by_blkid /var ext4 defaults 2 2

相关内容