其中一个磁盘空间不足,但其他磁盘几乎是空的。需要建议如何将最大的文件夹(/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