Windows 中已达到分区限制

Windows 中已达到分区限制

我正在尝试使用 Windows、Ubuntu 和 Kali 进行三重启动。但我的 SSD 中已经有 4 个分区。这些是:

  1. 100 MB NTFS(系统、活动、主分区)
  2. Windows C:(启动、页面文件、崩溃转储、主分区)
  3. 824 MB(恢复分区)
  4. 25 GB(主分区)– 这是安装的 Ubuntu。

我知道 Windows 和 Ubuntu 分区,但我不知道为什么其他两个分区位于不同的分区而不是与 Windows 分区位于不同的分区。我如何“合并”这些分区以便为 Kali 创建另一个分区?或者除非我卸载 Ubuntu 或 Windows,否则这是不可能的?

选择空闲分区:

图片 1

选择自动占用最大可用空间的引导式可用分区选项:

图片 2

答案1

100MB NTFS 和 824MB 分区均由 Windows 自动创建。

第一个保存重要文件,以便您的计算机能够以恢复模式启动(如上所述这里),第二个文件夹存储系统的小备份,这样当您的 Windows 开始出现问题时,您可以转到还原点。

您不能删除其中任何一个,否则您可能会在启动 Windows 分区时遇到问题。重新安装 Windows 不会有任何影响,因为这两个分区始终存在。

如果你想安装 Kali,你必须减少主 WindowsC:分区中的空间(这可能需要向左/向右移动分区) 或者 25GB 的 Ubuntu 版本。

答案2

您很可能有四个主分区。Ubuntu 的输出sudo fdisk -l /dev/sdasda如有必要,请用适当的名称替换)将非常有用,但我将尝试在没有它的情况下提供帮助。

现在我可以建议一个一般的方案来解决你的问题。请记住我还没有对其进行整体测试。

由于还没有fdisk输出,我将做出一些假设。我们最终可以稍后纠正它们。假设如下:

  • 驱动器/dev/sda在Linux中;
  • 它有 DOS MBR,而不是 GPT;
  • 四个分区中的每一个都是一个主分区;
  • 逻辑扇区大小为512 B;
  • 分区号与您的编号列表相对应;
  • 分区顺序和数字匹配(sda1在前面sda2等等);
  • 引导程序是 grub2。

就像 acejavelin 所说的那样:

DOS MBR 允许 4 个主分区,或 3 个主分区和 1 个扩展分区

目的是将 Ubuntu 的主分区“转换”为扩展分区内的逻辑分区。Kali 的分区稍后将作为扩展分区内的下一个逻辑分区添加。

准备

  1. 开始之前请阅读我的全部回答,以了解整体情况。根据您当前的分区对齐方式和所需的分区对齐方式,可能会跳过某些步骤;我的意思是主要与 Windows 打交道。
  2. 备份重要数据
  3. 阅读两次,思考两次,检查三次数字- 然后做。
  4. 获取任何合适的 Live CD/DVD Linux – 例如 Knoppix 或 Ubuntu 安装程序(尝试 Ubuntu模式;也许 Kali 安装程序也有这种模式,我不知道)。最重要的是要有gparted。您已经安装的 Ubuntu 在这里没有用,因为我们当时无法挂载它的分区。
  5. 如果需要调整 Windows 分区的大小(请参阅移动分区部分),启动 Windows 并运行chkdskC:它可能需要重新启动,因此请重新启动并重新启动 Windows。
  6. 再次,如果您需要调整 Windows 分区的大小,请按键盘上的 WIN+R 并输入shutdown -s -t 0,然后按回车键。在调整其分区大小之前,请勿再次启动 Windows。如果意外发生这种情况,请使用上述命令关闭。(此步骤在 Windows 8、8.1、10 上可能很重要,可以将其完全关闭。无论哪个版本,它都不会造成任何损害,所以无论如何都要这样做。)
  7. 启动到 Ubuntu。检查/etc/fstab和是否/boot/grub/grub.cfg引用分区由/dev/sdaX或由唯一唯一标识符。每次出现 时/dev/sda4都必须用 替换/dev/sda5,稍后我们会处理它。UUID 引用应该没有问题。

移动分区

从 Live CD 启动 Linux。如果您选择的 Live CD 自动挂载/dev/sda*它们umount

运行sudo gparted /dev/sda。如果我的假设正确,它将显示:

  • sda1一开始很小,
  • sda2旁边就是窗户sda1
  • 少量sda3追随者sda2
  • Ubuntu终于sda4接近尾声了。

我不知道你把 Kali 放在哪里了。可能就在最后,就在 Ubuntu 之后;或者就在之前。

gparted让您对操作进行排队,以便您可以在进行实际更改之前取消其中任何一个操作。

不要触摸sda1。不要触摸 的开头sda2。否则可能会导致您的 Windows 无法启动。您可以通过移动 的结尾来缩小 Windows 分区sda2,这不会影响启动。如果您想为 Kali 和/或 Ubuntu 获得更多空间,请执行此操作。在这种情况下,也请移动 ,以便和sda3之间没有可用空间。sda2sda3

