我使用的是 Ubutnu 18.04。
目前,根据命令/home
挂载到NVME磁盘上:/
df
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p2 137G 113G 18G 87% /
...
大小为/dev/sda1
400GB,我想将其用作我的 /home,根据fdisk -l
:
Device Start End Sectors Size Type
/dev/sda1 1172275200 1953523711 781248512 372.5G Linux filesystem
/dev/sda1
使用指南,我必须找到使用的 UUIDblkid
/dev/sda1: UUID="3ce518e8-955d-4b26-9dde-c3819d5906d6" TYPE="ext4" PARTUUID="08f6658f-7432-4a48-bdbd-0ee8f16d9b91"
并在 中定义适当的条目/etc/fstab
。所以,现在的内容是
$ cat /etc/fstab
UUID=3ce518e8-955d-4b26-9dde-c3819d5906d6 /home ext4 defaults 0 2
UUID=918a1f7d-b27c-4b82-8a10-ba0d622a37dd / ext4 errors=remount-ro 0 1
UUID=BA35-0600 /boot/efi vfat umask=0077 0 1
UUID=36a37d03-0ba7-4196-83ed-876e2782297e none swap sw 0 0
运行后sudo mount -a
,我看到我的主文件夹变空,所有文件都消失了。
$ ls /home/mahmood/
$
我以前的文件丢失了,但是它们存在。由于/
in的用法df -h
没有改变。
有什么快速解决办法吗?
{更新}
/home2
我厌倦了根据评论重新安装旧分区。于是,我就进入了sudo mkdir /home2 && chmod -R 777 /home2
。然后我编辑/etc/fstab
以保留新旧分区
UUID=3ce518e8-955d-4b26-9dde-c3819d5906d6 /home ext4 defaults 0 2
/dev/nvme0n1p2 /home2 ext4 defaults 0 2
运行后sudo mount -a
,我看到:
$ ls /
bin dev home2 lib libx32 mnt root snap tmp vmlinuz
boot etc initrd.img lib32 lost+found opt run srv usr
cdrom home initrd.img.old lib64 media proc sbin sys var
$ ls /home
DEBIAN mahmood virtualbox-6.0_6.0.0-127566-Ubuntu-bionic_amd64.deb vt win7.vdi
$ ls /home2/
bin dev home2 lib libx32 mnt root snap tmp vmlinuz
boot etc initrd.img lib32 lost+found opt run srv usr
cdrom home initrd.img.old lib64 media proc sbin sys var
我可以在 中看到我的旧文件/home2/home/mahmood
。但是,我不知道为什么我会看到/etc
,/home2/etc
例如。那到底是怎么回事?!
答案1
当您创建新的挂载点 /home 时,数据不会从之前的 /home 移动到新的 /home。
要解决该问题,您必须使用“简单”的解决方法。
有两种情况:
第一个案例是指通过文件 fstab 将旧主目录安装在分区中。
在这种情况下,您可以按以下几行操作:
您必须将整个 /home 复制到新分区中。
第一步是将旧的 /home 原始化为 /home2 并将此行插入到文件 fstab 中,而不删除已插入的新行
/dev/nvme0n1p2 /home2 ext4 defaults 0 2
第二步是重新启动您的电脑。这样,您将拥有两个目录:/home(新家)和/home2(旧家)
第二种情况当/home目录是/下的真实目录时。
在这种情况下,您必须将 /home 重命名为 /home2 (在此之前,您必须从 fstab 中删除新的主行(如果存在),然后重新启动)
sudo mv /home /home2
然后您必须将新的 /home 行插入 fstab 并重新启动。
最后一步(在这两种情况下)是将所有文件从 home2 复制到 home:
sudo cp -apvr /home2/* /home
这样,您将拥有新的 /home,然后可以将 /home2 视为备份副本。
当您确定新的 /home 正确时,您可以自由删除 /home2 中的所有文件:
sudo rm -rf /home2/*
然后,在第一种情况下,您将从 fstab 文件中删除 /home2 行,或者在第二种情况下删除 /home2 目录。
sudo rm -rf /home2
# 在第二种情况下。
我建议您等待一段时间再删除/home2。