为什么对充当挂载点的目录进行复制操作时不会将数据复制到挂载的驱动器?

为什么对充当挂载点的目录进行复制操作时不会将数据复制到挂载的驱动器?

为什么对充当挂载点的目录进行复制操作时不会将数据复制到挂载的驱动器?

我购买了一个 2 TB 驱动器并将其安装在我的主目录中的子目录中。

/dev/sdb我的 500GB 系统驱动器在哪里,/dev/sda我的 2TB 数据驱动器在哪里:

Partition        Mountpoint
/dev/sdb1   ->   /
/dev/sdb3   ->   /home
/dev/sdb2   ->   swap
/dev/sda1   ->   /home/data

这一切似乎工作,甚至正确显示df -h(即/dev/sda1安装在/home/data[重新生成我启动到拱形磁盘实时环境的 fstab 并将分区安装到/mnt我想要分区的文件夹中,运行genfstab -U /mnt > /mnt/etc/fstab;它工作了])

昨晚我将盒子设置为运行 650GB 复制操作到/home/data.想象一下,当大量复制操作由于磁盘空间不足而失败时,我会感到多么惊讶。

df -h显示/dev/sdb3已满但/dev/sda1几乎为空(77MB)。据我所知,安装点运行正常,但复制操作将所有数据放入/dev/sdb3!据推测,如果我卸载驱动器,音乐仍将在/home/data.

显然,我没有完全理解有关挂载和 fstab 的内容。

fstab 中的特定条目如下:

# /dev/sdb1
UUID=<UUID>    /            ext4     rw,relatime 01

# /dev/sdb3
UUID=<UUID>    /home        ext4     rw,relatime 02

# /dev/sda1
UUID=<UUID>    /home/data   ext4     rw,relatime 02

在重新生成 fstab 之前,我在 fstab 中有一个交换条目。我不知道为什么它没有再生。

更新:我设法得到的输出mount

proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sys on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
dev on /dev type devtmpfs (rw,nosuid,relatime,size=4051032k,nr_inodes=1012758,mode=755)
run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
/dev/sdb1 on / type ext4 (rw,relatime)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/rdma type cgroup (rw,nosuid,nodev,noexec,relatime,rdma)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=44,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=13569)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev)
configfs on /sys/kernel/config type configfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
/dev/sdb3 on /home type ext4 (rw,relatime)
/dev/sda1 on /home/data type ext4 (rw,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=811560k,mode=700,uid=1000,gid=1000)

答案1

您提到您的复制命令是cp -r /mnt/music data/在您处于~.

这意味着您要将数据复制到/home/<username>/data, 因为~会扩展到/home/username.

/home/data但是,根据mount您提供的输出,您的外部驱动器安装为。为了完成你的目标,你需要做两件事:

  • 将所有数据复制/home/<username/data到该/home/data目录。
    • rsync -avHP /home/<username>/data/* /home/data/(或一些变体)
    • 这会将所有数据从主分区移至外部驱动器。
  • 确定您想要访问驱动器的方式
    • 将其安装为/home/data,然后以这种方式访问​​它
    • 一种选择是创建一个符号链接来~访问它:ln -s /home/data ~/data
    • 另一种选择是编辑 fstab 以将外部驱动器的安装点设置为/home/<username>/data

相关内容