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 (2048-102399, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-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 (22528-102399, default 22528): Last sector, +sectors or +size{K,M,G,T,P} (22528-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 (43008-102399, default 43008): Last sector, +sectors or +size{K,M,G,T,P} (43008-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 (63488-102399, default 63488): Last sector, +sectors or +size{K,M,G,T,P} (63488-102399, default 102399): 
Created a new <removed>.

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

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

Command (m for help): All primary partitions are in use.
Adding logical partition 7
First sector (90112-102399, default 90112): Last sector, +sectors or +size{K,M,G,T,P} (90112-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
Disklabel type: dos
Disk identifier: <removed>

Device     Boot Start    End Sectors Size Id Type
<removed>1        2048  22527   20480  10M 83 Linux
<removed>2       22528  43007   20480  10M 83 Linux
<removed>3       43008  63487   20480  10M 83 Linux
<removed>4       63488 102399   38912  19M  5 Extended
<removed>5       65536  75775   10240   5M 83 Linux
<removed>6       77824  88063   10240   5M 83 Linux
<removed>7       90112 102399   12288   6M 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
