Страница 1 из 1

Изменение размера дисковых разделов в LINUX

Добавлено: 09 янв 2017, 15:38
xor
Источник: https://blog.eaglenn.ru/izmenenie-razme ... formatsii/
Источник: http://xgu.ru/wiki/LVM

Изменение размера раздела ext2/ext3/ext4 без потери информации

Вследствие неправильного разбиения дисковой системы на разделы или в силу непредвиденного резкого увеличения занимаемого дискового пространства наступает момент, когда места на разделе не хватает. Что же делать в сложившейся ситуации? Переустанавливать систему трудозатратно и не легко. Какой выход? Но выход есть всегда! Причем довольно простой. В современной Linux системе расширение дисковых разделов реализовано достаточно хорошо. В некоторых случаях не потребуется даже перезагрузка системы. Рассмотрим изменение размеров разделов файловых систем ext2, ext3, ext4 операционной системы Linux с помощью утилит fdisk и resize2fs на примерах. Эти методы позволяют сохранить существующую информацию на разделах, но в целях безопасности лучше сделать копии важных данных. Поскольку утилиты работают с от монтированным разделом, то для изменения размера корневого раздела потребуется загрузка с установочного или live-диска. Если же у вас desktop с графической системой, то можно воспользоваться легкой в применении программой gparted с графическим интерфейсом.

Увеличение размера раздела ext2/ext3/ext4 в виртуальной машине
Добавляем объема диску в vmware консоли.
Перезагружаем машину, или включаем, если выключали.

проверяем объем диска

Код: Выделить всё

root@noc-monitor:~# fdisk -l

Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 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: 0xa161d587

Device     Boot   Start      End  Sectors  Size Id Type
/dev/sda1  *       2048  1953791  1951744  953M 83 Linux
/dev/sda2       1953792  9766911  7813120  3.7G 82 Linux swap / Solaris
/dev/sda3       9766912 25163775 15396864  7.4G 83 Linux
меняем размер раздела

Код: Выделить всё

root@noc-monitor:~# parted 
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p                                                                
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system     Flags
 1      1049kB  1000MB  999MB   primary  ext4            boot
 2      1000MB  5001MB  4000MB  primary  linux-swap(v1)
 3      5001MB  12.9GB  7883MB  primary  ext4

(parted) resize 
Error: The resize command has been removed in parted 3.0
(parted) resizepart 
Partition number? 3                                                       
Warning: Partition /dev/sda3 is being used. Are you sure you want to continue?
Yes/No? Y                                                                 
End?  [12.9GB]? 21.5GB                                                    
(parted) p                                                                
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system     Flags
 1      1049kB  1000MB  999MB   primary  ext4            boot
 2      1000MB  5001MB  4000MB  primary  linux-swap(v1)
 3      5001MB  21.5GB  16.5GB  primary  ext4

(parted) q                                                                
Information: You may need to update /etc/fstab.

root@noc-monitor:~#
меняем ФС. проверяем результат

Код: Выделить всё

root@noc-monitor:~# resize2fs /dev/sda3
resize2fs 1.42.12 (29-Aug-2014)
Filesystem at /dev/sda3 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/sda3 is now 4022016 (4k) blocks long.

root@noc-monitor:~# 
root@noc-monitor:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        15G  6.6G  7.8G  46% /
udev             10M     0   10M   0% /dev
tmpfs           405M   11M  395M   3% /run
tmpfs          1012M     0 1012M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs          1012M     0 1012M   0% /sys/fs/cgroup
/dev/sda1       922M   30M  829M   4% /boot
root@noc-monitor:~#

Увеличение размера раздела ext2/ext3/ext4 (иной вариант)
И так, предположим, что в нашей системе имеется диск /dev/sdd размером 2 Тб с разделом /dev/sdd1 размером 1 Тб. Попробуем увеличить размер раздела /dev/sdd1 до 2 Тб, т.е. максимально возможного размера. Для этого зайдем используя ssh на консоль сервера, где введем несколько последовательных команд:

от монтируем партицию:
umount /dev/sdd1
выполним проверку партиции:
fsck -f /dev/sdd1
запустим утилиту fdisk
fdisk /dev/sdd
После выполнения последней команды мы попадаем в интерактивную оболочку fdisk. Нажмем клавишу d (удалить раздел):

Команда (m для справки):
d
Выбранный раздел 1
Создаём новый раздел:

Команда (m для справки):
n
Действие команды
e расширенный
p основной раздел (1-4)
p

Номер раздела (1-4, по умолчанию 1): 1
Первый сектор (2048-2097151, по умолчанию 2048): <жмём Enter>
Последний сектор тоже выбираем по-умолчанию, нажав Enter:

