好吧,我在主目录中创建了一个目录,以便从硬盘驱动器复制一些书籍,但我发现主目录上没有足够的空间。
如下所示,我在根目录[dev/sda5]上安装了377G(可用),但在主目录[dev/sda7]上仅安装了38G,其中只有16G可用。
如何将根目录中的所有大空间放入我的主目录中,以便我可以利用该空间!?
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.7G 0 1.7G 0% /dev
tmpfs 339M 1.8M 337M 1% /run
/dev/sda5 413G 16G 377G 5% /
tmpfs 1.7G 59M 1.6G 4% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 1.7G 0 1.7G 0% /sys/fs/cgroup
/dev/loop0 98M 98M 0 100% /snap/core/9289
/dev/loop2 55M 55M 0 100% /snap/core18/1754
/dev/loop1 97M 97M 0 100% /snap/core/9436
/dev/loop3 161M 161M 0 100% /snap/gnome-3-28-1804/116
/dev/loop4 162M 162M 0 100% /snap/gnome-3-28-1804/128
/dev/loop5 256M 256M 0 100% /snap/gnome-3-34-1804/33
/dev/loop6 256M 256M 0 100% /snap/gnome-3-34-1804/36
/dev/loop8 63M 63M 0 100% /snap/gtk-common-themes/1506
/dev/loop7 44M 44M 0 100% /snap/riseup-vpn/159
/dev/loop9 44M 44M 0 100% /snap/riseup-vpn/161
/dev/loop10 31M 31M 0 100% /snap/snapd/7777
/dev/loop11 30M 30M 0 100% /snap/snapd/8140
/dev/loop12 2.8M 2.8M 0 100% /snap/telegram-cli/25
/dev/loop13 124M 124M 0 100% /snap/tusk/29
/dev/loop15 92M 92M 0 100% /snap/youtube-dl/2846
/dev/loop14 92M 92M 0 100% /snap/youtube-dl/2840
/dev/sda1 256M 54M 203M 21% /boot/efi
/dev/sda7 38G 21G 16G 57% /home
tmpfs 339M 72K 339M 1% /run/user/1000
答案1
通常,您应该调整分区大小,减少分配给 的空间/dev/sda5
并增加分配给/dev/sda7
.这是最好的长期策略。
显然这是很尴尬的并且没有考虑可能发生的情况/dev/sda6
。
更新:/dev/sda6 是交换区。
既然/dev/sda6
是交换分区,那么您可以安全地执行以下操作。注意:如果您可以临时备份sda6
某处(可能使用 )在根文件系统中的文件上,则几乎同样适用dd
。
- 禁用交换
/etc/fstab
。 - 用于
swapoff
卸载交换区,sda6
如果不是交换区则进行备份。 - (受到推崇的)重新启动到单用户模式。
- 用于
resize2fs
收缩/
文件系统(但不收缩分区) - 调整根分区的大小以匹配较小的文件系统
/dev/sda6
从分区表中删除无用的内容。sda6
从可用空间加上旧分区留下的空间创建一个新分区sda6
- 格式化结果
sda6
并 rsync/home
到它。 - 使用 获取新 sda6 分区的 UUID
blkid
,将其挂载为 fstab 中的 /home。 - 卸载 /dev/sda7 中的旧 home。验证新的 /home 是否安装正常。现在
/dev/sda7
已经变得多余了。 - 消除
/dev/sda7
。 - 增加 /dev/sda6 的大小进入新创建的可用空间,留出足够的空间用于交换
/dev/sda7
从减少的空间中重新创建一个较小的交换空间。- 使用 resize2fs 调整 sda6 中文件系统的大小以匹配更大的分区大小。
mkswap
/dev/sda7
并在 fstab 中使用其 UUID 进行设置;激活它swapon
(或从备份恢复)- (受到推崇的)重新启动并运行
fsck
以确保一切正常。
您现在有一个更大的 /home in/dev/sda6
和一个 swap in /dev/sda7
。其他一切保持不变。小心的话,您甚至可能不需要重新启动,但我建议您使用它来捕获您可能犯下的任何错误(例如,fstab 中的错误 UUID 等)。
分区/文件系统大小匹配错误可能会导致总数据丢失除非你对自己很有信心,还强烈建议进行完整备份。
某些分区编辑器可以让您分裂 /dev/sda5
并在内部创建另一个分区。您将拥有无序分区:5、8、6 和 7。格式化分区 8,rsync home 到分区 8,将 home 挂载到那里,现在您拥有一个 200 GB 的 home,以及一个可用的 /dev/sda7,您可以使用它可以与 /dev/sda6 合并(记得随后扩大文件系统)。
另一种可能性是创建/dev/sda5
一个用户可写入的区域,例如/opt/books
。打开 时/dev/sda5
,该区域有 377 GB 的可用空间。在 home 中创建一个符号链接(books -> /opt/books),您将似乎你家里有 377 GB 的书,但实际上并没有。又快又脏,但它可能对你有用。
请注意,几种备份策略(例如基于“时间机器”rsync + 硬链接)假设 /home 是全部位于单个文件系统上rsync
,通过像s 这样的标志-x
或显式使用硬链接。这些策略现在要么失败,要么默默地忽略备份内容好像目录/home/user/books
。该备份可能会或可能不会添加到 / 的备份中(但 /opt 通常被省略并卸载到不同的备份。例如,在一个系统上,我有单独的/etc
、和 备份,/opt
而/usr/local
/ 否则根本不备份 -一个标准发行版,给定配置和软件包列表,我只是从头开始重新安装它)。
还存在其他更高级的方法。
答案2
你没有 LVM,所以一个简单的方法是在 / 分区上创建一个目录链接到 /home 后面的子目录...
更好的方法是使用高级分区工具,例如 gparted 等...尝试缩小 sda5 并为 sda7 提供大小,或者至少将 sda8 安装为 /home 的子目录(所有这些都来自 live-光盘)
如果你绝对没有数据或全部备份&如果你可以使用 LVM 重新安装&更智能的分区,那就真的更好了......
为了例子LVM 已激活
/ 2g
/boot 1g
/usr 16g
/var 8g
/home 200g