Тема: Не удалось создать «/var/lib/dpkg/updates/tmp.i»: На устройстве не осталось своб (Прочитано 3784 раз)
0 Пользователей и 1 Гость просматривают эту тему.
Недостаточно места на / tmp
Я не могу запустить менеджер обновлений, так как получаю сообщение об ошибке, говорящее о том, что в /tmp
каталоге недостаточно свободного места . Я практически вычистил tmp
каталог, но ошибка не исчезла.
/dev/loop0 13G 11G 952M 92% /
udev 2.0G 4.0K 2.0G 1% /dev
tmpfs 785M 920K 784M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 2.0G 584K 2.0G 1% /run/shm
/dev/sda6 20G 14G 6.4G 68% /host
overflow 1.0M 16K 1008K 2% /tmp
Что, похоже, произошло:
Ваш /
был полон, затем Ubuntu создал новый раздел в оперативной памяти для временного использования.
Теперь этот раздел размером 1 МБ недостаточно велик для работы.
Что мы можем сделать:
1) увеличить размер этого раздела только для обновления
2) фактически удалите достаточно файлов на HD, чтобы этот раздел больше не нужен.
Чтобы сделать 1:
открыть терминал и запустить
sudo umount /tmp
sudo mount -t tmpfs -o size=1048576,mode=1777 overflow /tmp
Это должно дать вам 1 МБ раздел (так же, как тот, который у вас был = P).
Теперь, чтобы увеличить размер, вы увеличиваете size
в этой строке, так что, с size=10485760
, вы получите 10 МБ.
Ваша цель — найти число, достаточное для работы, но оставляющее достаточно оперативной памяти.
Чтобы сделать 2:
Откройте терминал и запустить sudo umount /tmp
или, если это не удается, sudo umount -l /tmp
.
Удалите файлы внутри /tmp
( теперь /tmp
это фактически ваш HD, а не виртуальный RAM-диск), удалите неиспользуемые пакеты, удалите файлы в вашей домашней папке и так далее.
tmpfs /tmp tmpfs defaults,size=10G,mode=1777 0 0
Перезагрузитесь, и вы получите 10 ГБ для вашей папки / tmp.
sudo mount -o remount,size=1048576 /tmp
изменяет tmpfs
размер без необходимости размонтировать раздел и, следовательно, не мешать работе приложений.
Откройте файл / etc / mtab в вашем любимом текстовом редакторе с правами суперпользователя (например, «sudo vim / etc / mtab»). И увеличьте объем памяти, выделенной для вашей папки / tmp. После перезапуска Ubuntu увеличит пространство до / tmp и исправит эту проблему.
Похоже, ваш / раздел заполнен.
Если у вас есть место на других разделах на вашем диске, вы можете использовать это пространство, чтобы увеличить размер вашего / раздела. Для этого есть инструменты, например, gparted.
sudo apt-get install gparted
При использовании панели вкладок я получаю эту ошибку:
bash: невозможно создать временный файл для here-документа: на устройстве не осталось места «
Я провел некоторое исследование, и многие люди говорят о файле / tmp, который может быть переполнен. Когда я выполняю, df -h
я получаю:
Похоже, что каталог / dev / data собирается взорваться, однако, если я советую:
Кажется, это пусто.
Xsession: предупреждение: невозможно записать в / tmp: Xsession может завершиться с ошибкой
Ваша корневая файловая система заполнена, и, следовательно, ваш временный каталог (/ tmp и / var / tmp в этом отношении) также заполнен. Многие сценарии и программы требуют места для рабочих файлов, даже для блокировки файлов. Когда / tmp не переписывается плохие вещи случаются.
Вам нужно выяснить, как вы заполнили файловую систему. Обычно это происходит в / var / log (проверьте, что вы зацикливаете файлы журнала). Или / tmp может быть полным. Однако существует множество способов заполнить диск.
Возможно, вы захотите переразбить, чтобы получить / tmp свой собственный раздел (это старый способ школы, но если у вас достаточно диска, это нормально), или отобразить его в памяти (что сделает его очень быстрым, но начать вызывает проблемы с обменом, если вы переусердствуете с временными файлами).
Возможно, вы также потеряли доступ для записи в /tmp/
каталог.
Это должно выглядеть так:
Вы можете исправить разрешения следующим образом:
Если кто-то попадет сюда с этой ошибкой, когда его диск не заполнен, обязательно проверьте не только, df
но и df -i
. В файловой системе есть фиксированное число inode, и каждый файл нуждается в нем. Если у вас есть только тонны маленьких файлов, ваша файловая система очень легко заполняется этими маленькими файлами, пока на диске остается достаточно места при запуске df
.
Я получаю ошибку, потом я увидел
Я смог это подтвердить,
Самый быстрый способ найти ваши папки, которые переполнены, — это сузить размер файла папки по уровням от корневой папки. Вы начинаете с корневой папки:
Затем — ЛИБО вы увеличиваете глубину, то есть уровни ниже:
ИЛИ — быстрее — вы смотрите, какая папка израсходовала больше всего дискового пространства, и делайте то же самое с этой папкой:
Как только вы нашли это, просто удалите это:
path to overfull
Это потому, что места на диске недостаточно, вам нужно очистить большие файлы или очистить процесс, который занимает место:
df -h
Просмотр места на жестком дискеdu -sh /*
Посмотрите, какой каталог самый большой, шаг за шагом, чтобы найти большие файлыdu -h --max-depth=1
найти самый большой файл
- Способ 1: Настройка прав доступа
- Способ 2: Исправление ошибок через GParted
- Способ 3: Исправление поврежденных блоков
- Способ 4: Форматирование накопителя
- Вопросы и ответы
Способ 1: Настройка прав доступа
Первый способ исправления ошибки «Файловая система доступна только для чтения» в Linux заключается в проверке прав доступа. Иногда пользователь случайно или намерено устанавливает ограничения, которые распространяются и на других юзеров. Для начала предлагаем проверить атрибуты, а затем внести изменения, если это требуется.
После активации команды вы будете уведомлены, что все изменения успешно вступили в силу. Следом рекомендуется перезагрузить ПК и можно приступать к тестированию. Если же при использовании команды ls было обнаружено, что для раздела или носителя установлены все требуемые атрибуты, следует перейти другим решениям возникшей проблемы.
Способ 2: Исправление ошибок через GParted
GParted — одна из самых известных утилит для управления дисками в Linux со встроенным графическим интерфейсом. Ее особенность заключается в наличии множества вспомогательных функций, связанных в том числе и с решением различных ошибок носителей.
Если какие-то неполадки будут найдены и исправлены, вы получите соответствующее уведомление. По окончании проверки следует перезагрузить ПК, чтобы при начале следующего сеанса сразу проверить эффективность выполненных действий. Если они не принесли никакого результата, переходите далее.
Способ 3: Исправление поврежденных блоков
Иногда ошибка со сбойным режимом чтения возникает вследствие повреждения секторов жесткого диска. Существуют специальные утилиты, позволяющие распределить проблемное пространство или исправить его, если это является возможным. В Linux имеется встроенная команда, отвечающая за выполнение этой операции. Мы и предлагаем воспользоваться ей в том случае, если приведенные выше рекомендации не принесли никакого результата.
Все изменения будут применены сразу же, однако, как обычно, рекомендуется создать новый сеанс операционной системы, чтобы проверить, была ли решена возникшая неполадка с ошибкой «Файловая система доступна только для чтения».
Способ 4: Форматирование накопителя
Последний метод, о котором мы хотим рассказать в рамках сегодняшней статьи, является самым радикальным, поскольку подразумевает полное форматирование накопителя, после будет восстановлено состояние файловой системы. Такой вариант подойдет только в той ситуации, если на диске нет важных файлов и все содержимое можно удалить. Более детальные инструкции по данной теме ищите в отдельном материале на нашем сайте, воспользовавшись указанной далее ссылкой.
Подробнее: Форматирование диска в Linux
Сегодня мы разобрали четыре метода исправления неполадки «Файловая система доступна только для чтения». Осталось найти подходящий только путем перебора, выполняя по порядку все приведенные инструкции. В большинстве случаев хотя бы один из них оказывается действенным и позволяет полностью устранить рассмотренную ошибку.
df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 7331840 389632 6942208 6% /
tmpfs 2039797 1 2039796 1% /dev/shm
/dev/sdb1 91570176 10196052 81374124 12% /home
rayden8
()
невозможно записать целевой файл «/sh://192.168.0.~vm.img»
На устройстве не осталось свободного места (28)
rayden8
()
file -s /dev/sdb1
/dev/sdb1: Linux rev 1.0 ext4 filesystem data (needs journal recovery) (extents) (large files) (huge files)
rayden8
()
google знает про квоты
второй вариант: размонтиовать /home и fsck -f /dev/sdb1 — возможно FS повреждена
futurama
()
другие то файлы копирует. причем гораздо большего размера в общем. По 10 гиг 4 дает закинуть.
rayden8
()
невозможно записать целевой файл «/sh://192.168.0.~vm.img»
как вариант: то чем ты копируешь — говно и оно копирует через промежуточное $TMP например через tmpfs, а там места мало.
futurama
()
Наверняка отключена фрагментация и не осталось свободного места одним куском, чтобы вместить архив.
dexitry
()
Блэк, это виртуальная машина. размер 30 гиг.
rayden8
()
[root@newserver ~]# fsck -n /dev/sda1
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
Warning! /dev/sda1 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/sda1 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Deleted inode 4195229 has zero dtime. Fix? no
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences: -(16836684--16836687)
Fix? no
Free blocks count wrong (24753863, counted=24730868).
Fix? no
Inode bitmap differences: -4195229
Fix? no
Free inodes count wrong (6950293, counted=6942189).
Fix? no
/dev/sda1: ********** WARNING: Filesystem still has errors **********
/dev/sda1: 381547/7331840 files (0.1% non-contiguous), 4542265/29296128 blocks
rayden8
()
Как то обойти tmpfs можно?
Да, копировать напрямую, не использовать файл-менеджер
futurama
()
Спасибо. так скопировалось.
rayden8
()
#
Сообщения:
373
Участник с: 18 марта 2012
/usr/bin/winetricks: line 1733: echo: ошибка записи: На устройстве кончилось место /usr/bin/winetricks: line 1733: echo: ошибка записи: На устройстве кончилось место /usr/bin/winetricks: line 1733: echo: ошибка записи: На устройстве кончилось место ...
#
Участник с: 08 января 2011
#
Сообщения:
373
Участник с: 18 марта 2012
[[email protected] ~]$ df -h /tmp
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
tmpfs 2,0G 20K 2,0G 1% /tmp
#
Участник с: 08 января 2011
У меня такое чувство, что в теме явно не хватает постов, чтобы свести концы с концами…
wa1demar
df -h
#
Сообщения:
373
Участник с: 18 марта 2012
cat: ошибка записи: На устройстве кончилось место bsdtar: Write error ==> ОШИБКА: Не удалось создать файл пакета. ==> ERROR: Makepkg was unable to build hon. ==> Restart building hon ? [y/N] ==> ---------------------------- ==> ^C [[email protected] ~]$ df -h Файловая система Размер Использовано Дост Использовано% Cмонтировано в rootfs 20G 6,2G 13G 33% / /dev 1,9G 0 1,9G 0% /dev run 2,0G 336K 2,0G 1% /run /dev/sda1 20G 6,2G 13G 33% / shm 2,0G 9,1M 2,0G 1% /dev/shm tmpfs 2,0G 2,0G 8,0K 100% /tmp /dev/sda2 14G 3,0G 11G 23% /var /dev/sda5 60M 18M 39M 32% /boot /dev/sda6 38G 11G 25G 30% /home [[email protected] ~]$
#
Темы:
4
Сообщения:
232
Участник с: 10 февраля 2012
- Закоментить в /etc/fstab строчку
tmpfs /tmp tmpfs nodev,nosuid 0 0
и перезагрузиться. Тогда /tmp будет не в ram, а на физическом диске. Скорость доступа к временным файлам снизится.
- Расширить tmpfs отданный под /tmp
mount /tmp tmpfs -O nodev,nosuid,size=3g,remount
Выделит под /tmp 3 гига. Вариант подойдёт, если оперативы достаточно.
- Узнать как называется папка в /tmp с которой работает winetricks (куда он своё временное брахло скидывает). Если он гадит прямо в /tmp — сложнее реализовать будет. Допустим складирует он в /tmp/winetricks тогда делаем так:
rm -rf /tmp/winetricks && mkdir /home/username/winetricktmp && ln -s /home/username/winetrickstmp /tmp/winetrinks
username заменяем на имя своего пользователя, /tmp/winetrinks — на путь до папки вайнтрикса.
Т.е. удаляем из /tmp старую папку, создаём директорию на домашнем разделе (или на любом другом, на котором достаточно места и есть права на запись) и создаём линк от этой папки в /tmp. Таким образом winetricks будет складировать свои временные файлы не в tmpfs, а на физический диск, что несколько уменьшит скорость, но тем не менее позволит законичть дело. Потом, когда всё сделано, можно удалять и линк, и директориюТретий вариант самый простой, удобный и безвредный.
#
Участник с: 08 января 2011
wa1demar
/etc/fstab
#
Сообщения:
373
Участник с: 18 марта 2012
Natrio
wa1demar, теперь мы видим, что место кончилось именно в /tmp
Откройте файл /etc/fstab , закомментируйте в нём строчку о /tmp и перезагрузитесь.
После этого /tmp станет просто каталогом в корневом разделе, где у вас 13G свободного места. Должно хватить.
#
Темы:
3
Сообщения:
27
Участник с: 04 мая 2014
INSTALL /tmp/yaourt-tmp-ndr/aur-linux-mainline-docs/pkg/linux-mainline/lib/firmware/acenic/tg1.bin
install: ошибка записи «/tmp/yaourt-tmp-ndr/aur-linux-mainline-docs/pkg/linux-mainline/lib/firmware/acenic/tg1.bin»: На устройстве не осталось свободного места
install: не удалось расширить «/tmp/yaourt-tmp-ndr/aur-linux-mainline-docs/pkg/linux-mainline/lib/firmware/acenic/tg1.bin»: На устройстве не осталось свободного места
scripts/Makefile.fwinst:44: ошибка выполнения рецепта для цели «/tmp/yaourt-tmp-ndr/aur-linux-mainline-docs/pkg/linux-mainline/lib/firmware/acenic/tg1.bin»
make[1]: *** [/tmp/yaourt-tmp-ndr/aur-linux-mainline-docs/pkg/linux-mainline/lib/firmware/acenic/tg1.bin] Ошибка 1
Makefile:1129: ошибка выполнения рецепта для цели «_modinst_post»
make: *** [_modinst_post] Ошибка 2
==> ОШИБКА: Произошел сбой в package_linux-mainline().
Преждевременный выход...
==> ERROR: Makepkg was unable to build linux-mainline.
==> Restart building linux-mainline-docs ? [y/N]
==> --------------------------------------------
==>
[[email protected] ~]$
[[email protected] ~]$ df -h
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
/dev/sda3 52G 39G 11G 79% /
dev 1,9G 0 1,9G 0% /dev
run 1,9G 876K 1,9G 1% /run
tmpfs 1,9G 6,6M 1,9G 1% /dev/shm
tmpfs 1,9G 0 1,9G 0% /sys/fs/cgroup
tmpfs 1,9G 1,9G 4,0K 100% /tmp
/dev/sda2 120M 49M 63M 44% /boot
/dev/sda4 170G 101G 60G 63% /home
/dev/sda5 500M 27M 473M 6% /boot/efi
tmpfs 384M 64K 384M 1% /run/user/1000
[[email protected] ~]$
# UUID=0e900e28-026a-4741-8126-6381cfffc02e
/dev/sda3 / ext4 rw,relatime 0 1
# UUID=cc631dc2-b3d1-4764-816f-77fdafc3a235
/dev/sda4 /home ext4 rw,relatime 0 2
# UUID=121f8bbd-bc63-408d-8505-ce04e2f88b74
/dev/sda2 /boot ext4 rw,relatime 0 2
# UUID=2DC3-5416
/dev/sda5 /boot/efi vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2
# UUID=92d5802a-d916-4fbe-b009-43ad2468afb9
/dev/sda1 none swap defaults 0 0
[[email protected] ~]$ df -h
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
/dev/sda3 52G 39G 11G 79% /
dev 1,9G 0 1,9G 0% /dev
run 1,9G 860K 1,9G 1% /run
tmpfs 1,9G 4,7M 1,9G 1% /dev/shm
tmpfs 1,9G 0 1,9G 0% /sys/fs/cgroup
tmpfs 1,9G 40K 1,9G 1% /tmp
/dev/sda4 170G 101G 60G 63% /home
/dev/sda2 120M 49M 63M 44% /boot
/dev/sda5 500M 27M 473M 6% /boot/efi
tmpfs 384M 36K 384M 1% /run/user/1000
[[email protected] ~]$ sudo mount /tmp tmpfs -O nodev,nosuid,size=3g,remount
[sudo] password for ndr:
mount: mount point tmpfs does not exist
[[email protected] ~]$
Попробуем третий способ с созданием символьной ссылки /tmp/yaourt-ndr в /home
но не глупо ли это? Что я делаю не так, ведь, как я понимаю, итак используется каталог /tmp на разделе /, а не RAM.
[[email protected] ~]$ sudo rm -rf /tmp/yaourt-tmp-ndr && mkdir /home/ndr/yaourt-tmp-ndr && ln -s /home/ndr/yaourt-tmp-ndr /tmp/yaourt-tmp-ndr
[sudo] password for ndr:
[[email protected] ~]$
#
Участник с: 02 июня 2012
agent0
/etc/systemd/system/zram-tmp.service
[Unit]
Description=Mount /tmp as zram. Mask tmp.mount if you use this
DefaultDependencies=no
Conflicts=umount.target
Before=local-fs.target umount.target
[Service]
Type=oneshot
RemainAfterExit=true
Environment='DEV=0' 'SIZE=4G'
ExecStart=/usr/bin/zramctl zram${DEV} ${SIZE} lz4 2
ExecStart=/usr/bin/mkfs.ext4 -m 0 -O ^huge_file,sparse_super,extent,^uninit_bg,dir_nlink,extra_isize,^has_journal -E discard /dev/zram${DEV}
ExecStart=/usr/bin/tune2fs -c 0 -i 0 -m 0 /dev/zram${DEV}
ExecStart=/usr/bin/mount -o discard /dev/zram${DEV} /tmp
[Install]
WantedBy=local-fs-pre.target
pacman -S zramctl
systemctl mask tmp.mount
systemctl enable zram-tmp.service
reboot
а если опять размера раздела или памяти не хватит
systemctl disable zram-tmp.service
reboot
и будет использоваться место на диске, а не память.
ну а если тестировать лень то просто
systemctl mask tmp.mount
reboot