如何将逻辑分区转换为主分区?

我有我的主分区最大,但我删除了一些,现在我想让我的一个逻辑分区为主。 我可以用gparted或其他免费工具来做到这一点吗?

谢谢

在你做任何事情之前,做一个完整的金属备份,因为这些types的过程出了问题。

“简单button”是Acronis Disk Director ,售价24美元。

另一种方法是编辑分区表。

注意:此过程在使用EFI的系统(如Mac)上不起作用(我不这么认为)。

要做到这一点,启动一个Linux Live CD并运行:

sudo sfdisk -d /dev/sda > partitions.txt 

…在可以写入的文件夹中 这会给你一个名为partitions.txt的文件,它有你的分区表。 然后使用您最喜欢的文本编辑器编辑该文件,并通过更改数字和顺序将您的逻辑分区放在扩展分区上方。

例如,如果您的sda5是您要创build的分区,请将“sda5”更改为“sda1”(或2/3/4),然后将剩下的数字向下推。 要点是要确保开始,大小和id是相同的。

然后运行:

 sudo sfdisk --force /dev/sda < partitions.txt 

一般

在一些有限的约束下,可以将逻辑分区转换为主分区。 然而,这是一个相当不常见的操作,所以我不知道任何在一个操作中支持这个function的工具,尽pipe你可以在parted,fdisk或类似的程序的帮助下自己做,尽pipe可能通过手动重新计算分区的开始/结束。

几年前我写了一个程序来打印分区表的内容。 假设您的磁盘按以下方式分区:

  Disk /dev/hda (CHS=30401/255/63) WDC WD3200JS-00PDB0 +------------------------------+ 0 - 1043 | hda1 | 8189 Mb +------------------------------+ 1044 - 2087 | hda2 | 8189 Mb +------------------------------+ 2088 - 4699 | hda3 | 20489 Mb + - - - - - - - - +------------------------------+ . 4700 - 5483 | hda5 | 6150 Mb . +------------------------------+ . 5484 - 5999 | hda6 | 4048 Mb . +------------------------------+ . 6000 - 7044 | hda7 | 8197 Mb . +------------------------------+ . 7045 - 8089 | hda8 | 8197 Mb hda 4 +------------------------------+ . 8090 | hda9 | 40986 Mb . 13314 | | . +------------------------------+ . 13315 | | . | | . | hda10 | 134027 Mb . | | . 30400 | | + - - - - - - - - +------------------------------+ 

这里hda4是包含逻辑分区的扩展分区。 通过缩小hda4(覆盖汽缸4700至13314或汽缸5484至30400),可以使hda5或hda10进入主分区。

现在从严格的理论angular度来看,也许可以将主分区放在扩展分区内(而不是缩小扩展分区,只能改变分区的末端),但是谁知道什么是可兼容性问题会由此触发。 这将被认为是一个理智的分区布局由极less数的程序/人(如果有的话/任何人)。

在上面的具体例子中,分区表除了扩展分区外,已经包含了3个主分区,所以没有任何条目可以创build主分区。 您将不得不删除hda1,hda2或hda3中的一个,以便可能将hda5或hda10更改为主分区。

你的问题

你说你有免费的条目来做一个新的主分区,所以应该没问题。 但是,您不要指定要转换的逻辑分区的任何细节,所以我不能说没有您提供更多细节,这是否可能。

步骤来做到这一点

  1. 保存/打印分区表的副本​​,因为它开始搞乱了。 这可以通过我的printpar程序来完成,也可以在使用单元扇区的同时进行。(也可以使用“Fdisk -l”,但是这只有在分区开始于精确的cylineder边界时才是可靠的(传统上是这种情况,不太常见))。

  2. 确保来自第1点的副本可用于纸张或除正在修改的磁盘以外的其他存储。

  3. 对于以下所有步骤,确保分区编辑程序在执行上述操作时不会以任何方式触及文件系统(即分区时应使用'mkpart'而不是'mkpartfs')。

  4. 删除所有的逻辑分区(如hda5到hda10),然后删除扩展分区(如hda4)。

  5. 重新创build扩展分区,现在移动开始或结束,以便要更改的分区结束在扩展分区之外(例如,hda4覆盖从4700到13314柱面或5484到30400柱面,只有柱面数字不是100%可靠,你应该使用确切的扇区号)。

  6. 重新创build除了要更改的逻辑分区(例如,hda6到hda10或hda5到hda9)的逻辑分区,确保它们像以前一样在开始和结束的位置(这就是为什么要在绝对扇区号上操作的原因)。

  7. 重新创build应该更改为主分区的分区,还可以像以前一样在相同的位置开始/结束。 在这一步中,能够给出绝对扇区的位置是非常重要的,因为与原来的逻辑分区相比,新的主分区通常会创build63个扇区。

  8. 打印分区表的新副本并进行比较。 唯一的区别应该是新的主分区,扩展分区的开始/结束以及可能重新编号逻辑分区。


对于上面的例子,如果原来的hda3分区被删除(为了创build一个主分区的空闲条目),并且hda5被转换为主分区(然后变成hda3),那么布局如下:

  +------------------------------+ 0 - 1043 | hda1 | 8189 Mb +------------------------------+ 1044 - 2087 | hda2 | 8189 Mb +------------------------------+ 2088 - 4699 | unused | 20489 Mb +------------------------------+ 4700 - 5483 | hda3 | 6150 Mb + - - - - - - - - +------------------------------+ . 5484 - 5999 | hda5 | 4048 Mb . +------------------------------+ . 6000 - 7044 | hda6 | 8197 Mb . +------------------------------+ . 7045 - 8089 | hda7 | 8197 Mb hda 4 +------------------------------+ . 8090 | hda8 | 40986 Mb . 13314 | | . +------------------------------+ . 13315 | | . | | . | hda9 | 134027 Mb . | | . 30400 | | + - - - - - - - - +------------------------------+ 

请注意,与原始情况相比,所有其余的逻辑分区都重新编号。

我的FixParts程序是一个可以完成这个工作的开源工具,尽pipe可以基于MBR的局限性和目前的布局强加的限制来转换。 (FixParts是一个独立的分区表编辑器,它不能缩小或移动分区,所以如果你的初选完全相互挤在一起,没有空间的话,唯一可以转换成逻辑分区的是第一个。)

我使用系统救援光盘TestDisk和快速扫描后,它列出了我所有的分区,我翻转了L到一个P,然后重写了分区表

这是肮脏的,但它的工作

Paragon Partition Pro可启动磁盘可轻松将逻辑转换为Primary。 只是做了。

您可以使用分区向导 (有一个免费的版本),并按照本文中的说明 。