Назад | Перейти на главную страницу

Изменение размера Debian в VirtualBox

У меня есть виртуальная машина с одним жестким диском размером 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 и на измененном разделе подкачки, чтобы он работал правильно.