Last сектор, +секторы or +size{K,M,G} (2048-1097151, по умолчанию 1097151):
<жмём Enter>
После этого записываем новую таблицу раздела на диск, нажав w:

Команда (m для справки):
w
Таблица разделов была изменена!
...
Синхронизируются диски
Теперь увеличиваем размер файловой системы до последнего сектора:

resize2fs /dev/sdd1
После этого монтируем раздел обратно:

mount /dev/sdd1 /mnt/data
И проверяем новый размер раздела:

df -h
Уменьшение размера раздела ext2/ext3/ext4

Для уменьшения размера раздела с файловой системой ext2/ext3/ext4 необходимо выполнить те же действия, но в обратном порядке.

Например, уменьшим размер раздела до 100 Мб (главное, чтобы этот размер был больше занятого файлами пространства на разделе).

от монтируем партицию:
umount /dev/sdd1
выполним проверку партиции:
fsck -f /dev/sdd1
выполним команду resize2fs указав в качестве параметра размер новой партиции (100 Мб):

resize2fs /dev/sdd1 100M
запустим утилиту fdisk
fdisk /dev/sdd
Команда (m для справки):
d
Команда (m для справки):
n
Действие команды

e расширенный

p основной раздел (1-4)
p

Номер раздела (1-4, по умолчанию 1): 1
Первый сектор (2048-2097151, по умолчанию 2048): <жмём Enter>
Последний сектор выбираем не по-умолчанию, а соответственно новому размеру раздела:

Первый сектор (2048-2097151, по умолчанию 2048):
+100M
После этого записываем новую таблицу раздела на диск, нажав w:

Команда (m для справки):
w
Таблица разделов была изменена!
...
Синхронизируются диски
После этого монтируем раздел обратно:

mount /dev/sdd1 /mnt/data
И проверяем новый размер раздела:

df -h

Увеличение размера LVM раздела
После увеличения физического диска делаем рескан
# for x in /sys/class/scsi_disk/*; do echo '1' > $x/device/rescan; done
если рескан не помог, перезагружаем машину

Смотрим что у нас есть в системе по дискам и разделам
lsblk
pvdisplay
vgdisplay
lvdisplay
pvs
vgs
lvs

создаем новый физический раздел
pvcreate /dev/sda4

расширяем VolumeGroup этим разделом
vgextend VolGroup /dev/sda4

Увеличиваем логический раздел на нужные гигабайты или на все свободное место
lvextend -L+850G /dev/VolGroup/lv_root
lvresize -l +100%FREE /dev/VolGroup/lv_root

Увеличиваем файловую систему
resize2fs /dev/VolGroup/lv_root

проверяем что вышло
lsblk
pvdisplay
vgdisplay
lvdisplay
pvs
vgs
lvs
df -h


Увеличение раздела SWAP (LVM)
To extend an LVM2 swap logical volume (assuming /dev/VolGroup00/LogVol01 is the volume you want to extend):
Отключить SWAP механизм на выбранном разделе:
swapoff -v /dev/VolGroup00/LogVol01
Увеличиваем раздел на 256МБ:
lvm lvresize /dev/VolGroup00/LogVol01 -L +256M
Форматируем раздел в SWAP формат:
mkswap /dev/VolGroup00/LogVol01
Включаем механизм SWAP:
swapon -va
Проверяем результат:
cat /proc/swaps
free

Creating an LVM2 Logical Volume for Swap
To add a swap volume group (assuming /dev/VolGroup00/LogVol02 is the swap volume you want to add):
Create the LVM2 logical volume of size 256 MB:
lvm lvcreate VolGroup00 -n LogVol02 -L 256M
Format the new swap space:
mkswap /dev/VolGroup00/LogVol02
Add the following entry to the /etc/fstab file:
/dev/VolGroup00/LogVol02 swap swap defaults 0 0
Enable the extended logical volume:
swapon -va
Test that the logical volume has been extended properly:
cat /proc/swaps
free

Creating a Swap File
To add a swap file:
Determine the size of the new swap file in megabytes and multiply by 1024 to determine the number of blocks. For example, the block size of a 64 MB swap file is 65536.
At a shell prompt as root, type the following command with count being equal to the desired block size:
dd if=/dev/zero of=/swapfile bs=1024 count=65536
Change the persmissions of the newly created file:
chmod 0600 /swapfile
Setup the swap file with the command:
mkswap /swapfile
To enable the swap file immediately but not automatically at boot time:
swapon /swapfile
To enable it at boot time, edit /etc/fstab to include the following entry:
/swapfile swap swap defaults 0 0
The next time the system boots, it enables the new swap file.
After adding the new swap file and enabling it, verify it is enabled by viewing the output of the command cat /proc/swaps or free.