最简单的方法(两个 USB 设备)

最简单的方法(两个 USB 设备)

所以我在 USB 上安装了 Kubuntu,但问题是我错误地格式化/分割了磁盘空间。这导致我的 Linux 安装几乎没有可用的磁盘空间,而我剩余的磁盘空间则浪费在我并不真正使用的“USB 存储”分区上。

分区

所以我想知道重新格式化 sdb1 分区的最佳方法是什么,以便我可以将其用作 sdb2 分区的额外空间。

答案1

在下部区域移动分区将是一个巨大的痛苦。这里的问题是启动是如何发生的。我怀疑这是SDB5 512兆区域所为。可能还有一些引导代码告诉系统从 sdb5 启动。

但这意味着该引导块中的某些内容“知道”Linux 安装在 sdb6 中,因此你不敢改变这一点

最简单的方法(两个 USB 设备)

获取一个新的 USB 密钥并将其插入。从 Linux 启动。以相同的方式格式化新的 USB 闪存盘,但使用“更好”的分区。然后将数据从旧密钥复制到新密钥。验证它是否有效。你完成了!

您可以做什么(仅使用一个 USB 设备)

您可能知道,Linux 有挂载点!你可以混合搭配那些!所以:

  • 备份重要的内容

  • 在 Linux 中启动并登录在单一(“恢复”)模式下

  • 通过将 sdb1 分区重新格式化为 ext4 来销毁其内容:

    mkfs.ext4 /dev/sdb1

  • 现在检查您的 Linux 安装并查看哪些内容占用了空间:

    du -sk /* 2>/dev/null | 复制代码排序-n

例如,在我的测试系统上(经过几秒钟的磁盘扫描后):

...smaller fry removed...
12220   /run
13320   /sbin
18992   /etc
125244  /boot
873108  /home
873324  /lib
1154900 /opt
1537488 /root
4648100 /usr
15088048        /var

所以我主要将我的系统用于 /var。完美的。我将移动/var。

  • 将新格式化的 sdb1 挂载到 /mnt

    挂载 /dev/sdb1 /mnt

  • 将“/var”复制到“/mnt”(因此,在开始之前检查是否已安装 rsync)

    rsync -a /var /mnt

  • 现在(这是应该在“单一模式”、文本模式启动、所有服务停止的情况下完成的;否则您可能甚至无法做到这一点)

    mv /var /oldvar # 因此您可以根据需要返回,将 oldvar 恢复为 var

  • 重新创建一个新的 /var

    mkdir /var

  • 检查 oldvar 的权限并将其复制到新的 /var 上

  • 将一行 sdb1 添加到 /etc/fstab 中的挂载点列表中:

    echo "/dev/sdb1 /var ext4 auto 0 2" >> /etc/fstab

现在,每次启动时,sdb1 分区都会链接到 /var,您将能够在该分区上存储最多 17 GiB 的数据。

如果您现在重新启动,一切都应该像以前一样工作,您将看到一个完整的 /var,并且 sdb6 上根本没有可用空间,因为它被 oldvar 占用了。彻底检查一切是否正常。当您确定后,删除 oldvar 目录及其所有子目录。

笔记:我的示例使用/var。您可能会发现您需要移动 /home。一样。或者您可以深入一层以上,看看是什么占用了空间里面/var:

du -sk /var/* 2> /dev/null | 复制代码排序-n

在我的例子中,我发现 /var/www 占据了 90% 的空间。所以我不需要重新定位整个 /var,我可以使用“/var/www”执行上述步骤,并且仍然可以获得 90% 的好处。另外,现在我不需要登录到单一模式或重新启动,因为在我的系统上 /var/www 肯定只由 Apache HTTP 服务器使用,我可以停止并重新启动而无需重新启动(而 /var/log、/var /run、/var/mail 等可能正在使用并且需要单一模式):

apache2ctl stop
rsync -a /var/www /mnt
mv /var/www /var/oldwww
mkdir /var/www
# Set up the same ownership and permissions of the old /var/www
chown www-data:users /var/www  
chmod 775 /var/www
# Compare the two ls lines
ls -la /var | grep www
# If ownership and pemissions are OK go on
echo "/dev/sdb1 /var/www   ext4   auto  0  2" >> /etc/fstab
# Free up sdb1 from mnt
umount /mnt
# Check whether the automount from fstab works
mount /var/www
# Now everything is as before, www is there and useable, it's just on sdb1.
apache2ctl start
# Now verify everything works again. IF it works, oldwww is useless.
rm -rf /var/oldwww # kill the original www

(我也可以直接在新的 /var/www 上创建、安装它,然后将 oldww 同步到 www,而根本不涉及 /mnt)。

相关内容