答案1
您无法执行此操作,因为您的扩展分区表从磁盘中间开始,并且扩展分区表中没有更多空间。
没有标准工具可以让你做你想做的事。但这是可能的。
由于以下两个原因,很难给您提供确切的命令:
- 目前没有足够的信息。
- 这是一个有风险的过程,它可能会出错——丢失所有数据。
但我可以给你一个解决该问题的想法。
请先备份!
首先您需要保存分区模式:
sudo fdisk /dev/sda
使用 fdisk 中的命令p
打印分区表。复制粘贴并妥善保存。您将需要它!安全意味着最好将其保存在 USB 记忆棒或其他外部存储设备中,而不是保存到您要修改的磁盘中。您也可以打印它。
接下来,您需要创建新的分区表,这是o
fdisk 中的命令。最终您将得到空的分区表 - 一切都消失了!这是正常的,无需担心。只要您留在 fdisk 中,一切都会继续工作。
接下来,您将创建新的扩展分区表,即n
(like new)和e
(like extended)命令。您可以选择任何您想要的数字(1-4),或者您可以查找您之前拥有的 sda+number - 即分区表中类型为 的条目Extended
。这应该无关紧要,但为了确保万无一失,请使用相同的数字。
现在,您已拥有覆盖整个磁盘的扩展分区表。但仍然没有分区。
接下来重新创建 sda5-sda7 分区。就是这个顺序!
选择n
(像新的一样)和l
(像逻辑一样)。Start
从您保存的信息中输入 sda5 作为值从您保存的信息中First sector
输入 sda5作为值End
Last sector
如果您收到类似“此位置有文件系统标记,您是否要清除它”的消息,请回答不!否则您将丢失文件系统。请勿清除!这个非常重要。
重复相同步骤。下一个步骤是 sda6,然后是 sda7。
如果您的一个分区有启动标志 - 即保存的 fdisk 信息中的启动列中的 (*),则将其添加回来。a
命令将执行此操作。
您可以p
再次使用命令来验证 sda5-sda7 是否确切地与已保存的信息相同。如果不是,请进行更正。只要您在 fdisk 中并且没有保存任何内容,您就可以通过使用 o 命令创建空分区表来重新开始。
如果您需要更改类型,则可以使用t
命令完成。默认是83 Linux
,这对于大多数 Linux 数据分区来说都可以,但 swap 除外,应该是82 Linux
swap。
如果一切正常,所有开始/结束/尺寸数字完全匹配,然后您才能使用w
命令将其写入磁盘。
如果一切顺利,您已扩展了扩展分区表。尝试重新启动,如果一切正常,则没有损坏任何东西。
即使在此之后,您仍然会遇到与之前相同的情况 - 但现在您可以移动/调整 sda7 的大小。
打开gparted
或您选择的任何其他 GUI 分区工具,将 sda7 移动到磁盘的开始位置,然后调整其大小以使用所有可用空间。但这又是一个可能出错的过程。所以先备份!
再说一遍。这是一个非常危险的操作,特别是如果你不确定自己在做什么以及为什么这么做。只要犯一个小小的错误,比如输入数字时打错一个字,就可能导致你无法访问分区,甚至更糟的是,丢失数据!
另一个重要提示!
只有当磁盘上的分区之后有可用空间时,您才能调整分区大小。因此,在完成所有操作后,您需要移动分区,以便所有可用空间都位于要调整大小的分区之后。我假设 sda7 是磁盘上的第一个分区(这意味着起始扇区是最小的数字)。如果不是,您必须移动每个分区。
是的,这是可以做到的。但这很困难,而且很有可能一个小错误就会让你失去所有的数据。
如果您觉得这个程序不合适 - 就不要做!