Как я могу увеличить размер корневого раздела системы во время выполнения?
У меня есть раздел, который не выделяется после корневого раздела (который тоже в ext4), как я могу добавить, что незанятое пространство на пространство, выделенное для корневого раздела без необходимости отключения сервера?
Графический интерфейс (Ubuntu 14.04 и новее): Утилита GParted версии v0.17 и позже предоставить хороший GUI для этого. (Более старые версии отказываются изменить смонтированный раздел).
Командная строка (любой версии Ubuntu): Есть три шага к этому.
Шаг 1. Раздел должен быть изменен. Если вы're, используя LVM, то это's легко, и вы, вероятно, знаете, как продолжить. Если вы're, используя классические перегородки, это'ы немного сложнее, и может потребовать перезагрузки (хотя вы никогда не должны выбрать загрузку другой системы, или видео компакт-диск).
Это, как я делаю это: использование программы fdisk`, чтобы сначала удалить раздел (идея в том, что данные на диске будут сохранены), а затем тщательно воссоздать его с большего размера на той же позиции.
Пример:
$ sudo fdisk /dev/sda
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 9437183 4717568 83 Linux
Command (m for help): d
Selected partition 1
Command (m for help): p
Device Boot Start End Blocks Id System
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4, default 1): 1
First sector (2048-10485759, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759):
Using default value 10485759
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/sda1 2048 10485759 5241856 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
Опять же, очень важно, что новый раздел начинается на том же блоке, что и старый. Идентификатор также должен соответствовать (83 для систем Linux). Будьте готовы к потере всех ваших данных при малейшей опечатки.
Чтобы быть на безопасной стороне, вы можете также восстановить флаг загрузки (по материалам Википедии по-прежнему необходима на некоторых компьютерах), нажав "а".
В разделе комментарий Для что делать, если ваш раздел подкачки в пути.
К настоящему времени это должно быть очевидно, почему люди рекомендуют использование живого CD. ;-)
Шаг 2.
Как и fdiskуслужливо напоминает вам, вы должны обновить таблицу разделов, прежде чем продолжить. Самый безопасный способ-это просто перезагрузка, но вы также можете использовать
partprobeили
автоматического` (дополнительная информация).
Шаг 3. После раздела размеров и таблица разделов перезагрузка, это'ы просто работает `resize2fs на файловой системе, и вы можете сделать это, даже когда он's установлен в качестве корневого раздела.
Пример:
$ sudo resize2fs /dev/sda1
Это можно сделать он-лайн изменить размер файловой системы в ext4, даже если это's ваш корневой раздел. Используйте команду resize2fs`.
sudo resize2fs /dev/sda1
Редактировать: он-лайн сокращение не допускается:
root@brunojcm-htpc:/home# resize2fs /dev/sda5 2654693
resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/sda5 is mounted on /; on-line resizing required
resize2fs: On-line shrinking not supported
Более простое решение - использовать growpart <устройство> <раздел>`:
growpart /dev/xvda 1 # Grows the partition; note the space
resize2fs /dev/xvda1 # Grows the filesystem
Как всегда, резервное копирование таблицы разделов (sfdisk -Д в /dev/xvda > partition_bak.ДМП
) на всякий случай.
Да, вы можете уменьшить/переместить/расти онлайн-корневой раздел без всяких перезагрузок (ни диска, ни usbkey): прочитайте этот ответ. Это's очень хорошо написана и легко следовать, хотя довольно долго и немного опасно. Так что если вы хотите вырастить свой раздел в ext4, вы можете придерживаться обычных рабочих resize2fs
решения.
Общее решение Я'вэ lnked будет работать на любой тип выделенного или VPS решением для экземпляра.
Мы выбрали это решение влечет для pivot_root
в файловая система tmpfs
так можно размонтировать
безопасное корневой текущий раздел и повозиться с ней. Как только это сделано, вы'МР pivot_root
обратно на Новым корневым разделом.
Это позволяет практически любые манипуляции с корневой файловой системой (перемещать его, менять файловую систему, изменяя его'физическое устройство с...).
Перезагрузка не требуется, в процессе, и этот позволяет обходить ограничение от resize2fs
не способны сокращаться ext4
разделы.
Я лично использовал это, и это очень хорошо работает на системе Debian, поэтому он должен работать на Ubuntu. Я'м очень удивлен, чтобы не видеть этого углубленного решения немного больше связано со многими вопрос на веб-сайтах клиент StackExchange, что касается той же проблемы.
Примечание: конечно, если вы хотите развивать свой раздел, просто resize2fs
будет достаточно, как сказано во многих местах и в другие ответы здесь.
Вы могли бы также просто использовать программы GParted - покуда раздела изменение размера не загрузились - еще предлагаю диска вариант несколько проще для новичков.
Утилита GParted в основном делает все действия - только на основе фасадом интерфейса.
Только что закончил изменение размера корневой системы ext4 раздел на живые системы, в то время как корень горы.
[root@habib i686]# resize2fs /dev/vg_habib/lv_root
resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/vg_habib/lv_root is mounted on /; on-line resizing required
old_desc_blocks = 4, new_desc_blocks = 10
Performing an on-line resize of /dev/vg_habib/lv_root to 38427648 (4k) blocks.
The filesystem on /dev/vg_habib/lv_root is now 38427648 blocks long.
[root@habib i686]#
Я хотел бы сделать расширение на ответ @хøРЕН лøvborg: расширение раздела с раздел подкачки присутствует.
Первый макет диска после его продления:
$sudo parted /dev/sda 'unit s print' free
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 14336000s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
63s 2047s 1985s Free Space
1 2048s 10485759s 10483712s primary ext4 boot
10485760s 10487805s 2046s Free Space
2 10487806s 12580863s 2093058s extended
5 10487808s 12580863s 2093056s logical linux-swap(v1)
12580864s 14335999s 1755136s Free Space
Так sda1, поскольку должен быть продлен с свободное пространство в конце диска, а раздел подкачки находится между ними. Это, как вы можете сделать это:
В первую очередь надо отключить своп. Проверить, сколько он используется, и если вы можете выключить его.
$ free -h
total used free shared buff/cache available
Mem: 992M 52M 464M 3.2M 475M 784M
Swap: 1.0G 0B 1.0G
своп не используется здесь, чтобы мы могли выключить его
$sudo swapoff /dev/sda5
Теперь мы будем менять таблицу разделов:
$sudo fdisk /dev/sda
(Примечание: Если вам посчастливилось иметь в первом запуске раздела в секторе 63 вместо 2048, вам нужно добавить опцию -с=ОСН
)
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): p
Disk /dev/sda: 6.9 GiB, 7340032000 bytes, 14336000 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: 0x9e11c6df
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 10485759 10483712 5G 83 Linux
/dev/sda2 10487806 12580863 2093058 1022M 5 Extended
/dev/sda5 10487808 12580863 2093056 1022M 82 Linux swap / Solaris
Command (m for help): d
Partition number (1,2,5, default 5): 2
Partition 2 has been deleted.
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-14335999, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-14335999, default 14335999): 12242941
Created a new partition 1 of type 'Linux' and of size 5.9 GiB.
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (12242942-14335999, default 12242944):
Last sector, +sectors or +size{K,M,G,T,P} (12242944-14335999, default 14335999):
Created a new partition 2 of type 'Linux' and of size 1022 MiB.
Command (m for help): a
Partition number (1,2, default 2): 1
The bootable flag on partition 1 is enabled now.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy
The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
Примечание: размер sda1-это общее количество секторов за вычетом размера сектора раздела подкачки: 14335999-2093058=12242941
Как fdisk указывает: ядро по-прежнему использует старую таблицу разделов, поэтому мы должны перезагрузить его.
$partprobe
Теперь нам нужно запустить resize2fs на sda1, поскольку (не забывайте это!)
$resize2fs /dev/sda1
resize2fs 1.42.12 (29-Aug-2014)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 10
The filesystem on /dev/sda1 is now 38833617 (4k) blocks long.
Теперь, все еще не закончились. Как вы'ве, вероятно, заметили sda2 секционирована как типа Linux (в ext4). По каким-то причинам, нет возможности в fdisk выбрать тип. Поэтому приходится чередовать его с помощью команды cfdisk`
$ sudo cfdisk
Выбрать sda2 и изменить тип в `82 подкачки Линукс / Солярис и убедитесь, что вы писать (типа Да, чтобы подтвердить)
Теперь мы можем вновь активировать своп
$mkswap /dev/sda2
/dev/sda2
UUID=d58bf1cb-d27a-487d-b337-056767fd5ad6 none swap sw 0 0
И, наконец, включить его:
$swapon /dev/sda2
Единственное, что нам нужно сделать, это обновление fstab для автоматического монтирования раздела подкачки при загрузке
$sudo nano /etc/fstab
И изменить UUID для раздела подкачки выше вывода:
# swap was on /dev/sda5 during installation
UUID=d58bf1cb-d27a-487d-b337-056767fd5ad6 none swap sw 0 0
Сейчас все хорошо и вы можете перезагрузить без проблем.
Я просто сделал это успешно без обратите внимание
, pivot_root
, или временное выселение из основных разделов, с помощью parted 3.2 на Ubuntu 16.04, ядра 4.4.0. Чтобы быть осторожным, я сделал все, что от виртуальной консоли с загрузкой сетевых драйверов отключен, и сделали снимок заранее, на всякий случай, но снимок не'т нужна, я мог бы также сделать это через SSH и не меняя уровни.
Определить размер раздела: расстался с /dev/sda1, поскольку печать | для egrep-то "диск.*ГБ"
в
При необходимости переключиться в многопользовательский режим без поддержки сети (должно быть сделано с консоли, а не через SSH):
runlevel # remember the original runlevel
init 2
При необходимости сделать моментальный снимок виртуальной машины, чтобы быть осторожным.
Размер раздела:
parted
p
resizepart NUMBER SIZE
# answer "Yes" when asked about resizing a live partition.
q
Изменить размер файловой системы: resize2fs на /dev/sda1, поскольку
Если что-то пойдет не так, ты можешь восстановить здесь свой снимок. Если все прошло нормально, вернуть нормальный уровень (полученные выше) - обычно 5: инит 5
. Может быть, лучше сделать полную перезагрузку на данный момент, чтобы убедиться, что все правильно (у меня дата выпуска/НТП позже).
Выполните следующие действия.
Су
расстались
расстались
введите Exit
и в partprobe тип терминала и нажмите Enter (Это можно сделать даже после перезагрузки)Как было сказано выше:
расширение жить с корневой системой можно.(нет трудностей, в качестве загрузочного раздела Айн'т быть перенесен)
сжатие текущий корневой раздел должен быть выполнен из внешнего загрузочного устройства (загрузка с Live-системы с CD/USB-носитель), а если есть какая-либо неисправность, несоответствие ..что..ваша система зависает, требуется перезагрузка и в конечном итоге не сможет загружаться.
Каких-либо "но я это сделал и оно работает" это чистое везение.