What is the maximum No. of hard disk partitions after kernel 2.6.28


Results 1 to 5 of 5

Thread: What is the maximum No. of hard disk partitions after kernel 2.6.28

  1. #1
    Join Date
    Jun 2004
    Location
    Newcastle upon Tyne
    Posts
    2,951

    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.
    Linux user started Jun 2004 - No. 361921
    Using a Linux live CD to clone XP
    To install Linux and keep Windows MBR untouched
    Adding extra Linux & Doing it in a lazy way
    A Grub menu booting 100+ systems & A "Howto" to install and boot 145 systems
    Just cloning tips Just booting tips A collection of booting tips

    Judge asked Linux "You are being charged murdering Windoze by stabbing its heart with a weapon, what was it?" Replied Linux "A Live CD"

  2. #2
    Join Date
    Jan 2004
    Location
    boston, mass USA
    Posts
    1,880
    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.
    m1ke_l
    Lenovo x120e (gave my wife the Asus 1015N)http://justlinux.com/forum/showthrea...hreadid=153955
    Fedora 16 (but I haven't settled yet)
    8gigs of RAM (in a NETBOOK!!)
    Boston, MA USA/Wondering

    My dad's website (he'll love the traffic) http://www.cafephotos.net/

  3. #3
    Join Date
    Jun 2004
    Location
    Newcastle upon Tyne
    Posts
    2,951
    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.
    Linux user started Jun 2004 - No. 361921
    Using a Linux live CD to clone XP
    To install Linux and keep Windows MBR untouched
    Adding extra Linux & Doing it in a lazy way
    A Grub menu booting 100+ systems & A "Howto" to install and boot 145 systems
    Just cloning tips Just booting tips A collection of booting tips

    Judge asked Linux "You are being charged murdering Windoze by stabbing its heart with a weapon, what was it?" Replied Linux "A Live CD"

  4. #4
    Join Date
    Jun 2004
    Location
    Newcastle upon Tyne
    Posts
    2,951
    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.
    Linux user started Jun 2004 - No. 361921
    Using a Linux live CD to clone XP
    To install Linux and keep Windows MBR untouched
    Adding extra Linux & Doing it in a lazy way
    A Grub menu booting 100+ systems & A "Howto" to install and boot 145 systems
    Just cloning tips Just booting tips A collection of booting tips

    Judge asked Linux "You are being charged murdering Windoze by stabbing its heart with a weapon, what was it?" Replied Linux "A Live CD"

  5. #5
    Join Date
    Jun 2004
    Location
    Newcastle upon Tyne
    Posts
    2,951
    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.
    Linux user started Jun 2004 - No. 361921
    Using a Linux live CD to clone XP
    To install Linux and keep Windows MBR untouched
    Adding extra Linux & Doing it in a lazy way
    A Grub menu booting 100+ systems & A "Howto" to install and boot 145 systems
    Just cloning tips Just booting tips A collection of booting tips

    Judge asked Linux "You are being charged murdering Windoze by stabbing its heart with a weapon, what was it?" Replied Linux "A Live CD"

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •