Как сделать ресайз rootfs
Авторы linux-сборок для odroid урезают rootfs чтобы img-образы системы меньше весили. Из-за чего после очередного обновления дистрибутива на корневом разделе закончилось свободное место. Научимся изменять размеры корневой файловой системы так чтобы она занимала всю память флешки.
Посмотрим таблицу разделов:
root@Debian-Jessie:~# fdisk -l
Disk /dev/mmcblk0: 1,9 GiB, 1967128576 bytes, 3842048 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: 0x0008bb42
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 4096 135167 131072 64M 83 Linux
/dev/mmcblk0p2 135168 2899967 2764800 1,3G 83 Linux
Видим что у нас в odroid вставлена 2-гигабайтная microSD, на которой созданы 2 раздела. Теперь посмотрим сколько места занимают наши разделы и сколько свободного места на microSD ими не занято.
root@Debian-Jessie:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mmcblk0p2 1,3G 923M 308M 76% /
udev 10M 0 10M 0% /dev
tmpfs 203M 240K 203M 1% /run
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 405M 0 405M 0% /run/shm
/dev/mmcblk0p1 64M 13M 51M 21% /boot
Размер раздела с корневой файловой системой (rootfs) составляет 1.3 GB. Каталог /boot находится на отдельном разделе размером в 64 MB. И почти 500 мегабайт пропадает зря. Исправим это:
root@Debian-Jessie:~# fdisk /dev/mmcblk0
Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): d
Partition number (1,2, default 2): 2
Partition 2 has been deleted.
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 (2048-3842047, default 2048): 135168
Last sector, +sectors or +size{K,M,G,T,P} (135168-3842047, default 3842047):
Created a new partition 2 of type 'Linux' and of size 1,8 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Устройство или ресурс занято
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).
Удаляем раздел с rootfs и на его месте создаем новый раздел первый сектор которого совпадает с первым сектором удаленного раздела. Последний сектор оставляем по умолчанию (он совпадет с последним сектором на microSD). Сохраняем изменения и перезапускаем одройд. С помощью fdisk мы увеличили размер раздела, теперь расширим файловую систему:
root@Debian-Jessie:~# resize2fs /dev/mmcblk0p2
resize2fs 1.42.12 (29-Aug-2014)
Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/mmcblk0p2 is now 463360 (4k) blocks long.
Подождем некоторое время пока завершится процесс и посмотрим на результат:
root@Debian-Jessie:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mmcblk0p2 1,8G 919M 748M 56% /
udev 10M 0 10M 0% /dev
tmpfs 203M 240K 203M 1% /run
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 405M 0 405M 0% /run/shm
/dev/mmcblk0p1 64M 13M 51M 21% /boot
Динамика положительная :). Ссылки:
- Extend root filesystem using CLI parted & resize2fs
- How can I resize my / (root) partition?
- Expanding File System Partition On A microSD