Емеется EC2, на котором был увеличен EBS диск с 8 до 16 гиг.
Задача – увеличить размер раздела на диске, при этом сохранив данные.
Проблема в том, что на диске уже создан раздел, и этот раздел – фиксированный, и он не LVM:
[simterm]
admin@monitonrig-dev:~$ lsblk /dev/xvdb NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvdb 202:16 0 16G 0 disk └─xvdb1 202:17 0 8G 0 part /data
[/simterm]
Система в примерах ниже – Debian 9, но пример подходит для любой Linux-системы.
Важно: не верьте мне! Дабы потом не писать комментариев в духе “Я всё сделал по вашему мануалу, и потерял все данные!!!” (где-то такой был) – сначала проверяем на виртуальной машинке в Virtualbox раза два-три, потом пять раз всё бекапим с “боевой” машинки, и только после этого – выполняем изменения.
Выполняем следующие шаги:
fdisk
: увеличаем размер раздела/dev/xvdb1
- перезагружаем машину, что бы проверить, что всё работает
resize2fs
– увеличиваем размер файловой системы (тут этоext4
)
Содержание
fdisk
– увеличиваем размер раздела
Шаги тут:
- удаляем существующий раздел
- создаём новый
- записываем изменения таблицы разделов
Проверяем разметку диска сейчас:
[simterm]
root@monitonrig-dev:/home/admin# fdisk -l /dev/xvdb Disk /dev/xvdb: 16 GiB, 17179869184 bytes, 33554432 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: 0x82283426 Device Boot Start End Sectors Size Id Type /dev/xvdb1 2048 16777215 16775168 8G 83 Linux
[/simterm]
Важно запомнить первый сектор, на котором начинается раздел – 2048.
В данном случае раздел на диске один, но если разделов несколько – то при пересоздании раздела он должен начинаться на том же секторе диска, что и старый.
Теперь – удаляем и пересоздаём раздел.
Важно: на вопрос:
Partition #1 contains a ext4 signature.
Do you want to remove the signature? [Y]es/[N]o: n
Отвечаем n – не удаляем.
[simterm]
root@monitonrig-dev:/home/admin# fdisk /dev/xvdb Welcome to fdisk (util-linux 2.29.2). 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/xvdb: 16 GiB, 17179869184 bytes, 33554432 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: 0x82283426 Device Boot Start End Sectors Size Id Type /dev/xvdb1 2048 16777215 16775168 8G 83 Linux Command (m for help): d Selected partition 1 Partition 1 has been deleted. Command (m for help): p Disk /dev/xvdb: 16 GiB, 17179869184 bytes, 33554432 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: 0x82283426 Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): Using default response p. Partition number (1-4, default 1): First sector (2048-33554431, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-33554431, default 33554431): Created a new partition 1 of type 'Linux' and of size 16 GiB. Partition #1 contains a ext4 signature. Do you want to remove the signature? [Y]es/[N]o: n Command (m for help): p Disk /dev/xvdb: 16 GiB, 17179869184 bytes, 33554432 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: 0x82283426 Device Boot Start End Sectors Size Id Type /dev/xvdb1 2048 33554431 33552384 16G 83 Linux 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).
[/simterm]
Пробуем перемонтировать раздел, что бы проверить до ребута:
[simterm]
root@monitonrig-dev:/home/admin# mount /dev/xvdb1 /data/ root@monitonrig-dev:/home/admin# ls -l /data/ total 24 drwxr-xr-x 4 grafana grafana 4096 Oct 18 14:01 grafana drwxr-xr-x 2 root root 16384 Jun 22 13:15 lost+found drwxr-xr-x 12 root root 4096 Oct 15 14:00 prometheus
[/simterm]
Проверяем /etc/fstab
– но у меня тут задано по имени раздела, так что разницы никакой, но в случае использования UUID – его надо будет обновить:
[simterm]
root@monitonrig-dev:/home/admin# blkid /dev/xvdb1 /dev/xvdb1: UUID="b9d96078-2fb2-4bf0-b388-e9cf0499d169" TYPE="ext4" root@monitonrig-dev:/home/admin# cat /etc/fstab | grep data /dev/xvdb1 /data ext4 defaults 0 0
[/simterm]
Бутаем машину:
[simterm]
root@monitonrig-dev:/home/admin# reboot
[/simterm]
После ребута ещё раз проверяем данные:
[simterm]
admin@monitonrig-dev:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk └─xvda1 202:1 0 8G 0 part / xvdb 202:16 0 16G 0 disk └─xvdb1 202:17 0 16G 0 part /data admin@monitonrig-dev:~$ ls -l /data/ total 24 drwxr-xr-x 4 grafana grafana 4096 Oct 18 14:23 grafana drwxr-xr-x 2 root root 16384 Jun 22 13:15 lost+found drwxr-xr-x 12 root root 4096 Oct 15 14:00 prometheus
[/simterm]
Всё на месте, идём дальше.
resize2fs
– увеличиваем файловую систему
Проверяем размер сейчас – те же 8 ГБ, которые были раньше:
[simterm]
admin@monitonrig-dev:~$ df -h /data/ Filesystem Size Used Avail Use% Mounted on /dev/xvdb1 7.9G 7.2G 231M 97% /data
[/simterm]
Запускаем resize2fs
:
[simterm]
root@monitonrig-dev:/home/admin# resize2fs /dev/xvdb1 resize2fs 1.43.4 (31-Jan-2017) Filesystem at /dev/xvdb1 is mounted on /data; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 2 The filesystem on /dev/xvdb1 is now 4194048 (4k) blocks long.
[/simterm]
Проверяем:
[simterm]
root@monitonrig-dev:/home/admin# df -h /data/ Filesystem Size Used Avail Use% Mounted on /dev/xvdb1 16G 7.7G 7.3G 52% /data
[/simterm]
Можно ещё раз бутнуть машину, и проверить данные:
[simterm]
admin@monitonrig-dev:~$ ls -l /data/ total 24 drwxr-xr-x 4 grafana grafana 4096 Oct 18 14:28 grafana drwxr-xr-x 2 root root 16384 Jun 22 13:15 lost+found drwxr-xr-x 12 root root 4096 Oct 15 14:00 prometheus
[/simterm]
Готово.