Что самый легкий путь состоит в том, чтобы изменить размер ext4 раздела из командной строки?

Последние версии Linux с открытым исходным кодом драйверы OpenGL (то есть, драйверы, обеспеченные Мезаструктурой [1]) рендеринг поддержки на бездисплейных машинах без оконной системы. Команда Intel Mesa (которому я принадлежу) использует эту функцию для запущения тестов OpenGL на бездисплейных машинах без X-сервера.

Коллега и я добавили поддержку бездисплейного рендеринга к testsuite Мезаструктуры, Piglit [2], при помощи Вафли [3] платформа на бэкенде libEGL GBM. (GBM обозначает Универсальный Buffer Manager и используется для управления буферами GPU без посреднического сервера дисплея).

Возможный showstopper, если Вы хотите преследовать этот подход, то, что к моему знанию EGL с GBM только поддерживается драйверами Linux с открытым исходным кодом. Если Ваше приложение должно поддерживать другой Unix или собственные драйверы, этот подход не будет работать.

Если Вам интересно, преследуя использующий EGL/GBM, я могу указать на Вас на некоторый пример кода.

(Между прочим, если Вы незнакомы с EGL, это - современная замена для GLX, API которого независим от оконной системы. Если Вы довольны GLX, то необходимо чувствовать себя как дома с EGL, потому что два API очень похожи).

[1] http://mesa3d.org

[2] http://piglit.freedesktop.org

[3] http://people.freedesktop.org/~chadversary/waffle

30
24.06.2014, 17:42
6 ответов

Вы можете использовать fdisk для изменения таблицы разделов во время работы. См. эту ссылку http://codesilence. wordpress.com/2013/03/14/live-resizing-of-an-ext4-filesytem-on-linux/

9
27.01.2020, 19:38

gparted использует resize2fs для изменения размера раздела. Для этого не нужно много аргументов. Ниже приведены те, которые я нашел полезными.

-M сжимается до минимального размера файловой системы.

-p показывает процентный показатель.

-P выводит минимальный размер файловой системы и завершает работу.

7
20.08.2021, 12:50

Если вы собираетесь увеличить размер раздела и файловой системы, сначала запустите fdisk , чтобы увеличить размер раздела, а затем запустите resize2fs , чтобы увеличить размер файловой системы.

Если вы собираетесь уменьшить размер обоих, запустите сначала resize2fs , а затем fdisk .

12
20.08.2021, 12:50

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

echo "- +" | sfdisk -N <partnum> /dev/sdX

...затем resize2fs /dev/sdX<partnum>.

-говорит sfdisk повторно использовать существующий сектор start, а +говорит ему сделать sizeкак можно больше, учитывая доступное пространство.

7
20.08.2021, 12:50

Отвечаю на случай, если у вас будет такая же ситуация, как у меня. Мне пришлось изменить размер файловой системы (Ext4 )на динамическом диске с Ubuntu 18.0.4 LTS в качестве гостя. Мне удалось изменить размер диска с хоста, а затем изменить размер файловой системы.

Запуск обычных команд был невозможен. Например:

$ resize2fs /dev/sda2
resize2fs 1.44.1 (24-Mar-2018)
The filesystem is already 13180160 (4k) blocks long.  Nothing to do!

и fdiskбыли довольно сложными, также, вероятно, мне пришлось запустить LiveCD, чтобы работать с несмонтированным диском.

Эти две команды легко и быстро решили мою проблему:

$ growpart /dev/sda 2
CHANGED: partition=2 start=4096 old: size=105441280 end=105445376 new: size=409595871,end=409599967

$ resize2fs /dev/sda2
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/sda2 is mounted on /; on-line resizing required
old_desc_blocks = 7, new_desc_blocks = 25
The filesystem on /dev/sda2 is now 51199483 (4k) blocks long.

Примечание:2в первой команде, которое указывает номер раздела на устройстве /dev/sda.

6
20.08.2021, 12:50

