Peter Böttcher
Hingbergstrasse 363
45472 Muelheim Ruhr
NRW
Germany
mail: peter.boettcher@xxxxxxx
Sorry for this english.
I wrote a partition program just for the GUID Partition Table (GPT). 5
years ago.
The program can generate volumes from 4 to 4096 partitions (my own limit).
GPT header pos. 80 is an unsigned 32 Bit field.
The program can create partitions with the numbers 1, 10, 100, 200, 300,
1000, 2000 etc. on the volume.
Windows, FREE/BSD Unix, Mac OS X manage a volume without problems.
They mount all partitions without problems.
So that Linux can do such a volume management, I had to patch the file
include/linux/genhd.h up to the Linux kernel 4.13.12.
It worked fine for many years.
---------------------------------------------------------------------
patch: include/linux/genhd.h
old: #define DISK_MAX_PARTS 256
new: #define DISK_MAX_PARTS 4096
---------------------------------------------------------------------
In Linux Kernel 4.14.0 I have to patch the following files.
---------------------------------------------------------------------
patch: include/linux/genhd.h
old: #define DISK_MAX_PARTS 256
new: #define DISK_MAX_PARTS 4096
---------------------------------------------------------------------
patch: include/linux/fs.h
struct block_device {
old: u8 bd_partno;
new: u16 bd_partno;
---------------------------------------------------------------------
patch: include/linux/blk_types.h
struct bio {
old: u8 bio_partno;
new: u16 bio_partno;
---------------------------------------------------------------------
patch: driver/md/dm-bio-record.h
struct dm_bio_details {
old: u8 bio_partno;
new: u16 bio_partno;
---------------------------------------------------------------------
patch: driver/md/dm-bio-integrity.c
struct dm_integrity_io {
old: u8 bio_partno;
new: u16 bio_partno;
---------------------------------------------------------------------
This works well (admittedly short time).
Yours truly
Peter Böttcher