Create partitions

Welcome to fdisk <removed>.
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new <removed>.

Command (m for help): Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): Partition number (1-4, default 1): First sector (7-102399, default 7): Last sector, +sectors or +size{K,M,G,T,P} (7-102399, default 102399): 
Created a new <removed>.

Command (m for help): Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): Partition number (2-4, default 2): First sector (20487-102399, default 20487): Last sector, +sectors or +size{K,M,G,T,P} (20487-102399, default 102399): 
Created a new <removed>.

Command (m for help): Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): Partition number (3,4, default 3): First sector (40967-102399, default 40967): Last sector, +sectors or +size{K,M,G,T,P} (40967-102399, default 102399): 
Created a new <removed>.

Command (m for help): Partition type
   p   primary (3 primary, 0 extended, 1 free)
   e   extended (container for logical partitions)
Select (default e): 
Selected partition 4
First sector (61447-102399, default 61447): Last sector, +sectors or +size{K,M,G,T,P} (61447-102399, default 102399): 
Created a new <removed>.

Command (m for help): All primary partitions are in use.
Adding logical partition 5
First sector (61454-102399, default 63487): Last sector, +sectors or +size{K,M,G,T,P} (63487-102399, default 102399): 
Created a new <removed>.

Command (m for help): All primary partitions are in use.
Adding logical partition 6
First sector (61454-102399, default 75775): Last sector, +sectors or +size{K,M,G,T,P} (75775-102399, default 102399): 
Created a new <removed>.

Command (m for help): All primary partitions are in use.
Adding logical partition 7
First sector (61454-102399, default 88063): Last sector, +sectors or +size{K,M,G,T,P} (88063-102399, default 102399): 
Created a new <removed>.

Command (m for help): Disk <removed>: 50 MiB, 52428800 bytes, 102400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / <removed> bytes
Alignment offset: 3584 bytes
Disklabel type: dos
Disk identifier: <removed>

Device     Boot Start    End Sectors Size Id Type
<removed>1           7  20486   20480  10M 83 Linux
<removed>2       20487  40966   20480  10M 83 Linux
<removed>3       40967  61446   20480  10M 83 Linux
<removed>4       61447 102399   40953  20M  5 Extended
<removed>5       63487  73726   10240   5M 83 Linux
<removed>6       75775  86014   10240   5M 83 Linux
<removed>7       88063 102399   14337   7M 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