Изменение размера корневого раздела Linux без перезагрузки

Введение

Типичный сервер Linux, развернутый из образа, предоставленного ProfitBricks, имеет один том хранилища, /dev/vda. Если мы посмотрим на это с помощью fdisk, мы увидим, что диск разделен на два раздела. Первый, /dev/vda1, — это загрузочный раздел, в котором находится ОС. Второй раздел, /dev/vda2, настроен как пространство подкачки.

root@debian:~# fdisk -l /dev/vda

Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 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: 0x0041f8a8

Device Boot Start End Sectors Size Id Type /dev/vda1 2048 96471039 96468992 46G 83 Linux /dev/vda2 96471040 104857599 8386560 4G 82 Linux swap / Solaris

В приведенном выше примере общий объем хранилища объемом 50 ГБ разделен на 46 ГБ полезного пространства и 4 ГБ для подкачки. Что, если после подготовки мы обнаружим, что 46 ГБ дискового пространства недостаточно, но мы предпочитаем не добавлять дополнительный том хранилища? Цель состоит в том, чтобы увеличить объем дискового пространства, доступного в корневой файловой системе. Это может быть достигнуто с минимальным нарушением. Нам не нужно перезагрузить сервер!

Требования

  • Сервер Linux, созданный из образа, предоставленного ProfitBricks.
  • SSH или консольный доступ (через DCD )к серверу Linux.
  • Команда partprobe. Может быть установлен из пакета partedв большинстве дистрибутивов Linux.
  • Команды fdisk, swapoff, mkswap, swaponи resize2fs. Вероятно, доступно по умолчанию.
  • Текущий снимок или другая резервная копия системы, с которой вы работаете. Просто чтобы быть в безопасности!

Предоставление дополнительного места

Чтобы увеличить размер жесткого диска, перейдите в DCD (Data Center Designer )и увеличьте размер диска.

После увеличения объема дискового пространства нажмите «Подготовка», чтобы применить изменения. Займет около минуты, и ваш жесткий диск станет больше.

Затем нам нужно отключить подкачку -, поэтому убедитесь, что вы можете прожить несколько минут без подкачки:

root@debian:~# swapoff -a

После отключения подкачки нам нужно переконфигурировать разделы, используяfdisk:

Сначала мы удалим два существующих раздела. Мы запускаем fdisk /dev/vda, а затем используем команду d, чтобы удалить раздел 2, а затем удалить раздел 1. Следуйте приведенному ниже примеру:

root@debian:~# fdisk /dev/vda

Command (m for help): d Partition number (1,2, default 2):

Partition 2 has been deleted.

Command (m for help): d Selected partition 1 Partition 1 has been deleted.

Теперь мы воссоздаем наши разделы. В примере у нас есть 4 ГБ пространства подкачки. Поэтому нам нужно оставить как минимум столько места для нового раздела подкачки.

Сначала воссоздайте /dev/vda1. Нажмите n , чтобы создать новый раздел. Введите p , чтобы создать основной раздел. Мы можем нажать Enter , чтобы принять значение по умолчанию 2048 для первого сектора. Затем введите размер раздела. Вы можете ввести значение в ГБ, поэтому, если мы увеличиваем диск до 100 ГБ, мы вычитаем наши 4 ГБ для подкачки и вводим +96G для 96 ГБ.

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-209715199, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-209715199, default 209715199): +96G

Created a new partition 1 of type 'Linux' and of size 96 GiB.

Теперь мы воссоздаем раздел подкачки, следуя аналогичному процессу. Нажмите n , а затем p , чтобы создать новый основной раздел. Нажмите . Введите , чтобы принять значение по умолчанию для «Первый сектор». Мы также можем нажать и снова ввести , чтобы принять значение по умолчанию для «Последнего сектора».

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 (201328640-209715199, default 201328640):
Last sector, +sectors or +size{K,M,G,T,P} (201328640-209715199, default 209715199):

Created a new partition 2 of type 'Linux' and of size 4 GiB.

