У меня есть виртуальная машина с одним жестким диском размером 3 ГБ, и я хотел бы увеличить ее HD до 7 ГБ.
Итак, я выполняю эту команду на хосте (пока гость выключен):
VBoxManage modifyhd debian.vdi --resize 7168
Затем я запускаю гостя, Debian 6, а затем:
smith@debian6:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 2.8G 2.6G 60M 98% /
tmpfs 61M 0 61M 0% /lib/init/rw
udev 57M 160K 57M 1% /dev
tmpfs 61M 0 61M 0% /dev/shm
smith@debian6:~$ sudo parted /dev/sda print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 3221MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 3035MB 3034MB primary ext3 boot
2 3036MB 3220MB 185MB extended
5 3036MB 3220MB 185MB logical linux-swap(v1)
smith@debian6:~$ cat /proc/partitions
major minor #blocks name
8 0 3145728 sda
8 1 2962432 sda1
8 2 1 sda2
8 5 180224 sda5
Таким образом, нет автоматического изменения размера (определения) раздела HD / (в то время как VirtualBox на хосте показывает, что сейчас это 7 ГБ). Хорошо...
Тогда я делаю:
smith@debian6:~$ sudo resize2fs /dev/sda1
resize2fs 1.41.12 (17-May-2010)
The filesystem is already 740608 blocks long. Nothing to do!
smith@debian6:~$ sudo parted
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) select /dev/sda1
Using /dev/sda1
(parted) resize
WARNING: you are attempting to use parted to operate on (resize) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs. We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
Partition number? 1
Start? 0
End? [3034MB]?
Здесь я застрял. На указанном выше parted
он просит меня изменить размер до 3 ГБ. Нет в этом смысла, правда ..
Что мне делать, чтобы увеличить этот раздел?
Если вы еще не перезагрузили виртуальную машину, ОС может не знать, что диск был расширен. Поэтому я бы сначала начал с этого (или полностью выключил виртуальную машину, а затем запустил). Вторая проблема, с которой вы столкнетесь, заключается в том, что любые изменения в таблице разделов на используемом диске не будут видны до тех пор, пока система не будет перезагружена (или пока диск не будет использоваться иным образом). Итак, если после перезагрузки диск отображается как 7 ГБ, вам придется увеличить раздел, затем снова перезагрузиться и, наконец, ввести команду resize2fs. Кстати, я лично обычно не использую parted, но похоже, что команда re-size пытается изменить размер как раздела, так и файловой системы - в этом случае вам, вероятно, будет лучше сначала изменить размер раздела (через fdisk), затем сделайте файловую систему после того, как ОС сможет повторно прочитать таблицу разделов (через перезагрузку). О, и сначала убедитесь, что у вас есть хорошая резервная копия.
Изменить: я установил виртуальную машину Debian 3 ГБ в VirtualBox, такую же, как у вас, и записал журнал шагов, которые я использовал, чтобы расширить ее до 7 ГБ. Сводка: выключите виртуальную машину, сделайте резервную копию файла VDI, расширите VDI, перезапустите виртуальную машину, используйте fdisk - установите единицы измерения в секторы (команда u) и отобразите таблицу разделов (p), удалите существующие разделы, воссоздайте корневой раздел (будьте осторожны, чтобы использовать тот же начальный сектор, что и исходный), воссоздать расширенный раздел и раздел подкачки, пометить основной как загрузочный (a), записать, перезагрузить, затем изменить размер файловой системы.
корень @ debian: ~ # cat / proc / partitions
Major minor #blocks name
8 0 3145728 sda
8 1 2962432 sda1
8 2 1 sda2
8 5 180224 sda5
root @ debian: ~ # выход
$ VBoxManage list runningvms
"Debian" {b32e56f1-a6b9-4753-a67d-19f03503f884}
$ VBoxManage controlvm Debian acpipowerbutton
$ cp Debian.vdi Debian.vdi.backup
$ VBoxManage modifyhd Debian.vdi 7168
$ VBoxManage startvm Debian
$ ssh root@192.168.56.101
корень @ debian: ~ # cat / proc / разделы
Major minor #blocks name
8 0 7340032 sda
8 1 2962432 sda1
8 2 1 sda2
8 5 180224 sda5
корень @ debian: ~ # swapoff / dev / sda5
корень @ debian: ~ # fdisk / dev / sda
Команда (m для справки): ты
Изменение единиц отображения / ввода на секторы
Команда (m для справки): п
Диск / dev / sda: 7516 МБ, 7516192768 байт
Система идентификаторов конечных блоков начала загрузки устройства
/ dev / sda1 * 2048 5926911 2962432 83 Linux
Раздел 1 не заканчивается на границе цилиндра.
/ dev / sda2 5928958 6289407 180225 5 Расширенный
Раздел 2 не заканчивается на границе цилиндра.
/ dev / sda5 5928960 6289407 180224 82 Linux подкачки / Solaris
Команда (m для справки): d
Номер раздела (1-5): 5
Команда (m для справки): d
Номер раздела (1-5): 2
Команда (m для справки): d
Выбранный раздел 1
Команда (m для справки): п
Командное действие
е расширенный
p основной раздел (1-4)
п
Номер раздела (1-4): 1
Первый сектор (63-14680063, по умолчанию 63): 2048
Последний сектор, + секторы или + размер {K, M, G} (2048-14680063, по умолчанию 14680063): + 6G
# Важно! Fdisk в этом случае по умолчанию использует начальный сектор 63, но исходная установка ОС началась с сектора 2048. Вы должны указать тот же начальный сектор (вручную), что и изначально.
Команда (m для справки): п
Диск / dev / sda: 7516 МБ, 7516192768 байт
Система идентификаторов конечных блоков начала загрузки устройства
/ dev / sda1 2048 12584960 6291456+ 83 Linux
Команда (m для справки): п
Командное действие
е расширенный
p основной раздел (1-4)
е
Номер раздела (1-4): 2
Первый сектор (63-14680063, по умолчанию 63): 12584961
Последний сектор, + секторы или + размер {K, M, G} (12584961-14680063, по умолчанию 14680063):
Используя значение по умолчанию 14680063
Команда (m для справки): п
Командное действие
l логический (5 и больше)
p основной раздел (1-4)
л
Первый сектор (12585024-14680063, по умолчанию 12585024):
Использование значения по умолчанию 12585024
Последний сектор, + секторы или + размер {K, M, G} (12585024-14680063, по умолчанию 14680063):
Используя значение по умолчанию 14680063
Команда (m для справки): п
Система идентификаторов конечных блоков начала загрузки устройства
/ dev / sda1 2048 12584960 6291456+ 83 Linux
Раздел 1 не заканчивается на границе цилиндра.
/ dev / sda2 12584961 14680063 1047551+ 5 Расширенный
Раздел 2 не заканчивается на границе цилиндра.
/ dev / sda5 12585024 14680063 1047520 83 Linux
Команда (m для справки): а
Номер раздела (1-5): 1
Команда (m для справки): т
Номер раздела (1-5): 5
Шестнадцатеричный код (введите L, чтобы перечислить коды): 82
Изменен системный тип раздела 5 на 82 (Linux swap / Solaris)
Команда (m для справки): ш
Изменена таблица разделов!
Вызов ioctl () для повторного чтения таблицы разделов.
ПРЕДУПРЕЖДЕНИЕ: повторное чтение таблицы разделов завершилось ошибкой 16: Устройство или ресурс занят.
Ядро по-прежнему использует старую таблицу. Новая таблица будет использоваться в
при следующей перезагрузке или после запуска partprobe (8) или kpartx (8)
Синхронизация дисков.
корень @ debian: ~ # перезагрузка
$ ssh root@192.168.56.101
корень @ debian: ~ # cat / proc / разделы
Major minor #blocks name
8 0 7340032 sda
8 1 6291456 sda1
8 2 1 sda2
8 5 1047520 sda5
корень @ debian: ~ # df /
Файловая система Используется 1K блоков Доступно Использование% Установлено на
/ dev / sda1 2915832 809244 1958468 30% /
корень @ debian: ~ # resize2fs / dev / sda1
resize2fs 1.41.12 (17 мая 2010 г.)
Файловая система в / dev / sda1 смонтирована в /; требуется изменение размера онлайн
старый desc_blocks = 1, new_desc_blocks = 1
Выполнение онлайн-изменения размера / dev / sda1 до 1572864 (4k) блоков.
Файловая система на / dev / sda1 теперь имеет длину 1572864 блока.
корень @ debian: ~ # df /
Файловая система Используется 1K блоков Доступно Использование% Установлено на
/ dev / sda1 6194240 810684 5071636 14% /
корень @ debian: ~ # mkswap / dev / sda5
Вы не сможете увеличить размер раздела / dev / sda1 в этом конкретном экземпляре, потому что рядом с ним находится расширенный раздел (в конечном итоге раздел подкачки).
Вы можете расширить пространство только в том случае, если вокруг целевого раздела есть непрерывное пространство, в этом случае его нет. Это, конечно, верно, если вы не хотите перезагружать раздел.
В этом случае вам нужно будет удалить раздел подкачки, удалить расширенный раздел, расширить раздел 1, оставив место для раздела подкачки, воссоздать расширенный раздел, а затем заново создать раздел подкачки. Затем вы можете выполнить resize2fs на увеличенном разделе. Вам, вероятно, придется сделать этот mkswap и на измененном разделе подкачки, чтобы он работал правильно.