-
What is the maximum No. of hard disk partitions after kernel 2.6.28
Introduction
A few years ago the Linux kernel used to support a Pata or IDE disk with 63 partitions and a SCSI/Sata/USB disk with 15 partitions. Later this was standardised that every hard disk was to have 15 partitions maximum.
Well just like an old woman Linux could not make up its mind and now with the new 2.6.28 kernel the maximum number of partition in a hard disk has been changed again. It is so bad that no one seems to know what is the current limit.
The old limit was set by two parameters known as the major and minor numbers where together provide 256 block devices for each type of controller. The IDE channels have 4 devices of hda, hdb, hdc and hdd so each hard disk plus it disk name make up 64 devices names (hda, hda1 to hda63). A maximum 4 hard disks give a total of 256 devices names.
Sata/SCSI/USB hard disks achieve this by a maximum of 16 disks. Again the 256 is a product of 16 disk x16 device names.
The current break through apparent is due to the major and minor numbers no longer static but can be dynamically changed according to the user usage.
The pain with partitioning
The pain is due to the change being so new that Linux basic partitioning tools like fdisk, cfdisk and sfdisk do not know what to do and so they respond in different ways. The new change can play havoc with some installers that have not yet been modified to match the new change.
Here are a few reactions I have encountered
(i) sfdisk can apparently handle a maximum 130 partitions in a hard disk but the created partition table is rejected by cfdisk.
(ii) fdisk has never been able to show more than 60 partitions. The Red Hat version family distros used to display only 15 but now all of them will display 60 maximum.
(iii) cfdisk used to be able to partition up to 63 partitions but the last 3 may not be reliable. It is still the same.
The safest number of partitions that can be accepted by all three partitioning tools are around 56 partitions. This is from trial and error with the current kernel. I expect the situation will improve with time.
Fun with partitioning
I think it is fun to generate a large number of partitions in a hard disk by a script. First I tried with Python with this script
Code:
f=file('try','w')
f.write('sfdisk /dev/sdb << EOF\n')
f.write(',1000,L\n')
f.write(',1000,L\n')
f.write(',1000,L\n')
f.write(',,E\n')
i=0
y=',1000,L\n'
cylin=182041
while cylin > 1000:
cylin=cylin-1000
f.write(y)
i=i+1
f.write(',,L\n')
f.write('EOF\n')
print 'No. of partitions = ',i
f.close()
Basicall I bought a 1.5Tb hard disk hooked up as sdb. It has 182041 cylinders so I just make up commands in sfdisk to create 182 partition each 1000 cylinder large (about 8Gb). The above script generate an output file called "try" which I ran as a Bash script.
Sfdisk only accepted the instructions for the first 130 partitions and ignore the rest of the commands.
As reported earlier cfdisk and fdisk didn't like this partition table with 130 partitions but I managed get Ubuntu to format the 130th partition and put files in it. Thus I know it works.
To play safe I decided to use fdisk and wrote a script for it. Funny enough the partition table generation works only for cfdisk if the number of partition terminates at 56 and not beyond. Here I wrote in Python script to generate an output file called "gen56" list as follow
Code:
d
1
d
2
d
3
d
4
n
p
1
1
10000
n
p
2
10001
20000
n
p
3
20001
30000
n
e
4
n
30001
32000
n
32001
34000
n
34001
36000
n
36001
38000
n
38001
40000
n
40001
42000
n
42001
44000
n
44001
46000
n
46001
48000
n
48001
50000
n
50001
52000
n
52001
54000
n
54001
56000
n
56001
58000
n
58001
60000
n
60001
62000
n
62001
64000
n
64001
66000
n
66001
68000
n
68001
70000
n
70001
72000
n
72001
74000
n
74001
76000
n
76001
78000
n
78001
80000
n
80001
82000
n
82001
84000
n
84001
86000
n
86001
88000
n
88001
90000
n
90001
92000
n
92001
94000
n
94001
96000
n
96001
98000
n
98001
100000
n
100001
102000
n
102001
104000
n
104001
106000
n
106001
108000
n
108001
110000
n
110001
112000
n
112001
114000
n
114001
116000
n
116001
118000
n
118001
120000
n
120001
122000
n
122001
124000
n
124001
126000
n
126001
128000
n
128001
130000
n
130001
132000
n
132001
134000
w
q
To run it I just issue the command
Code:
fdisk /dev/sdb < gen56
The code actually deletes all the previous 4 primaries and regenerate 3 primaries and one extended partition to put in 2000 cylinders each. I have increased the 3 primaries (first 3 partitions) to 10,000 cylinders. If a user deletes an extended partition all the logical partition inside will be gone so nuking the 4 primaries will clear a hard disk completely.
The partition table now looks like this
Code:
root@DL:/media/16GB_1STFAT/Sam-office/office cabinet/Linux/64partitions# fdisk -l /dev/sdb
Disk /dev/sdb: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x58e84b8a
Device Boot Start End Blocks Id System
/dev/sdb1 1 10000 80324968+ 83 Linux
/dev/sdb2 10001 20000 80325000 83 Linux
/dev/sdb3 20001 30000 80325000 83 Linux
/dev/sdb4 30001 182401 1224161032+ 5 Extended
/dev/sdb5 30001 32000 16064968+ 83 Linux
/dev/sdb6 32001 34000 16064968+ 83 Linux
/dev/sdb7 34001 36000 16064968+ 83 Linux
/dev/sdb8 36001 38000 16064968+ 83 Linux
/dev/sdb9 38001 40000 16064968+ 83 Linux
/dev/sdb10 40001 42000 16064968+ 83 Linux
/dev/sdb11 42001 44000 16064968+ 83 Linux
/dev/sdb12 44001 46000 16064968+ 83 Linux
/dev/sdb13 46001 48000 16064968+ 83 Linux
/dev/sdb14 48001 50000 16064968+ 83 Linux
/dev/sdb15 50001 52000 16064968+ 83 Linux
/dev/sdb16 52001 54000 16064968+ 83 Linux
/dev/sdb17 54001 56000 16064968+ 83 Linux
/dev/sdb18 56001 58000 16064968+ 83 Linux
/dev/sdb19 58001 60000 16064968+ 83 Linux
/dev/sdb20 60001 62000 16064968+ 83 Linux
/dev/sdb21 62001 64000 16064968+ 83 Linux
/dev/sdb22 64001 66000 16064968+ 83 Linux
/dev/sdb23 66001 68000 16064968+ 83 Linux
/dev/sdb24 68001 70000 16064968+ 83 Linux
/dev/sdb25 70001 72000 16064968+ 83 Linux
/dev/sdb26 72001 74000 16064968+ 83 Linux
/dev/sdb27 74001 76000 16064968+ 83 Linux
/dev/sdb28 76001 78000 16064968+ 83 Linux
/dev/sdb29 78001 80000 16064968+ 83 Linux
/dev/sdb30 80001 82000 16064968+ 83 Linux
/dev/sdb31 82001 84000 16064968+ 83 Linux
/dev/sdb32 84001 86000 16064968+ 83 Linux
/dev/sdb33 86001 88000 16064968+ 83 Linux
/dev/sdb34 88001 90000 16064968+ 83 Linux
/dev/sdb35 90001 92000 16064968+ 83 Linux
/dev/sdb36 92001 94000 16064968+ 83 Linux
/dev/sdb37 94001 96000 16064968+ 83 Linux
/dev/sdb38 96001 98000 16064968+ 83 Linux
/dev/sdb39 98001 100000 16064968+ 83 Linux
/dev/sdb40 100001 102000 16064968+ 83 Linux
/dev/sdb41 102001 104000 16064968+ 83 Linux
/dev/sdb42 104001 106000 16064968+ 83 Linux
/dev/sdb43 106001 108000 16064968+ 83 Linux
/dev/sdb44 108001 110000 16064968+ 83 Linux
/dev/sdb45 110001 112000 16064968+ 83 Linux
/dev/sdb46 112001 114000 16064968+ 83 Linux
/dev/sdb47 114001 116000 16064968+ 83 Linux
/dev/sdb48 116001 118000 16064968+ 83 Linux
/dev/sdb49 118001 120000 16064968+ 83 Linux
/dev/sdb50 120001 122000 16064968+ 83 Linux
/dev/sdb51 122001 124000 16064968+ 83 Linux
/dev/sdb52 124001 126000 16064968+ 83 Linux
/dev/sdb53 126001 128000 16064968+ 83 Linux
/dev/sdb54 128001 130000 16064968+ 83 Linux
/dev/sdb55 130001 132000 16064968+ 83 Linux
/dev/sdb56 132001 134000 16064968+ 83 Linux
/dev/sdb57 134001 182401 388781001 83 Linux
The last partition I created in cfdisk manually to store my personal data.
To demonstrate the change of major and minor numbers I post the following terminal commands/output
Code:
root@DL:/media/16GB_1STFAT/Sam-office/office cabinet/Linux/64partitions# ls -l /dev/sdb
brw-rw---- 1 root disk 8, 16 2009-03-08 22:15 /dev/sdb
root@DL:/media/16GB_1STFAT/Sam-office/office cabinet/Linux/64partitions# ls -l /dev/sdb1
brw-rw---- 1 root disk 8, 17 2009-03-08 22:15 /dev/sdb1
root@DL:/media/16GB_1STFAT/Sam-office/office cabinet/Linux/64partitions# ls -l /dev/sdb15
brw-rw---- 1 root disk 8, 31 2009-03-08 22:15 /dev/sdb15
root@DL:/media/16GB_1STFAT/Sam-office/office cabinet/Linux/64partitions# ls -l /dev/sdb16
brw-rw---- 1 root disk 259, 0 2009-03-08 22:15 /dev/sdb16
root@DL:/media/16GB_1STFAT/Sam-office/office cabinet/Linux/64partitions# ls -l /dev/sdb57
brw-rw---- 1 root disk 259, 41 2009-03-08 22:15 /dev/sdb57
The red and purple figures are the major and minor numbers. In kernels older than 2.6.28 the major number does not change for a hard disk. Now a switch is done after the 15th partition.
How to use the 15+ partitions
The Linux with 2.6.28 kerenl seems to be able to cope with it.
I first tried an old distro Fedora 10 with a 2.6.27 kernel. The installer claimed it cannot seek partitions beyond sdb15. A forced installation beyond this point resulted in an error so I eventually installed it in sdb15.
DreamLinux 3.5 has a 2.6.28.5 kernel. Its installer was quite happy to let me specifying sdb56 for its installation. That works perfectly. I am using it to post this thread.
I also downloaded Zenwalk 6.0 but its installer refused to allow me to use sdb for installation. However when it offered sda partitions for installation I found sdb partitions also listed so I selected sdb55 for its installation. Zenwalk is based on Slackware which is a die-hard believer in Lilo that failed to get installed (as usual). I actually left with Zenwalk installed but without a boot loader. However Slackware is the easiest distro to boot. I fired it up with these commands in a Grub prompt
Code:
root (hd1,54)
kernel /boot/vmlinuz ro root=/dev/sdb55
boot
So if Linux can be installed in sdb55 and sdb56 then we are back to the good old days with at least 63 partition possible in each hard disk.
Conclusions
Don't think I have found the maximum number of partitions supported by kernel 2.6.28 and later but 60 should be a safe number to work with as it is recognised by all the partitioning tools. I stopped at sdb56 because I used a script to create the partitions. Manually I have done it to 63 partition before.
This is uncharted territory so proceed with caution. The developer of turning the major/minor numbers from static to dynamic also is apparently unsure what could happen.
Have fun in breaking free from the 15-partition barrier!
Last edited by saikee; 03-08-2009 at 09:10 PM.
-
i'm curious to know why you would do this beyond the fun of being able to do this?
Practically, I would think using a virtual product would be more useful in testing out different OS's.
-
The virtual product I run is free but the guest system is just a file inside a host. The guest has no ability to mount other partitions. Everything is communicated with the host and a guest system is not even able to communicate with the fellow guests. I am not sure if the commercial products are able to do this or not.
-
I provide a little bit more information on my adventure. I took out a 1TB hard drive and hooked up as sdb.
This Python script generate a bash script to run sfdisk as "/bin/bash 1TB"
sfdisk seems to have a limitation on the size of partition so I had to reduce each partition to 600 cylinders which is just under 5Gb. There were supposed 202 partitions generated but udev limits it to 131 partitions.
Code:
root@saikee-desktop-1:/home/saikee# cat /home/saikee/64partitions/using_sfdisk/p1.py
f=file('1TB','w')
f.write('sfdisk /dev/sdb << EOF\n')
f.write(',600,L\n')
f.write(',600,L\n')
f.write(',600,L\n')
f.write(',,E\n')
i=0
y=',600,L\n'
cylin=121601
while cylin > 600:
cylin=cylin-600
f.write(y)
i=i+1
f.write(',,L\n')
f.write('EOF\n')
print 'No. of partitions = ',i
f.close()
sfdisk reported only 130 partitions
Code:
root@saikee-desktop-1:/home/saikee# sfdisk -l
Disk /dev/sda: 60801 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End #cyls #blocks Id System
/dev/sda1 * 0+ 12157 12158- 97659103+ 7 HPFS/NTFS
/dev/sda2 12158 24315 12158 97659135 17 Hidden HPFS/NTFS
/dev/sda3 24316 36597 12282 98655165 5 Extended
/dev/sda4 36598 60800 24203 194410597+ 83 Linux
/dev/sda5 24316+ 24437 122- 979933+ 82 Linux swap / Solaris
/dev/sda6 24438+ 25653 1216- 9767488+ 83 Linux
/dev/sda7 25654+ 26869 1216- 9767488+ 83 Linux
/dev/sda8 26870+ 28085 1216- 9767488+ 83 Linux
/dev/sda9 28086+ 29301 1216- 9767488+ 83 Linux
/dev/sda10 29302+ 30517 1216- 9767488+ 83 Linux
/dev/sda11 30518+ 31733 1216- 9767488+ 83 Linux
/dev/sda12 31734+ 32949 1216- 9767488+ 83 Linux
/dev/sda13 32950+ 34165 1216- 9767488+ 83 Linux
/dev/sda14 34166+ 35381 1216- 9767488+ 83 Linux
/dev/sda15 35382+ 36597 1216- 9767488+ 83 Linux
Disk /dev/sdb: 121601 cylinders, 255 heads, 63 sectors/track
too many partitions - ignoring those past nr (507)
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End #cyls #blocks Id System
/dev/sdb1 0+ 599 600- 4819499+ 83 Linux
/dev/sdb2 600 1199 600 4819500 83 Linux
/dev/sdb3 1200 1799 600 4819500 83 Linux
/dev/sdb4 1800 121600 119801 962301532+ 5 Extended
/dev/sdb5 1800+ 2399 600- 4819499+ 83 Linux
/dev/sdb6 2400+ 2999 600- 4819499+ 83 Linux
/dev/sdb7 3000+ 3599 600- 4819499+ 83 Linux
/dev/sdb8 3600+ 4199 600- 4819499+ 83 Linux
/dev/sdb9 4200+ 4799 600- 4819499+ 83 Linux
/dev/sdb10 4800+ 5399 600- 4819499+ 83 Linux
/dev/sdb11 5400+ 5999 600- 4819499+ 83 Linux
/dev/sdb12 6000+ 6599 600- 4819499+ 83 Linux
/dev/sdb13 6600+ 7199 600- 4819499+ 83 Linux
/dev/sdb14 7200+ 7799 600- 4819499+ 83 Linux
/dev/sdb15 7800+ 8399 600- 4819499+ 83 Linux
/dev/sdb16 8400+ 8999 600- 4819499+ 83 Linux
/dev/sdb17 9000+ 9599 600- 4819499+ 83 Linux
/dev/sdb18 9600+ 10199 600- 4819499+ 83 Linux
/dev/sdb19 10200+ 10799 600- 4819499+ 83 Linux
/dev/sdb20 10800+ 11399 600- 4819499+ 83 Linux
/dev/sdb21 11400+ 11999 600- 4819499+ 83 Linux
/dev/sdb22 12000+ 12599 600- 4819499+ 83 Linux
/dev/sdb23 12600+ 13199 600- 4819499+ 83 Linux
/dev/sdb24 13200+ 13799 600- 4819499+ 83 Linux
/dev/sdb25 13800+ 14399 600- 4819499+ 83 Linux
/dev/sdb26 14400+ 14999 600- 4819499+ 83 Linux
/dev/sdb27 15000+ 15599 600- 4819499+ 83 Linux
/dev/sdb28 15600+ 16199 600- 4819499+ 83 Linux
/dev/sdb29 16200+ 16799 600- 4819499+ 83 Linux
/dev/sdb30 16800+ 17399 600- 4819499+ 83 Linux
/dev/sdb31 17400+ 17999 600- 4819499+ 83 Linux
/dev/sdb32 18000+ 18599 600- 4819499+ 83 Linux
/dev/sdb33 18600+ 19199 600- 4819499+ 83 Linux
/dev/sdb34 19200+ 19799 600- 4819499+ 83 Linux
/dev/sdb35 19800+ 20399 600- 4819499+ 83 Linux
/dev/sdb36 20400+ 20999 600- 4819499+ 83 Linux
/dev/sdb37 21000+ 21599 600- 4819499+ 83 Linux
/dev/sdb38 21600+ 22199 600- 4819499+ 83 Linux
/dev/sdb39 22200+ 22799 600- 4819499+ 83 Linux
/dev/sdb40 22800+ 23399 600- 4819499+ 83 Linux
/dev/sdb41 23400+ 23999 600- 4819499+ 83 Linux
/dev/sdb42 24000+ 24599 600- 4819499+ 83 Linux
/dev/sdb43 24600+ 25199 600- 4819499+ 83 Linux
/dev/sdb44 25200+ 25799 600- 4819499+ 83 Linux
/dev/sdb45 25800+ 26399 600- 4819499+ 83 Linux
/dev/sdb46 26400+ 26999 600- 4819499+ 83 Linux
/dev/sdb47 27000+ 27599 600- 4819499+ 83 Linux
/dev/sdb48 27600+ 28199 600- 4819499+ 83 Linux
/dev/sdb49 28200+ 28799 600- 4819499+ 83 Linux
/dev/sdb50 28800+ 29399 600- 4819499+ 83 Linux
/dev/sdb51 29400+ 29999 600- 4819499+ 83 Linux
/dev/sdb52 30000+ 30599 600- 4819499+ 83 Linux
/dev/sdb53 30600+ 31199 600- 4819499+ 83 Linux
/dev/sdb54 31200+ 31799 600- 4819499+ 83 Linux
/dev/sdb55 31800+ 32399 600- 4819499+ 83 Linux
/dev/sdb56 32400+ 32999 600- 4819499+ 83 Linux
/dev/sdb57 33000+ 33599 600- 4819499+ 83 Linux
/dev/sdb58 33600+ 34199 600- 4819499+ 83 Linux
/dev/sdb59 34200+ 34799 600- 4819499+ 83 Linux
/dev/sdb60 34800+ 35399 600- 4819499+ 83 Linux
/dev/sdb61 35400+ 35999 600- 4819499+ 83 Linux
/dev/sdb62 36000+ 36599 600- 4819499+ 83 Linux
/dev/sdb63 36600+ 37199 600- 4819499+ 83 Linux
/dev/sdb64 37200+ 37799 600- 4819499+ 83 Linux
/dev/sdb65 37800+ 38399 600- 4819499+ 83 Linux
/dev/sdb66 38400+ 38999 600- 4819499+ 83 Linux
/dev/sdb67 39000+ 39599 600- 4819499+ 83 Linux
/dev/sdb68 39600+ 40199 600- 4819499+ 83 Linux
/dev/sdb69 40200+ 40799 600- 4819499+ 83 Linux
/dev/sdb70 40800+ 41399 600- 4819499+ 83 Linux
/dev/sdb71 41400+ 41999 600- 4819499+ 83 Linux
/dev/sdb72 42000+ 42599 600- 4819499+ 83 Linux
/dev/sdb73 42600+ 43199 600- 4819499+ 83 Linux
/dev/sdb74 43200+ 43799 600- 4819499+ 83 Linux
/dev/sdb75 43800+ 44399 600- 4819499+ 83 Linux
/dev/sdb76 44400+ 44999 600- 4819499+ 83 Linux
/dev/sdb77 45000+ 45599 600- 4819499+ 83 Linux
/dev/sdb78 45600+ 46199 600- 4819499+ 83 Linux
/dev/sdb79 46200+ 46799 600- 4819499+ 83 Linux
/dev/sdb80 46800+ 47399 600- 4819499+ 83 Linux
/dev/sdb81 47400+ 47999 600- 4819499+ 83 Linux
/dev/sdb82 48000+ 48599 600- 4819499+ 83 Linux
/dev/sdb83 48600+ 49199 600- 4819499+ 83 Linux
/dev/sdb84 49200+ 49799 600- 4819499+ 83 Linux
/dev/sdb85 49800+ 50399 600- 4819499+ 83 Linux
/dev/sdb86 50400+ 50999 600- 4819499+ 83 Linux
/dev/sdb87 51000+ 51599 600- 4819499+ 83 Linux
/dev/sdb88 51600+ 52199 600- 4819499+ 83 Linux
/dev/sdb89 52200+ 52799 600- 4819499+ 83 Linux
/dev/sdb90 52800+ 53399 600- 4819499+ 83 Linux
/dev/sdb91 53400+ 53999 600- 4819499+ 83 Linux
/dev/sdb92 54000+ 54599 600- 4819499+ 83 Linux
/dev/sdb93 54600+ 55199 600- 4819499+ 83 Linux
/dev/sdb94 55200+ 55799 600- 4819499+ 83 Linux
/dev/sdb95 55800+ 56399 600- 4819499+ 83 Linux
/dev/sdb96 56400+ 56999 600- 4819499+ 83 Linux
/dev/sdb97 57000+ 57599 600- 4819499+ 83 Linux
/dev/sdb98 57600+ 58199 600- 4819499+ 83 Linux
/dev/sdb99 58200+ 58799 600- 4819499+ 83 Linux
/dev/sdb100 58800+ 59399 600- 4819499+ 83 Linux
/dev/sdb101 59400+ 59999 600- 4819499+ 83 Linux
/dev/sdb102 60000+ 60599 600- 4819499+ 83 Linux
/dev/sdb103 60600+ 61199 600- 4819499+ 83 Linux
/dev/sdb104 61200+ 61799 600- 4819499+ 83 Linux
/dev/sdb105 61800+ 62399 600- 4819499+ 83 Linux
/dev/sdb106 62400+ 62999 600- 4819499+ 83 Linux
/dev/sdb107 63000+ 63599 600- 4819499+ 83 Linux
/dev/sdb108 63600+ 64199 600- 4819499+ 83 Linux
/dev/sdb109 64200+ 64799 600- 4819499+ 83 Linux
/dev/sdb110 64800+ 65399 600- 4819499+ 83 Linux
/dev/sdb111 65400+ 65999 600- 4819499+ 83 Linux
/dev/sdb112 66000+ 66599 600- 4819499+ 83 Linux
/dev/sdb113 66600+ 67199 600- 4819499+ 83 Linux
/dev/sdb114 67200+ 67799 600- 4819499+ 83 Linux
/dev/sdb115 67800+ 68399 600- 4819499+ 83 Linux
/dev/sdb116 68400+ 68999 600- 4819499+ 83 Linux
/dev/sdb117 69000+ 69599 600- 4819499+ 83 Linux
/dev/sdb118 69600+ 70199 600- 4819499+ 83 Linux
/dev/sdb119 70200+ 70799 600- 4819499+ 83 Linux
/dev/sdb120 70800+ 71399 600- 4819499+ 83 Linux
/dev/sdb121 71400+ 71999 600- 4819499+ 83 Linux
/dev/sdb122 72000+ 72599 600- 4819499+ 83 Linux
/dev/sdb123 72600+ 73199 600- 4819499+ 83 Linux
/dev/sdb124 73200+ 73799 600- 4819499+ 83 Linux
/dev/sdb125 73800+ 74399 600- 4819499+ 83 Linux
/dev/sdb126 74400+ 74999 600- 4819499+ 83 Linux
/dev/sdb127 75000+ 75599 600- 4819499+ 83 Linux
/dev/sdb128 75600+ 76199 600- 4819499+ 83 Linux
/dev/sdb129 76200+ 76799 600- 4819499+ 83 Linux
/dev/sdb130 76800+ 77399 600- 4819499+ 83 Linux
fdisk reported sdb has only 60 partitions
Code:
root@saikee-desktop-1:/home/saikee# fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xbe153241
Device Boot Start End Blocks Id System
/dev/sda1 * 1 12158 97659103+ 7 HPFS/NTFS
/dev/sda2 12159 24316 97659135 17 Hidden HPFS/NTFS
/dev/sda3 24317 36598 98655165 5 Extended
/dev/sda4 36599 60801 194410597+ 83 Linux
/dev/sda5 24317 24438 979933+ 82 Linux swap / Solaris
/dev/sda6 24439 25654 9767488+ 83 Linux
/dev/sda7 25655 26870 9767488+ 83 Linux
/dev/sda8 26871 28086 9767488+ 83 Linux
/dev/sda9 28087 29302 9767488+ 83 Linux
/dev/sda10 29303 30518 9767488+ 83 Linux
/dev/sda11 30519 31734 9767488+ 83 Linux
/dev/sda12 31735 32950 9767488+ 83 Linux
/dev/sda13 32951 34166 9767488+ 83 Linux
/dev/sda14 34167 35382 9767488+ 83 Linux
/dev/sda15 35383 36598 9767488+ 83 Linux
Warning: omitting partitions after #60.
They will be deleted if you save this partition table.
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xbe153241
Device Boot Start End Blocks Id System
/dev/sdb1 1 600 4819499+ 83 Linux
/dev/sdb2 601 1200 4819500 83 Linux
/dev/sdb3 1201 1800 4819500 83 Linux
/dev/sdb4 1801 121601 962301532+ 5 Extended
/dev/sdb5 1801 2400 4819499+ 83 Linux
/dev/sdb6 2401 3000 4819499+ 83 Linux
/dev/sdb7 3001 3600 4819499+ 83 Linux
/dev/sdb8 3601 4200 4819499+ 83 Linux
/dev/sdb9 4201 4800 4819499+ 83 Linux
/dev/sdb10 4801 5400 4819499+ 83 Linux
/dev/sdb11 5401 6000 4819499+ 83 Linux
/dev/sdb12 6001 6600 4819499+ 83 Linux
/dev/sdb13 6601 7200 4819499+ 83 Linux
/dev/sdb14 7201 7800 4819499+ 83 Linux
/dev/sdb15 7801 8400 4819499+ 83 Linux
/dev/sdb16 8401 9000 4819499+ 83 Linux
/dev/sdb17 9001 9600 4819499+ 83 Linux
/dev/sdb18 9601 10200 4819499+ 83 Linux
/dev/sdb19 10201 10800 4819499+ 83 Linux
/dev/sdb20 10801 11400 4819499+ 83 Linux
/dev/sdb21 11401 12000 4819499+ 83 Linux
/dev/sdb22 12001 12600 4819499+ 83 Linux
/dev/sdb23 12601 13200 4819499+ 83 Linux
/dev/sdb24 13201 13800 4819499+ 83 Linux
/dev/sdb25 13801 14400 4819499+ 83 Linux
/dev/sdb26 14401 15000 4819499+ 83 Linux
/dev/sdb27 15001 15600 4819499+ 83 Linux
/dev/sdb28 15601 16200 4819499+ 83 Linux
/dev/sdb29 16201 16800 4819499+ 83 Linux
/dev/sdb30 16801 17400 4819499+ 83 Linux
/dev/sdb31 17401 18000 4819499+ 83 Linux
/dev/sdb32 18001 18600 4819499+ 83 Linux
/dev/sdb33 18601 19200 4819499+ 83 Linux
/dev/sdb34 19201 19800 4819499+ 83 Linux
/dev/sdb35 19801 20400 4819499+ 83 Linux
/dev/sdb36 20401 21000 4819499+ 83 Linux
/dev/sdb37 21001 21600 4819499+ 83 Linux
/dev/sdb38 21601 22200 4819499+ 83 Linux
/dev/sdb39 22201 22800 4819499+ 83 Linux
/dev/sdb40 22801 23400 4819499+ 83 Linux
/dev/sdb41 23401 24000 4819499+ 83 Linux
/dev/sdb42 24001 24600 4819499+ 83 Linux
/dev/sdb43 24601 25200 4819499+ 83 Linux
/dev/sdb44 25201 25800 4819499+ 83 Linux
/dev/sdb45 25801 26400 4819499+ 83 Linux
/dev/sdb46 26401 27000 4819499+ 83 Linux
/dev/sdb47 27001 27600 4819499+ 83 Linux
/dev/sdb48 27601 28200 4819499+ 83 Linux
/dev/sdb49 28201 28800 4819499+ 83 Linux
/dev/sdb50 28801 29400 4819499+ 83 Linux
/dev/sdb51 29401 30000 4819499+ 83 Linux
/dev/sdb52 30001 30600 4819499+ 83 Linux
/dev/sdb53 30601 31200 4819499+ 83 Linux
/dev/sdb54 31201 31800 4819499+ 83 Linux
/dev/sdb55 31801 32400 4819499+ 83 Linux
/dev/sdb56 32401 33000 4819499+ 83 Linux
/dev/sdb57 33001 33600 4819499+ 83 Linux
/dev/sdb58 33601 34200 4819499+ 83 Linux
/dev/sdb59 34201 34800 4819499+ 83 Linux
/dev/sdb60 34801 35400 4819499+ 83 Linux
cfdisk confirmed there were only 59 partitions.
Code:
cfdisk (util-linux-ng 2.14.2)
Disk Drive: /dev/sdb
Size: 1000204886016 bytes, 1000.2 GB
Heads: 255 Sectors per Track: 63 Cylinders: 121601
Name Flags Part Type FS Type [Label] Size (MB)
-----------------------------------------------------------------------------------------------------------------------------------------------------------
sdb43 NC Logical Linux 4935.17
sdb44 NC Logical Linux 4935.17
sdb45 NC Logical Linux 4935.17
sdb46 NC Logical Linux 4935.17
sdb47 NC Logical Linux 4935.17
sdb48 NC Logical Linux 4935.17
sdb49 NC Logical Linux 4935.17
sdb50 NC Logical Linux 4935.17
sdb51 NC Logical Linux 4935.17
sdb52 NC Logical Linux 4935.17
sdb53 NC Logical Linux 4935.17
sdb54 NC Logical Linux 4935.17
sdb55 NC Logical Linux 4935.17
sdb56 NC Logical Linux 4935.17
sdb57 NC Logical Linux 4935.17
sdb58 NC Logical Linux 4935.17
sdb59 NC Logical Linux 4935.17
Logical Free Space 713962.53
[ Bootable ] [ Delete ] [ Help ] [ Maximize ] [ Print ] [ Quit ] [ Type ] [ Units ] [ Write ]
Toggle bootable flag of the current partition
I tried to create the additional device names beyond sdb131 but on a reboot udev went back to the maximum of sdb131
The partition /dev/sdb130 is usable. I formatted it with ext3 in Ubuntu 9.04, mounted it on /mnt and copied some Mp3 over. I am enjoying the MP3 from /mnt/sdb130 while writing this post.
I could not get any Linux installer to play ball with the 130 partitions. They just hung. However I did manage to copy my Ubuntu in sda3 into sdb129. After updating its menu.lst and fstab for the new location I got the Ubuntu 9.04 booted successfully from the partition sdb129.
Last edited by saikee; 03-09-2009 at 05:48 PM.
-
Just to report that I managed to boot a Linux from partition 129 for a 1TB hard disk.
It is a Ubuntu 9.10. Its installer wouldn't play ball and could not understand my partition table. Nearly all the Linux installers have this problem so a direct installation proves nearly impossible. So I copied an installed one in a partition lower than 15 from another hard disk and put the content into partition 129. Amended its Grub's menu.lst and the fstab (which works even I forgot to amend it!)
I then pulled the other disk out and so leaving one disk with 130 partition and booted up Ubuntu. Its menu.lst looks like this
Code:
title Ubuntu jaunty (development branch), kernel 2.6.28-8-generic
root (hd0,128)
kernel /boot/vmlinuz-2.6.28-8-generic root=/dev/sda129 ro quiet splash
initrd /boot/initrd.img-2.6.28-8-generic
quiet
The 1st to 127th partitions are empty and I was just experimenting Grub and Linux responses operating near the end of a 1TB hard disk. This is the sdb disk I reported in Post #4 but after I pulled out the sda the second disk then took the sda designation.
According to the hard disk convention established in Dos era the number of logical partitions is infinite because the arrangement is open-ended.
Last edited by saikee; 03-18-2009 at 07:41 PM.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
|