26/4/2013

Как сделать ресайз 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

Динамика положительная :). Ссылки:


odroid linux debian


Previous post
Новые мозги для старого друга Есть в моем домашнем технопарке зверь пароды Buffalo из семейства сетевых накопителей - Buffalo Link station LS-QL. Купил я его по дешевке у