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

gon*_*zaw 6 windows windows-7 hard-drive partitioning windows-xp

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

这是我的驱动器中的分区:

/sda1 - Primary - Windows XP - 150GB
/sda2 - Extended
--/sda5 - Logical - Data - 99GB
--/sda6 - Logical - Windows 7 - 50GB
Run Code Online (Sandbox Code Playgroud)

它们显示为在 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 表被修改,我可以从中修复它。

Mar*_*iae 5

您可以使用fixpartsLinux、Windows、Mac OS 和 FreeBSD 中存在的有用实用程序。您可以从此网页下载。您还可以在此处找到大量文档。

由于您已经有一个 Ubuntu 实时棒,我建议您从那里启动,选择Try Ubuntu without installing. 我不记得是否fixparts已经在直播;无论如何,打开一个终端并发出

   man fixparts
Run Code Online (Sandbox Code Playgroud)

如果你得到回复很好,否则你可以通过以下方式安装它

   sudo apt-get install gdisk
Run Code Online (Sandbox Code Playgroud)

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

现在我假设你的引导棒是/dev/sdb,而你的固定盘是/dev/sda。如果不是这样,请相应地更改以下内容。

简单地安装您的硬盘:

      sudo mount /dev/sda5 /mnt
Run Code Online (Sandbox Code Playgroud)

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

   sfdisk -d /dev/sda > /mnt/parts.txt
Run Code Online (Sandbox Code Playgroud)

请记住,USB 记忆棒上的文件是临时文件:一旦您关闭电脑,它们就会丢失。因此,您必须将上面的文件保存在与棒不同的驱动器上;这就是为什么我建议挂载上面的分区。如果需要重新加载上面的分区表,命令为:

  sfdisk -f /dev/sda < /mnt/parts.txt
Run Code Online (Sandbox Code Playgroud)

现在卸载上面的分区,

   sudo umount /mnt
Run Code Online (Sandbox Code Playgroud)

并开始fixparts

   fixparts /dev/sda
Run Code Online (Sandbox Code Playgroud)

现在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
Run Code Online (Sandbox Code Playgroud)

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

完成后,将更改 ( 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
Run Code Online (Sandbox Code Playgroud)

这是针对 Ubuntu Saucy Salamander (13.10),适应您正在运行的版本(精确?)。