我有一台带有 SSD 和 HDD 的笔记本电脑。现在,所有内容都在 SSD 上,但当我开始需要更多位置时,我想将目录之一移动到 HDD 上。
我所有的大文件都在 /data 下。所以我想在我的硬盘上安装/data。困扰我的是我的 Linux 是加密的,所以我不确定如何在不破坏所有内容的情况下移动 HDD 上的所有这些文件。
以下是一些信息:
/0/1/0.0.0 /dev/sda disk 1TB HGST HTS721010A9
/0/1/0.0.0/1 /dev/sda1 volume 931GiB Linux filesystem partition
-
lrwxrwxrwx. 1 root root 10 Jul 19 09:06 d4a8fa1c-04ff-4597-a75d-81e827b380aa -> ../../sda1
-
$ lsblk
sda 8:0 0 931.5G 0 disk
└─sda1 8:1 0 931.5G 0 part
└─luks-d4a8fa1c-04ff-4597-a75d-81e827b380aa 253:2 0 931.5G 0 crypt
nvme0n1 259:0 0 238.5G 0 disk
├─nvme0n1p3 259:3 0 228G 0 part
│ └─luks-2ee64f3a-72ee-453a-aa17-e33d557968fa 253:0 0 228G 0 crypt /
├─nvme0n1p1 259:1 0 500M 0 part /boot
└─nvme0n1p2 259:2 0 10G 0 part
└─luks-69cc9d3c-1b66-4491-b6bf-58456df7d4ac 253:1 0 10G 0 crypt [SWAP]
- $ vi /etc/fstab
/dev/mapper/luks-2ee64f3a-72ee-453a-aa17-e33d557968fa / ext4 defaults,x-systemd.device-timeout=0,discard,noatime,nodiratime 1 1
UUID=453db572-fd28-4fa6-aa3d-1e97890a2977 /boot ext4 defaults 1 2
#/dev/mapper/luks-d4a8fa1c-04ff-4597-a75d-81e827b380aa /data ext4 defaults,x-systemd.device-timeout=0 1 2
/dev/mapper/luks-69cc9d3c-1b66-4491-b6bf-58456df7d4ac swap swap defaults,x-systemd.device-timeout=0 0 0
所以正如你所看到的,我考虑过将 /etc/fstab 中的 /data 添加到正确的磁盘,但我想我仍然需要移动之前的东西?
答案1
是的,除了更新 /etc/fstab 之外,您还必须移动数据。最可靠的选择是使用文件系统(在 LUKS 卷之上)设置新分区,然后使用以下内容:
rsync -vahogSHAXOP /data/ /new-data/
把东西复制过去。使用这些选项的 Rsync 将复制几乎所有内容,除了块布局和 inode 编号(这对于任何现代软件来说都不重要),并且会给您一个相当不错的进度显示。像这样复制还有一个优点,即它可以对文件进行功能碎片整理,并且不会删除源目录中的文件(因此您可以在完全提交之前确保新设置有效)。