linux - How to move a primary partition into an extended one?
2014-04
My installation is Fedora 18 and Windows 8, and I need room for another system.
I have a very delicate task: I need to move my primary /boot partition inside an extended partition which contains all other system's partitions (home, root and swap). Layout is as follows:
Dispositivo Boot Start End Blocks Id System
/dev/sda1 * 2048 718847 358400 7 HPFS/NTFS/exFAT
/dev/sda2 718848 84604927 41943040 7 HPFS/NTFS/exFAT
/dev/sda3 84604928 85628927 512000 83 Linux
/dev/sda4 85628928 883879935 399125504 5 Estendida
/dev/sda5 85630976 92938239 3653632 82 Linux swap / Solaris
/dev/sda6 92940288 197797887 52428800 83 Linux
/dev/sda7 197799936 883879935 343040000 83 Linux
If an image is preferred (it is in portuguese):
I have much more empty space than used space, if needed, as seen in the screenshot, and I also have an external drive with more than 250G free. I want to have boot partition inside the extended, if possible. Fedora by default uses the most possible primary partition quantity, and I want to free one up to install another OS. Another very wanted solution would be to move Windows' partitions inside an exclusive extended partition, as I think Windows' boot partition is not used (I use GRUB as bootloader).
Linux can boot from a logical partition just fine. There are a handful of partitioning programs that can convert primary partitions to logical partitions and vice-versa, but there are often (perhaps always) limits. The program I'm most familiar with for this task is my own FixParts. I recommend you read its Web page to learn how to use it.
In your case, the major problem is that there's no free space between your /dev/sda2
and /dev/sda3
. Thus, you'll need to shrink one of these partitions to create some free space -- just one sector is plenty, but you'll probably have to shrink it by 1MiB. GParted can do this job, but there is a caveat: Windows can be pretty fussy about its boot partition. If you're booting from /dev/sda2
, it could be rendered unbootable by shrinking that partition in GParted. Thus, it might be better to do this from Windows. Once there's unallocated space just before /dev/sda3
, FixParts should have no problems converting it to a logical partition inside your extended partition.
Fedora 14 xfce
I have the following partition setup. I would like to know how can I convert the logical partition sda6 to a primary partition.
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x1707a8a5
Device Boot Start End Blocks Id System
/dev/sda1 2048 1026047 512000 83 Linux
/dev/sda2 1026048 205844479 102409216 83 Linux
/dev/sda3 205844480 214228991 4192256 82 Linux swap / Solaris
/dev/sda4 214228992 625141759 205456384 5 Extended
/dev/sda5 214231040 573562879 179665920 83 Linux
/dev/sda6 573564928 625141759 25788416 7 HPFS/NTFS
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 97G 5.0G 91G 6% /
tmpfs 494M 176K 494M 1% /dev/shm
/dev/sda1 485M 68M 392M 15% /boot
/dev/sda5 169G 26G 135G 16% /home
# partition table of /dev/sda
unit: sectors
/dev/sda1 : start= 2048, size= 1024000, Id=83
/dev/sda2 : start= 1026048, size=204818432, Id=83
/dev/sda3 : start=205844480, size= 8384512, Id=82
/dev/sda4 : start=214228992, size=410912768, Id= 5
/dev/sda5 : start=214231040, size=359331840, Id=83
/dev/sda6 : start=573564928, size= 51576832, Id= 7
I would like to convert sda6 to a primary partition, the reason for this it to install windows 7 starter.
Many thanks for any suggestions,
With that partition layout you will not be able to change sda6 to a primary partition without first deleting both sda5 and sda4 (the extended partition itself) as you can only have a maximum of 4 primary partitions on a drive. This is a limitation of how drives are partitioned and is why you end up with extended (logical) partitions in the first place.
http://en.wikipedia.org/wiki/Disk_partitioning
The total data storage space of a PC hard disk can be divided into at most four primary partitions, or alternatively three primary partitions and an "extended partition". These partitions are described by 16-byte entries that constitute the Partition Table, located in the master boot record.
The best you can do is delete sda4, sda5 and sda6 and create the primary partition in the emptied space.
Alternatively you could just buy a new drive to install Win7 on.
You can't. There are already 3 primary partitions plus one extended partition on the disk. In any case, there's no reason why Windows 7 (or any >NT version of Windows) won't/can't install on a logical partition.
Windows does not need to be installed onto a primary partition. It does however need to have a primary partition onto which it can put its boot stuff.
If you can live without the separate Linux boot partition, I would suggest moving the Linux boot stuff from its own partition (/dev/sda1) to / (/dev/sda2), formatting sda1 as ntfs (and mark it as being active), and then installing Windows onto /dev/sda6: the Windows installer should be quite happy to do it.
(As an example I've just created a Virtual machine, and, on the hard disk made a primary 512MB partition (marked active and formatted as ntfs) and an extended partition containing one logical partition formatted as ntfs. Windows XP installed quite happily on the logical partition.)