我目前已将所有备份保存在 中/home
。我在机器中添加了一个新的 2 TB 磁盘,并希望扩展我的当前的 /home
按 2 TB 进行分区(可能使用 LVM)。但是,出于显而易见的原因,我不想丢失数据/home
。
最好的方法是什么?在 2 TB 磁盘上创建一个新的 LVM 组,然后将旧/home
分区添加到其中?或者还有其他方法吗?
编辑
我当前的分区表:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 39G 11G 27G 28% /
/dev/sda2 99M 31M 64M 33% /boot
/dev/sda5 2.0G 68M 1.9G 4% /tmp
/dev/sda6 876G 474G 357G 58% /home
答案1
假设您的 2 TB 驱动器是/dev/sdb
。
- 从中创建一个物理卷:
pvcreate /dev/sdb
。 - 创建卷组:
vgcreate <name of the VG> /dev/sdb
。 - 从 VG 创建 LV
lvcreate --extents %FREE --name <name of the LV> <name of the VG>
:。 - 假设您的首选文件系统类型是 ext4
mkfs.ext4 -m 0 /dev/mapper/<name of the VG>-<name of the LV>
:。 - 将新创建的 LV 挂载到某个位置(例如
/mnt
):mount /dev/mapper/<name of the VG>-<name of the LV> /mnt
并从那里复制内容/home
。我将使用 rsync 来实现此目的:rsync -av /home/ /mnt/
。这会花费您一些时间,并且您希望 /home 保持挂载状态,以便您的每日备份能够顺利运行。rsync 完成后,重新运行它以捕获更改。要绝对确保将所有数据从 /home 复制到 /mnt,您可以将 /dev/sda6 重新挂载为只读,然后再次运行 rsync。 - rsync完成后:
umount /dev/sda6
,,并相应地修复 /etc/fstab(运行以测试它)。umount /dev/mapper/<name of the VG>-<name of the LV>
mount /dev/mapper/<name of the VG>-<name of the LV> /home
mount -a
- 此时,新驱动器上会有 /home,而 /dev/sda6 可以自由加入 LVM 配置。您需要将其添加到 LVM。更改分区的系统类型:
fdisk /dev/sda
,然后t-6-L-8e-w-q
(我相信这是顺序,但不确定现在是否需要它)。 - 将 /dev/sda6 添加到 VG:
pvcreate /dev/sda6
、vgextend、lvextendresize2fs -p /dev/mapper/<name of the VG>-<name of the LV>
、。 - 完毕!
答案2
您可以将主目录移至额外的分区,而不是扩展主文件夹。这也使得迁移到新系统变得容易得多,而无需移动主目录。
创建一个新分区并使用您选择的文件系统(即 ext4)对其进行格式化。将主文件夹中的所有内容复制到新分区,然后通过在 /etc/fstab 中添加相应的行来告诉系统在启动时将新分区挂载到主目录中:
UUID=<some UID of your new partition> /home/username ext4 nodev,nosuid 0 1
根据文件系统和挂载选项,您可能需要更改此行。
编辑 - 啊,明白了。您确实需要两个驱动器。在这种情况下,LVM 可以做到,但您必须在创建分区时将数据存储在某个地方...
sudo vgcreate vol_grp1 /dev/sda7
sudo lvcreate -n logical_vol1 vol_grp1
sudo mkfs.ext3 /dev/vol_grp1/logical_vol1
然后将其安装到某个地方并将数据复制到其中。卸载当前主磁盘并在其位置安装新的 VG 磁盘。之后,您将能够使用 lvextend 将其扩展到原始驱动器。
vgextend logical_vol1 /dev/sda?
lvextend /dev/logical_vol1/logical_vol1