Разделы не должны перекрываться ... но то, что у вас есть, это " Расширенный раздел ". С расширенными разделами вы создаете « родительский » раздел, который затем содержит другие, что позволяет иметь более 4 разделов, поддерживаемых MBR.
Чтобы использовать дополнительное пространство, вам нужно тщательно удалить и заново создать разделы ...
В моем примере используется файл размером 100 МБ, который я разделил, включил файловую систему.
$ fdisk disk.dd <<<"p"
Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): Disk disk.dd: 100 MiB, 104857600 bytes, 204800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xcff1f22d
Device Boot Start End Sectors Size Id Type
disk.dd1 2048 43007 40960 20M 83 Linux
disk.dd2 43008 204799 161792 79M 5 Extended
disk.dd5 45056 204799 159744 78M 83 Linux
Затем я расширяю файл (это очень похоже на то, что вы сделали):
$ truncate -s 200M disk.dd
Теперь мы должны удалить все разделы, содержащиеся в расширенном разделе, а затем и сам расширенный раздел:
$ fdisk disk.dd
Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): d
Partition number (1,2,5, default 5): 5
Partition 5 has been deleted.
Command (m for help): d
Partition number (1,2, default 2): 2
Partition 2 has been deleted.
Command (m for help): p
Disk disk.dd: 200 MiB, 209715200 bytes, 409600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xcff1f22d
Device Boot Start End Sectors Size Id Type
disk.dd1 2048 43007 40960 20M 83 Linux
Затем мы должны заново создать разделы, убедившись, что начальные секторы точно соответствуют оригиналам (при этом используются мои номера, а не ваши). Затем напишите изменения.
Здесь я использую значения по умолчанию (просто нажимая return maked разделы запускаются рано, и делает их максимально большими)... Вы можете указать значения, если хотите оставить место для других разделов.
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): e
Partition number (2-4, default 2):
First sector (43008-409599, default 43008): 43008
Last sector, +sectors or +size{K,M,G,T,P} (43008-409599, default 409599):
Created a new partition 2 of type 'Extended' and of size 179 MiB.
Command (m for help): n
All space for primary partitions is in use.
Adding logical partition 5
First sector (45056-409599, default 45056):
Last sector, +sectors or +size{K,M,G,T,P} (45056-409599, default 409599):
Created a new partition 5 of type 'Linux' and of size 178 MiB.
Command (m for help): p
Disk disk.dd: 200 MiB, 209715200 bytes, 409600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xcff1f22d
Device Boot Start End Sectors Size Id Type
disk.dd1 2048 43007 40960 20M 83 Linux
disk.dd2 43008 409599 366592 179M 5 Extended
disk.dd5 45056 409599 364544 178M 83 Linux
Command (m for help): w
The partition table has been altered.
Synching disks.
Не забудьте сохранить тип раздела. В этом примере по умолчанию (83
) хорошо, но вы захотите использовать t
чтобы установить тип обратно в 8e
.
Теперь вам может потребоваться запустить partprobe
указанием вашего устройства (например: /dev/sda
). Это заставит систему перезагрузить таблицу разделов. Используйте lsblk
чтобы проверить правильность размеров разделов.
Наконец, измените размер файловой системы. Это можно сделать, пока он подключен (смонтирован). Если он не подключен, вам, вероятно, будет предложено сначала выполнить полную проверку и исправление :
$ e2fsck -f /dev/loop1
e2fsck 1.42.13 (17-May-2015)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/loop1: 12/20000 files (0.0% non-contiguous), 8180/79872 blocks
$ resize2fs /dev/loop1
resize2fs 1.42.13 (17-May-2015)
Resizing the filesystem on /dev/loop1 to 182272 (1k) blocks.
The filesystem on /dev/loop1 is now 182272 (1k) blocks long.
Теперь, когда файловая система перемонтирована, вы увидите дополнительное пространство, которое вам нужно:
$ mount /dev/loop1 ./mnt
$ df -h mnt
Filesystem Size Used Avail Use% Mounted on
/dev/loop1 169M 1.6M 155M 1% /home/attie/box/so/mnt
$ cat mnt/test
hello world
Вы указали (в комментарии), что вы не смогли разместить начало раздела 5 там, где это должно быть - fdisk
предоставлял несовместимый диапазон.
Чтобы это исправить, вам нужно будет создать раздел 5 как обычно ... но используйте неправильное начальное значение по умолчанию, которое на несколько секторов больше, чем вы хотите. После того, как раздел создан, вы можете войти в экспертный режим (x
) и начать запуск вручную. Затем вернитесь в нормальный режим (r
) и перепечатайте таблицу ... если числа выглядят хорошо, напишите это (w
).
В моем примере ниже я создал раздел и использовал значение по умолчанию, предоставленное fdisk
(45056) ... Затем я использую режим эксперта, чтобы установить « правильное » значение (43010), которое в противном случае было бы вне диапазона.
Command (m for help): p
Disk disk.dd: 200 MiB, 209715200 bytes, 409600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa11ae080
Device Boot Start End Sectors Size Id Type
disk.dd1 2048 43007 40960 20M 83 Linux
disk.dd2 43008 409599 366592 179M 5 Extended
disk.dd5 45056 409599 364544 178M 83 Linux
Command (m for help): x
Expert command (m for help): b
Partition number (1,2,5, default 5): 5
New beginning of data (43009-409599, default 45056): 43010
Expert command (m for help): r
Command (m for help): p
Disk disk.dd: 200 MiB, 209715200 bytes, 409600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa11ae080
Device Boot Start End Sectors Size Id Type
disk.dd1 2048 43007 40960 20M 83 Linux
disk.dd2 43008 409599 366592 179M 5 Extended
disk.dd5 43010 409599 366590 179M 83 Linux
Я немного порылся в источниках fdisk
, но не мог ясно понять, почему он добавляет этот буфер ~ 1 МБ ... Поскольку ваш диск уже настроен без него, все должно быть хорошо.