这是我的分区
lsblk -o NAME,FSTYPE,LABEL,SIZE,MOUNTPOINT
NAME FSTYPE LABEL SIZE MOUNTPOINT
sdb 9.1T
├─sdb1 swap 16G [SWAP]
├─sdb2 ext3 512M /boot
├─sdb3 ext4 2T /
├─sdb4 ext4 7.1T /home
└─sdb5 1M
df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 912K 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/sdb3 2.0T 4.8G 1.9T 1% /
tmpfs 16G 16K 16G 1% /tmp
/dev/sdb2 488M 218M 245M 48% /boot
/dev/sdb4 7.1T 4.6T 2.2T 68% /home
tmpfs 3.1G 0 3.1G 0% /run/user/0
我想从根目录/2T占用空间到/home分区,而不丢失数据
答案1
这种操作类似于15-拼图 最好重新安装 Linux 并恢复主目录的备份。
但如果你喜欢挑战,你可以尝试这个:
当然,我可能是错的,这可能会让您丢失所有数据。
- 安装分离
- 启动单用户
- 调整/分区的大小
parted /dev/sdb
(parted) p
...
调整大小3 www xxx - 重启单用户
- 分开
(分开) p
...
调整大小 4 yyy zzz - 重启
答案2
正如人们在这里提到的,调整分区大小可能非常危险。并且您最好确保该计算机上的关键数据有备份,无论它位于哪个分区。
作为替代解决方案,您可以使用“dump”和“restore”命令备份根文件系统,重新创建根分区,然后将转储恢复到新分区。
另外,建议使用 /home 下单独安装点(例如 /home/bigdata)上节省的空间,而不是将其添加到主分区。这种方法的优点是您不需要调整巨大的主分区的大小,从而减少数据丢失的机会。
以下是我建议的替代方案的步骤。不过,您仍然需要查找命令转储/恢复的具体参数。
- 使用 USB 记忆棒(或 CD-ROM,如果您还有的话)重新启动计算机,
dump -0
在根分区上执行 a到某处- 使用parted重新创建较小尺寸的根分区,然后将其重新格式化为ext4文件系统
- 将根分区的转储恢复到新的,并使用
restore
命令 - 使用节省的空间创建一个新分区,并将其安装在您需要的地方。