移动/调整 Ubuntu 的大小sda4,使两者之间有 1 MB 的间隙(可用空间)sda3sda4此间隙至关重要。在磁盘的最末端为 Kali 留出空间。

注意:我认为我们需要的间隙仅为一个扇区,因此 1 MB 绰绰有余;gparted可能会更大。不幸的是,此工具适用于兆字节,而不是扇区。命令行工具parted可以处理扇区,但它不太友好,可能无法调整 ntfs 的大小——这就是我选择的原因gparted

应用所有更改并等待结果。移动分区需要时间。

希望一切顺利。通过启动 Ubuntu、Windows 进行健全性检查。预计chkdsk将在调整大小的 Windows 分区上运行。

创建扩展和逻辑分区

再次从 Live CD/DVD 启动。将 MBR(主引导记录,包含分区表)保存到文件中:

sudo dd if=/dev/sda of=~/mbr.dd bs=512 count=1

如果您犯了一些错误,您可以使用以下命令恢复分区表:

sudo dd if=~/mbr.dd of=/dev/sda

不幸的是,MBR 备份对于逻辑分区来说不够,但它可以最大限度地减少对主分区造成的损坏。从现在起,要格外小心。

运行sudo fdisk /dev/sda;它与自己的一组命令交互。更改使用w命令保存到磁盘,而不是更早。遇到问题时,请按q命令退出并重新开始

在里面fdisk调用p命令查看分区表。记下(在纸上)的起始和结束扇区/dev/sda4,因为它是主分区,我们需要删除它然后按逻辑重新创建。验证您的笔记三次。

的起始扇区/dev/sda2可能比 的结束扇区大一个/dev/sda1;这意味着它们之间没有间隙。这同样适用于sda3和对。但是和sda2之间应该有一个间隙。获取 的结束扇区,sda4sda3/dev/sda3添加一个并将结果记为延长开始。验证数字三次。确保它比的开头小sda4

使用命令删除分区号 4。d请注意,即使您现在将更改写入磁盘,也不会真正破坏您的 Ubuntu。数据仍然存在,fdisk只是丢失了分区所在的位置。您将在几分钟内将其重新创建为逻辑分区。

使用命令创建新分区n;让它成为扩展分区。fdisk将建议一个起始扇区,其编号恰好是您的延长开始值 – 检查是否匹配,如果匹配,则按 Enter。然后,它会建议将结束扇区作为磁盘的最后一个可用扇区 – 如果正确,则按 Enter。

再次使用命令创建新分区。它将是编号为 5 的逻辑分区。给出与原始分区n完全相同的起始和结束扇区。sda4

您可能会注意到这些数字使sda4分区包含。这是正确的,逻辑分区必须全部位于扩展分区内。由于还有剩余空间,sda5Kali Linux 应该能够在其中创建自己的扩展分区。sda4

新的分区表仍仅存在于内存中(磁盘尚未受到影响)。使用p命令检查它。在使用写入之前w,请仔细检查以下几点:

  1. sda5默认情况下应显示 ID= 83;该值适合 Linux。如果不同,请使用t命令将其更改为。83
  2. sda5应显示开始和结束部门,因为这些部门是原始的sda4
  3. 新的sda4应该从 的最后一个扇区之后的扇区开始sda3;该数字应该小于sda5起始扇区。

上述列表中的第 3 位非常重要。稍后您将把更改写入磁盘。分区 1-4 的信息将存储在 MBR 中。我们可以使用我们制作的 MBR 备份恢复此更改。但逻辑分区的信息sda5将存储在扩展分区的开头sda4。从没有数据的正确位置开始至关重要sda4——这就是我们创建的间隙。如果您错过这个间隙,您可能会立即丢失一些数据。

经过三重检查后,调用w命令将更改写入磁盘。fdisk应该将新分区告知内核,这样就可以/dev/sda5挂载了。现在这就是您的 Ubuntu。

(若没有/dev/sda5节点,请尝试sudo partprobe修复它。)

更新文件(如果需要)

一开始我建议检查你的 Ubuntu 是否使用而fstab不是UUID。从现在开始将是旧的,所以文件可能需要更新。我认为这样做是安全的,即使文件中没有提到,所以如果有任何疑问,就这样做。首先安装:grub.cfg/dev/sda4sda4sda5sda4

sudo mount -o rw /dev/sda5 /mnt

您将找到这些文件,如/mnt/etc/fstab/mnt/boot/grub/grub.cfg。不要将/etc/fstab其与属于 Live CD Linux 且与您的 Ubuntu 无关的文件混淆。请备份文件,并将每个sda4文件替换为sda5。这可以通过一个命令完成:

sudo sed -i.backup 's/sda4/sda5/' /mnt/etc/fstab /mnt/boot/grub/grub.cfg

最后重新启动并检查两个系统是否正常启动。Kali Linux 现在应该能够在安装过程中利用可用空间。

相关内容