如何将逻辑分区更改为主分区?

如何将逻辑分区更改为主分区?

目前我已安装 Windows XP 和 Windows 7 双启动。我一直想删除我的 XP 安装(正在等待购买外部硬盘来备份数据)以便在 Windows 7 分区中获得更多空间,因为我的空间已经不够了。

以下是我的驱动器中的分区:

/sda1 - Primary - Windows XP - 150GB
/sda2 - Extended
--/sda5 - Logical - Data - 99GB
--/sda6 - Logical - Windows 7 - 50GB

它们的显示顺序就像是 HDD 中的物理顺序一样(从左到右,即 sda1 在前,然后是 sda2,等等)。

我备份了所有数据,并使用 GParted(来自 Ubuntu LiveUSB)尝试:

  • 删除包含 Windows XP 的整个分区
  • 将我的 Windows 7 分区设为主分区,以便我的系统可以从该分区启动
  • 使用已删除的 Windows XP 分区留下的 150GB 未分配空间来扩展 Windows 7 分区(有 50GB),所以我的 Windows 7 分区最终有 200GB

但是,我尝试使用 GParted,但不知道该怎么做。我不太清楚如何将分区更改sda6为主分区,并将其放置在可以使用sda1(删除后)剩余空间进行扩展的位置。我同意保留sda5为逻辑分区。据我尝试,删除分区后我唯一能做的事情sda1就是扩展sda2,但这并不是我想要的。

谢谢

编辑:我也有 Windows 7 安装盘,因此如果 MBR 表被修改,我可以从中修复它。

答案1

您可以使用fixparts,这是 Linux、Windows、Mac OS 和 FreeBSD 中存在的一个实用实用程序。您可以下载从此网页。您还可以找到大量文档这里

由于你已经有一个 Ubuntu Live Stick,我建议你从那里启动,选择Try Ubuntu without installing。我不记得 是否fixparts已经在 Live 上;无论如何,打开终端并输入

   man fixparts

如果你得到答复,否则你可以通过以下方式安装

   sudo apt-get install gdisk

(感谢@RodSmith 指出这一点)。

现在我将认为您的启动盘是 /dev/sdb,而您的固定磁盘是 /dev/sda。如果不是这样,请相应地更改以下内容。

简单挂载你的硬盘:

      sudo mount /dev/sda5 /mnt

将当前分区表保存到安全的地方:

   sfdisk -d /dev/sda > /mnt/parts.txt

请记住,USB 上的文件是临时的:关闭 PC 后,它们会立即丢失。因此,您必须将上述文件保存在与 USB 不同的驱动器上;这就是我建议安装上述分区的原因。如果您需要重新加载上述分区表,命令为:

  sfdisk -f /dev/sda < /mnt/parts.txt

现在卸载上面的分区,

   sudo umount /mnt

并开始fixparts

   fixparts /dev/sda

现在p将打印分区表,h打印可用的命令,r将逻辑分区转变为主分区,w将更改写入磁盘。

上面引用的教程解释了在什么条件下可以将主分区转换为逻辑分区,反之亦然,但更能说明问题的是下表fixparts

                                                     Can Be   Can Be
  Number  Boot  Start Sector   End Sector   Status   Logical  Primary   Code
     1      *             62      1171799   logical     Y        Y      0x07
     2               1171800      1562399   primary              Y      0x83
     3               1562462      3124799   primary              Y      0x0C
     5               3124862      3980213   primary              Y      0xAF

它非常清楚地显示了哪个分区可以改变逻辑/主要状态。

完成后,将更改(w)写入磁盘,然后无需 USB 驱动器重新启动。

编辑:

确保您的 /etc/apt/sources.list 包含以下所有行:

  deb http://us.archive.ubuntu.com/ubuntu/ saucy main restricted
  deb http://us.archive.ubuntu.com/ubuntu/ saucy-updates main restricted
  deb http://us.archive.ubuntu.com/ubuntu/ saucy universe
  deb http://us.archive.ubuntu.com/ubuntu/ saucy-updates universe
  deb http://us.archive.ubuntu.com/ubuntu/ saucy multiverse
  deb http://us.archive.ubuntu.com/ubuntu/ saucy-updates multiverse
  deb http://us.archive.ubuntu.com/ubuntu/ saucy-backports main restricted universe multiverse
  deb http://security.ubuntu.com/ubuntu/ saucy-security main restricted
  deb http://security.ubuntu.com/ubuntu/ saucy-security universe
  deb http://security.ubuntu.com/ubuntu/ saucy-security multiverse
  deb http://archive.canonical.com/ubuntu/ saucy partner
  deb http://extras.ubuntu.com/ubuntu/ saucy main

这是适用于 Ubuntu Saucy Salamander (13.10)的,请适应您正在运行的版本(准确吗?)。

答案2

实际上,如果您成功地将 Windows 7 安装从逻辑分区更改为主分区,它可能会变得混乱,因为这肯定会改变其分区号,并且引导加载程序可能再也找不到它了(也许 win7 已经变得更智能了,但 XP 肯定会因此而受阻)。我建议遵循 Lawrence 的建议,只需删除 sda1 分区,然后调整扩展分区的大小以考虑额外的可用空间,然后在下一步中将当前可用空间添加到数据分区或移动该分区,然后调整操作系统分区的大小。

与往常一样,对于这种性质的变化,请确保所有您不想丢失的数据都已备份在外部介质上。

相关内容