Изменение размера файловой системы на OpenELEC


11

Я пытался выполнить обновление, и ошибка сказала мне, что у меня недостаточно свободного места. Поэтому я подключился к Raspberry SSHи попросил использовать диск:

df -h

И я получил следующий результат:

Filesystem                Size      Used Available Use% Mounted on
devtmpfs                185.1M     87.5M     97.6M  47% /dev
/dev/mmcblk0p1          124.7M     96.2M     28.6M  77% /flash
/dev/mmcblk0p2          755.9M    739.4M         0 100% /storage
/dev/loop0               87.5M     87.5M         0 100% /
tmpfs                    74.6M         0     74.6M   0% /dev/shm
tmpfs                    10.0M    684.0K      9.3M   7% /var

Дело в том, что моя SD-карта - это 8-гигабайтная SD-карта, и ее размер больше похож на 1 Гб, поэтому мой вопрос: почему я не вижу все пространство?

Ответы:


13

С этого момента измените SSH на вашем Raspberry Pi с OpenELEC и выполните следующие действия.

  1. SSH в качестве root, по умолчанию вы в /storage; переключиться на корневой раздел:

    $ cd /
    
  2. Не допускайте перезапуска XBMC:

    $ touch /var/lock/xbmc.disabled
    
  3. Остановите XBMC, чтобы мы могли размонтировать /storage:

    $ killall -9 xbmc.bin
    $ umount /storage
    
  4. Проверьте крепления:

    $ mount
    $ parted /dev/mmcblk0
    
  5. В parted измените отображение секторов:

    $ unit s
    
  6. Показать разделы, запишите начальный сектор вашего раздела:

    $ p
    
  7. Удалить раздел:

    $ rm 2
    
  8. Пересоздайте его, используя тот же номер начального сектора и заканчивая "-1", чтобы использовать оставшееся пространство:

    $ mkpart primary 258048 -1
    $ quit parted
    $ e2fsck -f /dev/mmcblk0p2
    $ resize2fs /dev/mmcblk0p2
    $ mount /dev/mmcblk0p2 /storage
    $ df -h
    $ rm /var/lock/xbmc.disabled
    
  9. XBMC запустится снова самостоятельно.


Эта команда присутствует в дистрибутиве openelec?
darkheir

Извините, я всегда по умолчанию пользуюсь Распбианами, плохая привычка: P Я повторно ответил на вопрос, и теперь он должен работать.
syb0rg

Не работает Я не могу размонтировать, потому что connmand использует / storage, и его нельзя убить
Rob

Больше не работает! Смотрите ответ Марцина ниже.
Герман,

18

OpenELEC изменяет размеры / хранилище при первой загрузке после создания SD. Я искал сценарий, который делает это. Это https://github.com/OpenELEC/OpenELEC.tv/blob/master/packages/sysutils/busybox/scripts/fs-resize?source=c Первая строка кода проверяет наличие файла /storage/.please_resize_me.

Итак ... чтобы изменить размер хранилища для заполнения SD, вам необходимо:

touch /storage/.please_resize_me
reboot

Сделал это на моем OpenELEC 4.0.7 и работал нормально.


1
это должен быть принятый ответ
Крис

попробовал это на 5.0.3, и это работало как заявлено
LowvaPrg

Во второй строке скрипта написано, что он не может изменить размер, если существует папка с именем kodi, config или cache. Я получил все 3 из них ... Так как мне изменить размер сейчас?
Питер Рейвз

4

У меня была одна проблема (с версией 3.1.5): umount / storage => «umount: невозможно размонтировать / storage: устройство или ресурс занят»

fuser -m / storage => pid процесса, который блокировал монтирование. Я пытался убить его, но каждый раз новый процесс блокировал монтирование. Я должен убить + umount одновременно с каналом (в этом порядке): umount / storage | убить -9 пид

Это сделать работу!


Не работает, connmand автоматически перезапускается, прежде чем терминал сможет запуститьumount
Rob

2

В случае, если у кого-то есть эта проблема с новейшей версией:
syb0rg ответ отличный, но
$ touch /var/lock/xbmc.disabled
$ killall -9 xbmc.bin

больше не работает ! Используйте:
$ systemctl stop kodi.serviceвместо этого!


2

Openelec 5:

Проверьте, какой процесс блокирует раздел / хранилище для размонтирования

lsof | grep "/storage" (will return the PID of the process)

Проверьте, находятся ли эти процессы в дереве systemd и управляются ли systemd.

systemctl status покажет системное дерево.

В случае необходимости мне пришлось прекратить следующее:

systemctl stop cron.service
systemctl stop connman.service
systemctl stop kodi.service

Проверьте, fuser -m /storageесть ли еще процесс, блокирующий этот каталог. В случае возврата некоторого PID вы можете проверить, какой процесс связан с этим запущенным PID ps -ef | grep $PID.

Если вы видите что-то подобное, -shэто ваш ssh-сеанс, который находится в каталоге / storage. cd /идти в корень.

В противном случае вы можете убить этот процесс с помощью kill -9 $PID.

Теперь вы можете безопасно размонтировать каталог / storage через

umount /storage

Теперь вы можете изменить размер раздела (я сообщу снова, так как некоторые команды изменены)

  1. Убедитесь, к какому участнику / хранилищу относятся

    df -h

В большинстве случаев будет /dev/mmcblk0p2(это раздел 2)

  1. Open parted для устройства / dev / mmcblk0

    parted /dev/mmcblk0

  2. Показать разделы (теперь мы уже указали, какой раздел мы хотим изменить)

    p

  3. Изменить размер раздела (в этом случае раздел 2 до конца)

    resize 2 -1

    quit parted

  4. Изменить размер файловой системы

    e2fsck -f /dev/mmcblk0p2

    resize2fs /dev/mmcblk0p2

    mount /dev/mmcblk0p2 /storage

    df -h

Если вы хотите изменить размер / прошить - это совсем другая история.


1
Работал для меня, кроме parted /dev/mmcblk0был partedи resize 2 -1должен бытьresizepart 2 -1
ChrisGheen

Лучший ответ на данный момент. У меня больше ничего не получалось, кроме этого ответа.
Майкл Малура

1

Я решил проблему с "размонтированием хранилища /" убийства следующим образом:

fuser -m /storage

5161

kill -9 5161 && umount /storage

Это сработало для меня.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.