Поскольку этот второй раздел будет использоваться для пространства подкачки, нам нужно изменить тип раздела.Это можно сделать, нажав t при подсказке fdisk. Затем мы нажимаем 2 , чтобы выбрать второй раздел. Если вы хотите увидеть список доступных типов разделов, нажмите L , в противном случае введите 82 , чтобы выбрать «Linux swap / Solaris».

Command (m for help): t
Partition number (1,2, default 2): 2
Partition type (type L to list all types): L

0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 84 OS/2 hidden or c6 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx 5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data 6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS /. 7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility 8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt 9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi ea Rufus alignment e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD eb BeOS fs f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ee GPT 10 OPUS 55 EZ-Drive a7 NeXTSTEP ef EFI (FAT-12/16/ 11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f0 Linux/PA-RISC b 12 Compaq diagnost 5c Priam Edisk a9 NetBSD f1 SpeedStor 14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f4 SpeedStor 16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ f2 DOS secondary 17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fb VMware VMFS 18 AST SmartSleep 65 Novell Netware b8 BSDI swap fc VMware VMKCORE 1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fd Linux raid auto 1c Hidden W95 FAT3 75 PC/IX bc Acronis FAT32 L fe LANstep 1e Hidden W95 FAT1 80 Old Minix be Solaris boot ff BBT Partition type (type L to list all types): 82

fdiskуслужливо сообщает нам, что мы изменили тип раздела с сообщением:

Changed type of partition 'Linux' to 'Linux swap / Solaris'.

После этого сохраняем с помощью команды wи возвращаемся в командную строку:

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).

Давайте воздержимся от перезагрузки и вместо этого сообщим ядру о новых разделах, используяpartprobe:

root@debian:~# partprobe

Мы должны вернуться к приглашению оболочки без вывода из partprobe.

Теперь нам нужно изменить размер нашей файловой системы на/dev/vda1:

root@debian:~# resize2fs /dev/vda1
resize2fs 1.42.12 (29-Aug-2014)
Filesystem at /dev/vda1 is mounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3

Файловая система на /dev/vda1теперь имеет длину 25165824 (4k )блоков.

Инициализировать новое местоположение подкачки/dev/vda2:

root@debian:~# mkswap /dev/vda2
Setting up swapspace version 1, size = 4193276 KiB
no label, UUID=c55c25a2-a386-4653-8455-4d9030586dd2

Наконец, мы редактируем /etc/fstabи заменяем старый UUID новым, возвращенным в выводе команды mkswap. Строка для изменения не имеет значения для «точки монтирования» и имеет «тип», установленный на swap .

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
UUID=332f8fb5-ff1f-4297-b512-f2c93a277296 /               ext4    errors=remount-ro 0       1
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0
UUID=c55c25a2-a386-4653-8455-4d9030586dd2       none    swap    sw      0       0

После редактирования /etc/fstabнам нужно снова включить своп:

root@debian:~# swapon -a

Подтвердить

Мы можем проверить новый больший размер диска, используя dfи/или fdisk.

Device     Boot     Start       End   Sectors Size Id Type
/dev/vda1            2048 201328639 201326592  96G 83 Linux
/dev/vda2       201328640 209715199   8386560   4G 82 Linux swap / Solaris

Мы также можем подтвердить, что сервер был , а не перезагружен, просмотрев выводuptime:

$ uptime
 23:54:21 up 7 days,  1:15,  1 user,  load average: 0.00, 0.01, 0.05

Резюме

Мы успешно увеличили объем дискового пространства, доступного на нашем сервере Linux.

Ссылка

https://devops.ionos.com/tutorials/increase-the-size-of-a-linux-root-partition-without-rebooting/

ИЛИ

https://web.archive.org/web/20201113021238/https://devops.ionos.com/tutorials/increase-the-size-of-a-linux-root-partition-without-rebooting/

2
20.08.2021, 12:50

Теги

Похожие вопросы