Create partitions
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): DOS Compatibility flag is not set

Command (m for help): Changing display/entry units to sectors

Command (m for help): Command action
   e   extended
   p   primary partition (1-4)
Partition number (1-4): First sector (2048-102399, default 2048): Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-102399, default 102399): 
Command (m for help): Command action
   e   extended
   p   primary partition (1-4)
Partition number (1-4): First sector (22528-102399, default 22528): Using default value 22528
Last sector, +sectors or +size{K,M,G} (22528-102399, default 102399): 
Command (m for help): Command action
   e   extended
   p   primary partition (1-4)
Partition number (1-4): First sector (43008-102399, default 43008): Using default value 43008
Last sector, +sectors or +size{K,M,G} (43008-102399, default 102399): 
Command (m for help): Command action
   e   extended
   p   primary partition (1-4)
Selected partition 4
First sector (63488-102399, default 63488): Using default value 63488
Last sector, +sectors or +size{K,M,G} (63488-102399, default 102399): Using default value 102399

Command (m for help): First sector (65536-102399, default 65536): Using default value 65536
Last sector, +sectors or +size{K,M,G} (65536-102399, default 102399): 
Command (m for help): First sector (77824-102399, default 77824): Using default value 77824
Last sector, +sectors or +size{K,M,G} (77824-102399, default 102399): 
Command (m for help): First sector (90112-102399, default 90112): Using default value 90112
Last sector, +sectors or +size{K,M,G} (90112-102399, default 102399): Using default value 102399

Command (m for help): 
Disk /dev/sdb: 52 MB, 52428800 bytes
32 heads, 32 sectors/track, 100 cylinders, total 102400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 32768 bytes


   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048       22527       10240   83  Linux
/dev/sdb2           22528       43007       10240   83  Linux
/dev/sdb3           43008       63487       10240   83  Linux
/dev/sdb4           63488      102399       19456    5  Extended
/dev/sdb5           65536       75775        5120   83  Linux
/dev/sdb6           77824       88063        5120   83  Linux
/dev/sdb7           90112      102399        6144   83  Linux

Command (m for help): The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
Alignment offsets:
0
0
0
0
0
0
0
