我有一台生产服务器,我想将其 /home、/opt、/tmp、/user、/var 移动到为此目的专门创建的 ~300GB 分区。
没有找到关于如何执行此操作的直接解释,除了我可以将上面指定的每个文件夹放在单独的分区上,但我不想这样做。原因:
- 我不知道这些文件夹最终会占用多少空间,因此一个驱动器包含所有文件夹就足够了。
- 我觉得这对我来说简单多了。我不想在同一个驱动器上有大量分区。
- 我将安装一个服务器应用程序,它将执行大量 I/O 和一个 MySQL 服务器,并且我不希望它减慢系统硬盘速度或干扰它。
- 智能分区
有什么方法可以实现我想要的,让所有文件夹都能像在同一个硬盘上一样工作?
PS 这些是我迄今为止发现的最相关的链接:
Link3_LinuxNewbieAdministrator
谢谢你!
更新:
全部装好!
UUID=rootUUID / ext4 错误=remount-ro 0 1
UUID=swapUUID none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
UUID=otherDriveUUID /mnt/sdb2 ext4 defaults 0 1
/mnt/sdb2/tmp /tmp none defaults,bind 0 2
/mnt/sdb2/local /usr/local none defaults,bind 0 2
/mnt/sdb2/home /home none defaults,bind 0 2
/mnt/sdb2/opt /opt none defaults,bind 0 2
/mnt/sdb2/var /var none defaults,bind 0 2
答案1
你正在寻找的是绑定安装。请参阅http://man7.org/linux/man-pages/man8/mount.8.html了解详情。
以下是将 /home、/opt、/tmp、/usr 和 /var 移动到单个单独分区的分步指南。
免责声明
对于因遵循本指南而造成的任何损坏或数据丢失,我概不负责。一如既往,确保在继续操作之前备份所有重要数据。
步骤1
从您最喜欢的现场 CD 启动。例如:https://www.debian.org/CD/live/
切换到 root shell。通常可以使用以下命令完成此操作sudo su -
第2步
安装主分区和辅助分区。我们假设它们是/dev/sda1
,并且/dev/sdb1
是为了本指南的目的。
mkdir /mnt/sd{a,b}1
mount /dev/sda1 /mnt/sda1
mount /dev/sdb1 /mnt/sdb1
步骤3
将现有文件夹/数据从主分区移至次分区。这可能需要几分钟,具体取决于文件夹的大小和驱动器的速度。
mv /mnt/sda1/{home,opt,tmp,usr,var} /mnt/sdb1/
步骤4
在主分区上创建空文件夹,为我们提供挂载点。
mkdir /mnt/sda1/{home,opt,tmp,usr,var} /mnt/sda1/mnt/sdb1
第 6 步
编辑 fstab 以自动挂载辅助分区并绑定挂载相应的文件夹。此步骤很大程度上取决于您当前的配置,可能无法直接复制/粘贴。
使用您最喜欢的编辑器进行编辑/mnt/sda1/etc/fstab
。
您可以在以下位置找到有关 fstab 的详细信息http://man7.org/linux/man-pages/man5/fstab.5.html
首先,我们需要挂载辅助分区,然后才能绑定挂载到它。此分区可能已存在于您的 fstab 中。如果是这样,请相应地编辑/删除配置。在这里,我们假设它是一个具有默认选项的 ext4 分区。
/dev/sdb1 /mnt/sdb1 ext4 defaults 0 2
接下来,配置绑定挂载。
/mnt/sdb1/home /home none defaults,bind 0 0
/mnt/sdb1/opt /opt none defaults,bind 0 0
/mnt/sdb1/tmp /tmp none defaults,bind 0 0
/mnt/sdb1/usr /usr none defaults,bind 0 0
/mnt/sdb1/var /var none defaults,bind 0 0
将您的更改保存到 fstab。
步骤7
重启