Raspberry Pi не хватает места на диске


9

Я смехотворно новичок в rpi, и я следовал многим учебникам, чтобы попытаться заставить распознавание лиц работать на моем пи. Я исчерпал дисковое пространство, и кажется, что после множества тонн уроков, я загрузился на мусор.

В другом обсуждении разделов я увидел, что могу запустить команду, чтобы увидеть мои. Вот что это показывает.

pi@raspberrypi ~ $ sudo fdisk -l

Disk /dev/mmcblk0: 7969 MB, 7969177600 bytes
4 heads, 16 sectors/track, 243200 cylinders, total 15564800 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
Disk identifier: 0x000c27cb

    Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            8192     1685546      838677+   e  W95 FAT16 (LBA)
/dev/mmcblk0p2         1687552    15499263     6905856   85  Linux extended
/dev/mmcblk0p3        15499264    15564799       32768   83  Linux
/dev/mmcblk0p5         1695744     1818623       61440    c  W95 FAT32 (LBA)
/dev/mmcblk0p6         1826816    15499263     6836224   83  Linux

Я как-то получил 5 разделов? Как я могу освободить место?

РЕДАКТИРОВАТЬ: вывод df -h

pi@raspberrypi ~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       6.3G  6.0G   25M 100% /
devtmpfs        428M     0  428M   0% /dev
tmpfs            87M  336K   86M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           173M     0  173M   0% /run/shm
/dev/mmcblk0p5   60M   20M   41M  33% /boot
/dev/mmcblk0p3   27M  397K   25M   2% /media/SETTINGS

Насколько велика SD-карта? Какой вывод у df -h? Вы запустили sudo raspi-config и расширили корневую файловую систему (вариант 1 - я считаю)?
Стив Робиллард

8гиг карта, я ее расширил.
Автопогрузчик

это "просто" распбиан или нубс? Я не знаю, для чего этот второй раздел FAT.
Ганима

ЭТО НУБС, да. Нужно ли начинать все сначала? Стоит ли переустанавливать без NOOBS?
Автопогрузчик

1
du / |sort -nСначала проверьте , что занимает место, например, журналы (если logrotate работает неправильно) или кэш менеджера пакетов. Командная строка Стива с тем -shлучше, чтобы сделать это.
Ганима

Ответы:


10

Вот что работает для меня. Вы можете попробовать этот набор команд для очистки ненужных файлов пакета:

sudo apt-get autoremove
sudo apt-get clean

Чудо не сработает, но иногда освобождает пару сотен МБ.

Если вы хотите запустить только raspbian, у меня была большая удача с Jessie Lite и добавление пакетов , как мне нужно. Вот пример на 8 ГБ USB-карте:

Filesystem      Size  Used Avail Use% Mounted on
/dev/root       7.8G  1.1G  6.4G  15% /
devtmpfs        224M     0  224M   0% /dev
tmpfs           229M     0  229M   0% /dev/shm
tmpfs           229M  4.6M  224M   2% /run
tmpfs           5.3M  4.1k  5.3M   1% /run/lock
tmpfs           229M     0  229M   0% /sys/fs/cgroup
/dev/mmcblk0p1   63M   21M   43M  34% /boot

Это кажется полезным. Я попробую это утром. Я сделал "чистый", но не автоудаление. Спасибо за предложение.
Автопогрузчик

Я также посмотрю на Джесси Лайт, но это может отодвинуть меня на некоторое время. Хотелось бы, чтобы был способ просто загрузить снимки ОС с тем, что мне нужно :)
Forklift

На самом деле, «apt-get autoremove» удаляет только устаревшие файлы пакета, тогда как «apt-get clean» удаляет их все. Если вы планируете переустановить некоторые пакеты, первое действие может быть целесообразным, чтобы сэкономить время и энергию.
derjoachim

7

Если вы установили Jessie на 8 ГБ, посмотрите на приложения, которые вы не используете. Я удалил Mathematica и получил более 600 МБ с

sudo apt-get purge wolfram-engine

И другие пакеты, которые занимают место: lifehacker.com/…
nsof

3

Другим решением будет использование USB-накопителя большего размера (32 ГБ) или SD-карты (с устройством чтения SD-карт USB) и перенос корневой файловой системы на новое устройство. См. Расширение размера корня / использование внешнего жесткого диска .

Если вы хотите начать все заново, не теряя того, что у вас есть на SD-карте большего размера , вот способ установить загрузочную ОС Raspbian на новую SD-карту. После установки замените новую SD-карту своей загрузочной SD-картой, и у вас будет чистая система с доступом ко всей вашей старой информации.

