Расширить корневой раздел (ext4, не LVM) диска в Debian
Корневой раздел является хранилищем всех остальных файловых систем. Через него система получает доступ ко многим (если не ко всем) своим ресурсам. В этом разделе (файловая система) содержит такие важные системные каталоги (которые могут быть выноситься в отдельные разделы при желании и являться отдельными файловыми системами) как «/usr», «/bin», «/etc», «/var», «/opt» и т. д., в совокупности все они содержат файлы ядра, стандартные системные утилиты, файлы хранимой конфигурации системы, файлы журналов системных событий и т. д.
Есть виртуальная машина, разбивка диска следующая:
1
2
3
$ lsblk
$ df -H
$ sudo cfdisk /dev/sda
Выключаем виртуалку, увеличиваем размер vdi-диска с помощью VBoxManage (в составе VirtualBox):
1
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd "C:\Users\user\VirtualBox VMs\debian8\debian8.vdi" --resize 12288
Включаем виртуалку, смотрим что получилось
1
2
3
$ lsblk
$ df -H
$ sudo cfdisk /dev/sda
Выключаем swap (файл подкачки)
1
$ sudo swapoff -a
Начинаем удалять разделы (данные не потеряются)
Смотрим разметку
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ sudo fdisk /dev/sda
Command (m for help): p
Disk /dev/sda: 12 GiB, 12821987328 bytes, 25042944 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: 0xd00b3928
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 15988735 15986688 7.6G 83 Linux
/dev/sda2 15990782 16775167 784386 383M 5 Extended
/dev/sda5 15990784 16775167 784384 383M 82 Linux swap / Solaris
В данном примере вначале удаляем /dev/sda2
1
2
3
4
Command (m for help): d
Partition number (1,2,5, default 5): 2
Partition 2 has been deleted.
Смотрим результат
1
2
3
4
5
6
7
8
9
10
Command (m for help): p
Disk /dev/sda: 12 GiB, 12821987328 bytes, 25042944 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: 0xd00b3928
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 15988735 15986688 7.6G 83 Linux
Удаляем раздел /dev/sda1 (данные не потеряются)
1
2
3
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.
Таким образом мы удалили разделы на диске. Данный способ используется т.к. при автоматической разбивке диска в Debian (без LVM) корневой раздел оказывается в начале диска, а добавляемое пространство оказывается в конце диска. А между ними область, выделенная под swap.
Создадим новый раздел (primary)
1
2
3
4
5
6
7
8
9
10
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):
First sector (2048-25042943, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-25042943, default 25042943): +11G
Created a new partition 1 of type 'Linux' and of size 11 GiB.
Таким образом мы создали новый раздел размером 11 Gb, 1 Gb оставили под swap
Создадим раздел (extended) под swap
1
2
3
4
5
6
7
8
9
10
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): e
Partition number (2-4, default 2):
First sector (23070720-25042943, default 23070720):
Last sector, +sectors or +size{K,M,G,T,P} (23070720-25042943, default 25042943):
Created a new partition 2 of type 'Extended' and of size 963 MiB.
Попробуем поменять тип файловой системы
1
2
3
4
5
6
Command (m for help): t
Partition number (1,2, default 2): 2
Hex code (type L to list all codes): 82
You cannot change a partition into an extended one or vice versa. Delete it first.
Type of partition 2 is unchanged: Extended.
Утилита ругается
Сохраняем изменения
1
2
3
4
5
6
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).
Утилита сообщает, что изменения применятся после перезагрузки
Перезагружаем виртуалку
1
$ sudo reboot
Смотрим результат
1
2
3
$ lsblk
$ df -H
$ sudo cfdisk /dev/sda
Запускаем утилиту cfdisk
1
$ sudo cfdisk /dev/sda
Выбираем /dev/sda1:
1
Bootable
Выбираем неразмеченную область:
1
New - > Partition size: 962M -> Type: 82
Сохраняем изменения
1
Write: yes - > Quit
Передаем информацию об изменении разметки операционной системе, установив утилиту parted
1
2
$ sudo apt install parted -y
$ sudo partprobe
Создаем раздел под swap
1
2
3
$ sudo mkswap /dev/sda5
Setting up swapspace version 1, size = 985084 KiB
no label, UUID=be9028ea-7dd0-445b-99ae-69835d586ed5
Включаем swap
1
$ sudo swapon /dev/sda5
Смотрим новые UUID
1
2
3
$ sudo blkid
/dev/sda1: UUID="c86485d2-6505-426e-9298-48eb1462be89" TYPE="ext4" PARTUUID="d00b3928-01"
/dev/sda5: UUID="be9028ea-7dd0-445b-99ae-69835d586ed5" TYPE="swap" PARTUUID="d00b3928-05"
Прописываем их в /etc/fstab
1
$ sudo nano /etc/fstab
Монтируем
1
$ sudo mount -a
Перезагружаем виртуалку
1
$ sudo reboot
Проверяем
1
2
$ lsblk
$ df -h
Расширяем раздел /dev/sda1
1
$ sudo resize2fs /dev/sda1
Проверяем
1
2
3
4
5
6
7
8
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 11G 1.2G 9.1G 12% /
udev 10M 0 10M 0% /dev
tmpfs 403M 5.5M 397M 2% /run
tmpfs 1006M 0 1006M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1006M 0 1006M 0% /sys/fs/cgroup
Таким образом мы расширили корневой раздел работающей операционной системы Debian не прибегая к помощи LiveCD