Измените размер раздела Ubuntu /dev/sda1 в VirtualBox VMDK, когда / dev / sda уже больше
Некоторое время назад я создал VMDK, который был сопоставлен с необработанным разделом на SSD.
SSD был 128 ГБ, я разбил его на Windows (хост), сделал второй раздел доступным для Windows (NTFS) и использовал первый раздел, чтобы отобразить его в VMDK.
Этот первый раздел имеет размер около 48 ГБ.
Когда я затем установил Ubuntu Server на виртуальную машину, которая использовала этот VMDK, я заметил, что размер /dev/sda
мне было показано 128 ГБ, но я создал раздел во время установки Ubuntu, чтобы иметь размер первого раздела, так что /dev/sda1
имеет 48 ГБ.
Из-за нехватки места на /dev/sda1
(есть 5 ГБ свободного места) Я купил другой SSD и решил прекратить использование сырых сопоставлений. Я скопировал VMDK через Virtual Media Manager на новый SSD, так что теперь у меня есть файл VMDK aprox. 44 ГБ (не принимайте это очень точно, это проблема MiB против GiB против GB).
Затем я заменил жесткий диск виртуальной машины на только что скопированный VMDK и загрузил его. Работает как положено.
Теперь у меня есть это:
:~$ cat /proc/partitions
major minor #blocks name
11 0 58100 sr0
8 0 125034840 sda
8 1 46873600 sda1
8 16 488386584 sdb
8 17 181189085 sdb1
этот
~$ sudo fdisk -l
Disk /dev/sda: 119.2 GiB, 128035676160 bytes, 250069680 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: 0x000271d1
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 93749247 93747200 44.7G 83 Linux
Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 976773168 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: gpt
Disk identifier: 59B4B505-C79F-11E3-8F9C-709E29CA19D2
Device Start End Sectors Size Type
/dev/sdb1 34 362378204 362378171 172.8G Linux filesystem
и это
:/$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 7.9G 0 7.9G 0% /dev
tmpfs 1.6G 9.1M 1.6G 1% /run
/dev/sda1 44G 37G 5.1G 88% /
tmpfs 7.9G 1.1M 7.9G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
windows-avconv 1.9T 1.8T 103G 95% /home/user/windows-avconv
windows-storage 1.9T 1.8T 103G 95% /home/user/windows-storage
windows-share 50G 101M 50G 1% /home/user/windows
cgmfs 100K 0 100K 0% /run/cgmanager/fs
/dev/sdb1 170G 91G 72G 56% /media/hdd
tmpfs 1.6G 0 1.6G 0% /run/user/1000
Все это, кажется, указывает на то, что я могу просто выпустить
sudo resize2fs /dev/sda1
а потом /dev/sda1
вырастет, чтобы стать 119,2 ГиБ большим без меня, чтобы использовать VBoxManage modifyhd <absolute path to file> --resize <size in MB>
Я прав с этим предположением?
Обновление: я сделал резервную копию VMDK и выпустил
:~$ sudo resize2fs /dev/sda1
Это результат:
resize2fs 1.42.13 (17-May-2015)
The filesystem is already 11718400 (4k) blocks long. Nothing to do!
Нужно ли выдавать
sudo growpart /dev/sda 1
до resize2fs
может работать?
1 ответ
Вы должны сначала изменить размер раздела, выполнив следующие действия:
parted /dev/sda
ввести подсказку "(расстался)"resizepart 1
изменить размер раздела1
-0
изменяет размер до конца диска.-
указывает на то, что он должен считаться с конца диска, а не с начала. Это делает -0 последним сектором диска - что подходит, когда вы хотите сделать его максимально большим. Шаг 4:quit
разойтись
Метаинформация файловой системы должна указывать размер диска, а resize2fs обновляет его. Таким образом, после расширения, запустите resize2fs /dev/sda1
,
Настоятельно рекомендуется делать это либо в однопользовательском режиме / режиме восстановления, либо с файловой системой, смонтированной в режиме только для чтения. Вы можете установить его только для чтения mount -o remount,ro /dev/sda1
,
Расширение возможно сделать с файловой системой в RW-режиме, но это увеличивает шансы потери данных. Поскольку это виртуальная машина, и вы можете легко сделать резервную копию, делать это с RW, смонтированным на томе, может иметь смысл.
Приложение: запускать команды от имени пользователя root для достижения желаемого эффекта.