Install Raspbian on the Raspberry Pi from Linux
  1. НАСТРОЙКА - Требования - это система Linux (типа), способная подключаться к Интернету, записывать на карту micro SD (8G или более), программу форматирования диска ( fdisk), wgetкоторая подойдет funzip( unzipтребуется локальное хранилище) и Raspberry. Пи. Когда SD-карта подключена к системе Linux в устройстве чтения карт или в устройстве чтения карт USB, определите адрес устройства с помощью lsblkили других команд. В моем случае я буду использовать / dev / sdb. Проверьте, подключено ли устройство с помощью dfкоманды, и если да, размонтируйте с помощью umount /dev/sdb?команды.

    pi@RPi3:~ $ lsblk
    NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sdb           8:16   1  29.8G  0 disk
    └─sdb1        8:17   1  29.8G  0 part
    sda           8:0    0 931.5G  0 disk
    ├─sda2        8:2    0 931.4G  0 part /
    └─sda1        8:1    0   120M  0 part /media/pi/boot1
    mmcblk0     179:0    0  29.7G  0 disk
    ├─mmcblk0p2 179:2    0  29.7G  0 part
    └─mmcblk0p1 179:1    0    63M  0 part /boot
    
  2. ФОРМАТ. Отформатируйте SD-карту в один раздел, введите fat32 [ sudo fdisk /dev/sdb, subcmd p, (если не тип метки диска: dos, subcmd o), subcmd d, чтобы удалить старые разделы, subcmd n, чтобы создать новый раздел (примите значения по умолчанию, основной p, номер 1, первый, последний), subcmd t для типа (номер 1, код c) и subcmd w для записи].

    pi@RPi3:~ $ sudo fdisk -l /dev/sdb
    
    Device     Boot Start      End  Sectors  Size Id Type
    /dev/sdb1        8192 62552063 62543872 29.8G  c W95 FAT32 (LBA)
    
  3. ЗАГРУЗКА, UNZIP и ЗАПИСЬ - можно загрузить образ Raspbian, распаковать его и установить на SD-карту сразу. Команда unzipбудет работать, если образ Raspbian сначала загружен, а затем разархивирован ( unzipне будет работать с вводом по трубопроводу, funzipбудет). Изображение более 1,5 ГБ, разархивировано более 4 ГБ, его загрузка займет некоторое время.

    pi@RPi3:~ $ wget -qO - https://downloads.raspberrypi.org/raspbian_latest | funzip | sudo dd bs=4M of=/dev/sdb
    
  4. VERIFY - образ теперь установлен с двумя разделами (загрузочный и корневой). Раздел Linux очень маленький и должен быть расширен. (Можно добавить дополнительные разделы, если они необходимы, перед расширением.) Перед расширением раздела Linux запустите NOTE / dev / sdb2 Start Sector (т.е. 137216 в моем случае).

    pi@RPi3:~ $ echo -e "p\nq" | sudo fdisk /dev/sdb | egrep "Dev|^/"
    Device     Boot  Start     End Sectors Size Id Type
    /dev/sdb1         8192  137215  129024  63M  c W95 FAT32 (LBA)
    /dev/sdb2       137216 8581119 8443904   4G 83 Linux
    
  5. EXPAND PARTITION - fdiskэту команду можно использовать для расширения раздела Linux. Сначала удалите Linux-раздел subcmd d, по умолчанию 2, добавьте его обратно subcmd n, по умолчанию p, default 2,
    используя начальный сектор (как отмечено в шаге 3), возьмите значение по умолчанию для конечного сектора и запишите изменения subcmd w, если счастливый (или выйти без записи изменений с помощью subcmd q). Если начальный сектор такой же, как и раньше, данные будут в курсе.

    pi@RPi3:~ $ echo -e "d\n2\nn\np\n2\n137216\n\nw" | sudo fdisk /dev/sdb
    
  6. НАПИСАТЬ ЭТИКЕТКУ, ПРОВЕРИТЬ FILESYSTEM и РАСШИРИТЬ FILESYSTEM -

    pi@RPi3:~ $ sudo e2label /dev/sdb2 root
    pi@RPi3:~ $ sudo e2fsck -f /dev/sdb2
    pi@RPi3:~ $ sudo resize2fs /dev/sdb2
    
  7. ОПЦИИ - Возможно смонтировать разделы SD-карты и выполнить конфигурацию файлов, что выходит за рамки этого. Перед syncизвлечением SD-карты из работающей системы убедитесь, что данные установлены и размонтированы, если они смонтированы.

  8. BOOT and CONFIG - Установите SD-карту в Raspberry Pi и включите питание. Пи должен загрузиться. Настройте Pi со ссылкой на https://www.raspberrypi.org/documentation/configuration/ .


1

Возможно, вы не хотите начинать все сначала. Если вам не хватает места после очистки нескольких загрузок и неиспользованного исходного кода, перейдите на карту памяти большего размера.

Вы должны иметь возможность установить дополнительную RPI карту на вашем RPI, либо с носителем для «флеш-накопителя» с гнездом SD или аналогичным.

Ваша установка основана на NOOBS, поэтому вы закончили с несколькими разделами, которые больше не используются, однако количество потерянного пространства не так уж важно, устранение может быть болезненным. Некоторые открытые пространства созданы для выравнивания границ.

