В продолжение Подержанного VBoxManage modifyhd --resize, фактический размер не изменился

Я изменил размер файла .vmdk, чтобы освободить место на моей виртуальной машине.

Используя fdisk (команда p), я получаю следующее

Device     Boot   Start      End  Sectors  Size Id Type
/dev/sda1  *       2048   999423   997376  487M 83 Linux
/dev/sda2       1001470 83884031 82882562 39.5G  5 Extended
/dev/sda5       1001472 83884031 82882560 39.5G 8e Linux LVM

(Это нормально для двух разделов, чтобы разделить свои сектора таким образом?)

Между тем добавленное мной пространство не разделено, что можно увидеть с помощью fdisk (команда F):

Unpartitioned space /dev/sda: 69.8 GiB, 74911318016 bytes, 146311168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

   Start       End   Sectors  Size
83884032 230195199 146311168 69.8G

Как я могу добавить это место в мой существующий раздел? Должен ли я добавить его в sda2 или sda5?

Я должен добавить, что у меня нет доступа к GParted как у меня есть только интерфейс на основе командной строки, без графического интерфейса.

1 ответ1

1

Разделы не должны перекрываться ... но то, что у вас есть, это " Расширенный раздел ". С расширенными разделами вы создаете « родительский » раздел, который затем содержит другие, что позволяет иметь более 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 МБ ... Поскольку ваш диск уже настроен без него, все должно быть хорошо.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .