最初在我公司设置 Web 服务器的天才将 swap、/var 和 / 目录放在不同的驱动器对上。我需要以某种方式将这三个目录合并到一个驱动器中以便进行迁移。我该如何开始呢?
这是 fstab:
/dev/VolGroupROOT/LogVolROOT / ext3 defaults 1 1
/dev/VolGroupVAR/LogVolVAR /var ext3 defaults 1 2
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/VolGroupSWAP/LogVolSWAP swap swap defaults 0 0
按照要求,在两者上均使用 vgdisplay:/dev/VolGroupROOT
/dev/hda: open failed: No medium found
--- Volume group ---
VG Name VolGroupROOT
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 141.59 GB
PE Size 32.00 MB
Total PE 4531
Alloc PE / Size 4531 / 141.59 GB
Free PE / Size 0 / 0
VG UUID FyYBeE-ZPwK-Gaz0-yVEZ-wPEb-o8zH-zPCHES
/dev/VolGroupSWAP
/dev/hda: open failed: No medium found
--- Volume group ---
VG Name VolGroupSWAP
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 2.91 GB
PE Size 32.00 MB
Total PE 93
Alloc PE / Size 93 / 2.91 GB
Free PE / Size 0 / 0
VG UUID LElLqf-VcS4-rv9T-9wQV-svWU-5AaY-CYIy08
答案1
鉴于 Linux 主要只是一堆文本文件,您应该能够根据需要复制文件。将您的服务器启动到某种救援 CD,将 /dev/VolGroupROOT/LogVolROOT 和 /dev/VolGroupVAR/LogVolVAR 安装到单独的目录中,复制,从 /etc/fstab(无论它安装在何处)注释掉 /var 行,然后重新启动。
就您而言,您需要将 /dev/VolGroupVAR/LogVolVAR 的内容复制到挂载 /dev/VolGroupROOT/LogVolROOT 的目录 var/ 中。请参阅手册页以cp
了解rsync
选项 - 您需要保留权限、遵循符号链接等。
不用担心交换,您可以在没有交换的情况下运行,稍后在不同位置重新添加交换。注释掉 fstab 中的任何交换行,请参阅swapon
。
进行现实检查以确保 ROOT 设备上有足够的空间容纳 VAR 中的所有内容,如果该服务器很重要,请先在另一台机器上尝试。
此外,将 /var、swap 或任何其他目录放在不同的文件系统上是有充分理由的,具体取决于它们的用途:跨磁盘主轴分离 i/o、分离磁盘使用、具有不同层的存储性能等。
答案2
以下是根据您的情况的步骤。
如果你的 / 上没有足够的空间,请扩展你的 PV -> VG -> /dev/VolGroupROOT/LogVolROOT
将其启动到单用户模式。
- 在 fstab 中注释掉 /var
- 创建 /var2 目录
- ls -ld /var /var2
- 确保 /var2 具有与 /var 相同的所有权和权限
- 同步你的 /var -> /var2
- 卸载 /var
- rm -r /var
- MV /var2 /var
对于交换,您可以在上述 VG 中创建一个新的 LogicalVol。删除旧的并激活新的。