Последние версии 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 очень похожи).
Вы можете использовать fdisk
для изменения таблицы разделов во время работы. См. эту ссылку http://codesilence. wordpress.com/2013/03/14/live-resizing-of-an-ext4-filesytem-on-linux/
gparted
использует resize2fs
для изменения размера раздела. Для этого не нужно много аргументов. Ниже приведены те, которые я нашел полезными.
-M
сжимается до минимального размера файловой системы.
-p
показывает процентный показатель.
-P
выводит минимальный размер файловой системы и завершает работу.
Если вы собираетесь увеличить размер раздела и файловой системы, сначала запустите fdisk
, чтобы увеличить размер раздела, а затем запустите resize2fs
, чтобы увеличить размер файловой системы.
Если вы собираетесь уменьшить размер обоих, запустите сначала resize2fs
, а затем fdisk
.
Метод с использованием сценариев, предполагающий наличие свободного места непосредственно после раздела, размер которого нужно изменить:
echo "- +" | sfdisk -N <partnum> /dev/sdX
...затем resize2fs /dev/sdX<partnum>
.
-
говорит sfdisk повторно использовать существующий сектор start
, а +
говорит ему сделать size
как можно больше, учитывая доступное пространство.
Отвечаю на случай, если у вас будет такая же ситуация, как у меня. Мне пришлось изменить размер файловой системы (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
.
Введение
Типичный сервер 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 ГБ дискового пространства недостаточно, но мы предпочитаем не добавлять дополнительный том хранилища? Цель состоит в том, чтобы увеличить объем дискового пространства, доступного в корневой файловой системе. Это может быть достигнуто с минимальным нарушением. Нам не нужно перезагрузить сервер!
Требования
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/
ИЛИ