Создайте клон на SD-карте большего размера (16 ГБ или более).

С помощью Win32DiskImager создайте резервную копию образа с помощью кнопки «read» в имени файла по своему вкусу, затем используйте «write», чтобы скопировать образ на новую SD-карту.

Смонтируйте новую карту и загрузитесь. На этом этапе вы должны запустить клон с тем же оригинальным пустым пространством.

Используя fdisk'p', выведите текущий раздел. Скопируйте и вставьте эту информацию туда, где вы можете использовать в качестве ссылки. Будет выглядеть следующим образом (ваш будет другим):

Device         Boot   Start      End  Sectors   Size Id Type
/dev/mmcblk0p1         8192  1675781  1667590 814.3M  e W95 FAT16 (LBA)
/dev/mmcblk0p2      1679360 30703615 29024256  13.9G 85 Linux extended
/dev/mmcblk0p5      1687552  1810431   122880    60M  c W95 FAT32 (LBA)
/dev/mmcblk0p6      1818624 30703615 28884992  13.8G 83 Linux

Удалите / dev / mmcblk0p2 с помощью «d», а затем введите «2», заново создайте раздел. «секрет» заключается в использовании идентичного «начального» сектора.

Создайте расширенный раздел Linux с помощью 'n', выберите расширенный, введите первый сектор (в моем примере 1679360) и позвольте fdiskвыбрать последний сектор («по умолчанию»), затем введите «t», чтобы ввести раздел «тип» из «раздела» '2, должно быть типа' 85 '(расширенная версия Linux).

Теперь создайте логические разделы, которые находятся внутри только что созданного расширенного раздела.

Используйте «n» для нового, введите «l» для «логического» и «fdisk» назначит следующий доступный слот, первый сектор должен быть таким же, как прежде, на моем примере 1687552, последний сектор, используйте оригинальный число, на моем образце 122880, введите тип раздела 't' как 'c' (ms-dos).

Повторите процесс для других ваших разделов, но на последнем (p6) позвольте 'fdisk' выбрать ваш 'последний сектор'.

Проверьте ваши записи с помощью «p» и убедитесь, что изменился только последний сектор в последнем разделе и ничего больше, включая тип раздела или «id».

Теперь зафиксируйте ваши изменения с помощью 'w', чтобы написать новую таблицу разделов.

Перезагрузитесь и сообщите Linux ваш новый размер диска с помощью:

resize2fs /dev/mmcblk0p6

наслаждаться,


Почему не только ddвся SD-карта, а затем изменить размер разделов? Дублирование структуры хорошего SD SD нетривиально, в частности, обеспечение оптимальных границ для разделов, которые не соответствуют нормальным fdiskзначениям по умолчанию.
Milliways

Проблема в том, чтобы изменить расширенные разделы, по неизвестной мне причине, при смене марки SD, я не смог воссоздать измененные разделы в точном начальном секторе. Создание новых разделов, вероятно, не будет граничным, но проблема не в физическом состоянии, а в физическом. Самый простой способ - использовать Win32DiskImager(или подобный): клонировать SD-карту, используя fdisk удаление и воссоздание на месте, в данном случае mmcblk0p6. а затемresize2fs
FCC

Чтобы изменить разделы, сначала нужно изменить расширенный раздел, затем вы можете расширить активный раздел. Причина границы заключается в том, что когда SD требуется восстановить пространство, оно делает это на границе стирания блока - обычно 4M. Если границы разделов смещены, вам может понадобиться 2 стирания блока. Для SD-карты вы должны указать размер диска в блоках, а не секторах.
Milliways

Это будет иметь больше смысла, сэкономит время и будет менее подвержено ошибкам, если вместо того, чтобы использовать ddдля копирования разделы, которые вы только что отформатировали mkfs.ext4, а затем скопировать в содержимое rsync. Примечание выше не ясно, что вам нужно сначала создать большие разделы, если вы хотите использовать resizefsв файловой системе внутри раздела .
Златовласка

1

Убедитесь, что вы расширили свою файловую систему, чтобы использовать все доступное пространство.

Откройте терминал и запустите sudo raspi-config -> Expand Filesystem

Если это не проблема, тогда вам просто нужно перейти на больший диск. Вместо того, чтобы начинать заново (эти инструкции предполагают наличие Mac, но в остальном они очень похожи):

Резервное копирование диска:

  • Найдите имя диска: вставьте SD-карту в компьютер и запустите diskutil list(вероятно disk2... не используйте disk1!!!)
  • Резервное изображение sudo dd bs=1m if=/dev/disk2 of=/path/to/your/backup.img. Обратите внимание , это займет много времени. Чтобы увидеть прогресс нажмитеCTRL-T
  • Вставьте новый диск и diskutil list
  • Записать на новый диск: sudo dd bs=1m if=/path/to/your/backup.img of=/dev/disk2
  • Разверните файловую систему: вставьте в Pi и загрузитесь, sudo raspi-config -> Expand Filesystem

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