В данной статьи описан один из способов, как изменить/расширить размер корневого (системного или root) раздела на ОС Linux Ubuntu, Lubuntu, Raspbian, Debian и т.п. для использования не распределённой памяти на Raspberry Pi, Orange Pi, Banana Pi и т.п..
ВНИМАНИЕ!!! Лучше всего это сделать на «свежую» ОС, чтобы, в случае чего, не потерять данные или сделать резервную копию MicroSD карты памяти — это можно сделать с помощью утилиты Win32 Disk Imager, нажимая на кнопку Read.
Вывод таблицы разделов
Для начала выводим список разделов с помощью fdisk
, определим устройство, соответствующее SD.
1 |
sudo fdisk -l |
Получаем примерно такой результат:
1 2 3 4 5 6 7 8 9 10 11 |
root@OrangePI:~# sudo fdisk -l Disk /dev/mmcblk0: 7.4 GiB, 7948206080 bytes, 15523840 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: 0x0003c1e0 Device Boot Start End Sectors Size Id Type /dev/mmcblk0p1 40960 172031 131072 64M b W95 FAT32 /dev/mmcblk0p2 172032 6547455 6375424 3G 83 Linux |
В итоге мы имеем:
- Один диск (MicroSD накопитель) на 8 ГБ (
Disk /dev/mmcblk0: 7.4 GiB
); - И два раздела: один на 64 МБ (
/dev/mmcblk0p1 40960 172031 131072 64M b W95 FAT32
) и второй на 3 ГБ (/dev/mmcblk0p2 172032 6547455 6375424 3G 83 Linux
) — на этом разделе и установлена система.
Как изменить размер корневого раздела
Теперь переходим к расширению размера корневого раздела.
- Откроем инструмент разметки fdisk с устройством, соответствующим SD (mmcblk0):
1sudo fdisk /dev/mmcblk0
результат:
12345678root@OrangePI:~# sudo fdisk /dev/mmcblk0Welcome to fdisk (util-linux 2.27.1).Changes will remain in memory only, until you decide to write them.Be careful before using the write command.Command (m for help): - Ещё раз выводим список разделов, вводим
p
:
1p
результат:
12345678910111213Command (m for help): pDisk /dev/mmcblk0: 7.4 GiB, 7948206080 bytes, 15523840 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0x0003c1e0Device Boot Start End Sectors Size Id Type/dev/mmcblk0p1 40960 172031 131072 64M b W95 FAT32/dev/mmcblk0p2 172032 6547455 6375424 3G 83 LinuxCommand (m for help):
Нам нужно сохранить сектор с которого партиция (раздел) начинается, в моём случае это 172032, он нам понадобится позже.
- Удаляем раздел, в котором находится файловая система (в этом случае есть только один, mmcblk0p1). Нажмите
d
, чтобы удалить раздел, потом введите2
, чтобы выбрать второй раздел:
1d
результат:
123456Command (m for help): dPartition number (1,2, default 2): 2Partition 2 has been deleted.Command (m for help):
Раздел 2 был удален. - Нажмите
n
, чтобы создать новый раздел:
1n
результат:
12345Command (m for help): nPartition typep primary (1 primary, 0 extended, 3 free)e extended (container for logical partitions)Select (default p): - Введите
p
, чтобы выбрать основной тип раздела:
1p
результат:
12Select (default p): pPartition number (2-4, default 2): - Нажимаем «
ENTER
» или2
, чтобы принять 2 в качестве номера раздела по умолчанию:
12
результат:
12Partition number (2-4, default 2): 2First sector (2048-15523839, default 2048): - Вводим номер сектора с которого партиция (раздел) начинается, в моём случае — это 172032, номер о котором было написано выше (пункт второй):
ВНИМАНИЕ!!! Если промахнёмся тут — значит всё, мы больше не сможем запустить ОС и прийдётся переустановить её.
1172032результат:
12First sector (2048-15523839, default 2048): 172032Last sector, +sectors or +size{K,M,G,T,P} (172032-15523839, default 15523839): - Теперь нужно вводить номер сектора которым заканчивается раздел, оставляем параметр по умолчанию, для этого нажимаем «ENTER», таким образом будет выбрано всё свободное пространство. Результат:
12345Last sector, +sectors or +size{K,M,G,T,P} (172032-15523839, default 15523839):Created a new partition 2 of type 'Linux' and of size 7.3 GiB.Command (m for help):
- Нажмите
w
, чтобы записать новую таблицу разделов:1wрезультат:
12345678Command (m for help): wThe partition table has been altered.Calling ioctl() to re-read partition table.Re-reading the partition table failed.: Device or resource busyThe 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).root@OrangePI:~#Он предупредит, что изменение таблицы невозможно (система активна).
- Перезагрузите систему, чтобы заставить ядро распознать новую таблицу разделов.
1sudo reboot
- Теперь нужно изменить размер раздела, содержащего файловую систему (mmcblk0p1), на новый размер (максимальный размер SD):
1sudo resize2fs /dev/mmcblk0p2
результат:
12345root@OrangePI:~# sudo resize2fs /dev/mmcblk0p2resize2fs 1.42.13 (17-May-2015)Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing requiredold_desc_blocks = 1, new_desc_blocks = 1The filesystem on /dev/mmcblk0p2 is now 1918976 (4k) blocks long. - Чтобы проверить, изменился ли размер корневого раздела, ещё раз выводим список разделов:
1sudo fdisk -l
результат:
123456789101112root@OrangePI:~# sudo fdisk -lDisk /dev/mmcblk0: 7.4 GiB, 7948206080 bytes, 15523840 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0x0003c1e0Device Boot Start End Sectors Size Id Type/dev/mmcblk0p1 40960 172031 131072 64M b W95 FAT32/dev/mmcblk0p2 172032 15523839 15351808 7.3G 83 Linuxroot@OrangePI:~#Как мы видим теперь, размер корневого раздела почти 8 ГБ и мы можем использовать всю память.
Материалы
Banana Pi: resizing the SD card root partition on Lubuntu
Fdisk — wikipedia
Хорошая заметка, спасибо. Исследовал свою SD и обнаружил странное. По команде fdisk -l разглядел кроме 15 дисков /dev/ram1 … /dev/ram15. По 4 mb каждый. Предположительно — виртуальные диски !? Очень интересно. Среди смонтированных ( df) их нет.
Можете прокомментировать?
Я так полагаю, что у вас Raspbian, потому что я использую Ubuntu и в нём отсутствуют?
По поводу этих 16 разделов, это совершенно нормально в системах Linux. Это своего рода подготовительное пространство в случае, когда потребуются RAM. Каждый из них имеет размер, в зависимости от системы, от 4 до 64 МБ, что является очень низким значением. При необходимости размер будет увеличен автоматически.
https://askubuntu.com/questions/703576/fdisk-l-shows-16-ram-disks-dev-ram0-ram15
Спасибо.
Однако, для чего 15 дисков надо — не понятно. Я в качестве RAM диска использую /dev/shm. Может быть стоит использовать эти странные /dev/ram1 …?
Еще вопрос — и как уживается rapberry pi с ubuntu? Зачем? Какие преимущества вас привлекли? В и-нете на этот счет противоречиво
Почему именно столько — я не знаю, наверное создатели нашли «золотую середину» и это оптимальное количество с оптимальным размером. А использовать их — не думаю, что это хорошая идея, лучше оставить так как есть, иобо 1 ГБ оперативки уже маловато.
На второй вопрос я тоже не отвечу, мне просто удобно использовать Ubuntu, так как я уже привык (это первая моя ОС линукс), Raspbian я установил лишь несколько раз и не сдружились как-то 🙂 Если я не ошибаюсь, Raspbian быстрее и потребляет меньше ресурсов чем Ubuntu. Но тут опять — всё зависит от поставленных задач: для мультимедиа подойдёт Ubuntu, для работы — Raspbian (но это не точно, для rapberry pi возможно и обратное, у меня Orange Pi PC и Banana Pi M3).
Где точно знают, подойдет мне УКП-66 или нет?
Автор сей статьи огромное СПАСИБО это очень нужная информация, я сделал в точности по тутор алу и всё ваышло, до этого находил инструкции и что-то не работало, чтото выдавало ошибку. Ещё раз спасибо большое!!!)