如何在Linux上合并多个分区


本文将介绍如何在Linux系统中使用两个各20GB的驱动器创建一个40GB的单一挂载点,以便将数据存储在一个位置,并拥有更大的存储空间。这里我们将使用名为“mhddfs”的软件包,这是一个用于Linux的驱动程序,可以将多个挂载点组合成一个虚拟磁盘。这是一个基于FUSE的驱动程序,它为大型数据存储提供了一个简单的解决方案,可以将许多小型文件系统组合成一个大型虚拟文件系统。

Mhddfs 的特性

  • 我们可以获取系统信息和文件系统属性。
  • 它可以设置文件系统的属性。
  • 可以创建、读取、删除和写入文件和目录。
  • 支持单个设备上的硬链接和文件锁。

优点

  • 对家庭用户非常友好。
  • 易于使用。
  • 不会丢失数据。
  • 文件不会被分割到多个硬盘。

缺点

  • Linux没有内置驱动程序。
  • 运行时需要大量的处理能力。
  • 不支持移动硬链接。
  • 没有冗余解决方案。

在Linux中安装Mhddfs

在继续之前,请注意安装需要以root用户身份进行。

# sudo -i

执行以下命令安装“mhddfs”软件包。

# apt-get install mhddfs
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
mhddfs
0 upgraded, 1 newly installed, 0 to remove and 64 not upgraded.
Need to get 0 B/26.0 kB of archives.
After this operation, 96.3 kB of additional disk space will be used.
Selecting previously unselected package mhddfs.
(Reading database ... 91977 files and directories currently installed.)
Preparing to unpack .../mhddfs_0.1.39+nmu1ubuntu1_amd64.deb ...
Unpacking mhddfs (0.1.39+nmu1ubuntu1) ...
Processing triggers for man-db (2.7.4-1) ...
Setting up mhddfs (0.1.39+nmu1ubuntu1) ...
# df -h
Filesystem Size Used Avail Use% Mounted on
udev 473M 0 473M 0% /dev
tmpfs 98M 4.9M 93M 5% /run
/dev/dm-0 19G 3.1G 15G 18% /
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 236M 51M 173M 23% /boot
tmpfs 98M 0 98M 0% /run/user/1000
/dev/sdb1 20G 44M 19G 1% /backup
/dev/sdc1 20G 44M 19G 1% /backup1

记下输出中的挂载点名称,我们将在后面的步骤中使用它。

创建一个目录 /mnt/virtual HDD,这些文件系统将在此处组合并挂载。

# mkdir /mnt/virtualhdd

然后我们需要挂载 /backup 和 /backup1。我们需要root权限,并且是FUSE组的成员。

# mhddfs /backup,/backup1 /virtualhdd/ -o allow_other
mhddfs: directory '/backup' added to list
mhddfs: directory '/backup1' added to list
mhddfs: mount to: /virtualhdd/
mhddfs: move size limit 4294967296 bytes

我们使用了所有硬盘的挂载点名称。显然,您情况下的挂载点会不同。此外,请注意使用了“-o allow_other”选项,以便所有使用此Linux系统的其他用户都可以看到虚拟文件系统。

现在运行“df -h”查看我们创建的所有磁盘和挂载点。

# df -l
Filesystem 1K-blocks Used Available Use% Mounted on
udev 483472 0 483472 0% /dev
tmpfs 99888 4972 94916 5% /run
/dev/dm-0 19213004 3158668 15055324 18% /
tmpfs 499420 0 499420 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 499420 0 499420 0% /sys/fs/cgroup
/dev/sda1 240972 51472 177059 23% /boot
tmpfs 99888 0 99888 0% /run/user/1000
/dev/sdb1 20504628 44992 19395016 1% /backup
/dev/sdc1 20504628 44992 19395016 1% /backup1
/backup;/backup1 41009256 89984 38790032 1% /virtualhdd

为了每次启动时自动创建虚拟文件系统,我们应该在 /etc/fstab 文件的末尾添加以下行。

# vi /etc/fstab
# /etc/fstab: static file system information.
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/server--vg-root / ext4 errors=remount-ro 0 1
# /boot was on /dev/sda1 during installation
UUID=40f8b7fe-3195-414a-a0e4-a4443cceb78c /boot ext2 defaults 0 2
/dev/mapper/server--vg-swap_1 none swap sw 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
mhddfs /backup,/backup1 /virtualhdd/ -o allow_other fuse defaults allow_other 0 0

卸载虚拟驱动器

# umount /mnt/virtualhdd

使用“mhddfs”实用程序进行此配置后,将不同的硬盘组合成单个存储变得非常简单。最好的是,它非常易于设置,并且我们不会在此文件系统中丢失数据。如果您有大量数据,并且需要将数据保存在单个位置,那么您可以设置和配置系统,以便可以保存这些大型数据。

更新于:2019年10月17日

280 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告